提前感谢您阅读本文。
所以我正在尝试编写一个神经网络来识别图像中的特定徽标。我基本上有一个特定纵横比的滑动窗口,它将当前窗口缩放到输入的预期大小。窗口在将输入输入网络的周围滑动,并查看输出以确定窗口中的内容是否是我正在寻找的徽标。在这种情况下,它将在窗口边缘绘制一个框,勾勒出徽标。
我的问题在于神经网络报告的图像其他部分的置信度太高,最终会在整个地方绘制如此多的框,以至于无法看到原始图像的大部分内容。所以神经网络显然有问题。
为了输入图像,我尝试以灰度和颜色展开。这两种方式都行不通。我也尝试过输入大小的变化。当它开始变得太小时,它会变得更糟,但即使在 57x22x3 彩色展开输入时,它仍然会失败。
所以我认为这也不是问题。我的神经网络有 X 个输入神经元(其中 X 是宽度 * 高度 * num_colors)。我有一个隐藏层,大小也是 X,最后,我在输出层有 1 个输出神经元,输出一个介于 0.0 和 1.0 之间的值,代表总置信度。
我有 17 个正面训练示例(理想输出为 1.0)和 19 个负面训练示例(理想输出为 0.0)。训练后,网络报告的所有正例的置信度几乎相等,约为 0.95,所有负例的置信度几乎相等,约为 0.013。
我的理论是我拥有的训练示例的数量太少了,我应该收集/生成更多。最初我每个人只有 5 个,但我也没有看到从上升到 17+ 的任何收益。
我应该注意我已经尝试过使用 Encog 和 Neuroph,两者的结果都非常相似。我正在使用反向传播进行学习,并尝试使用 0.3 到 0.7 之间的学习率以及 0.0 到 0.8 之间的动量值。无论如何,结果几乎总是相同的。
谢谢您的帮助。