来自神经网络

时间:2016-10-12 19:54:35

标签: machine-learning neural-network artificial-intelligence deep-learning backpropagation

我为符号识别编写了一个简单的前馈人工神经网络。

我在5x5像素网格中有一组6个可能的符号。

这些是{X, +, -, \, /, |}

例如X将是:

X = [1,0,0,0,1,
     0,1,0,1,0,
     0,0,1,0,0,
     0,1,0,1,0,
     1,0,0,0,1]

灰色噪声区域的值可以介于0和1之间。

我的神经网络由25个输入神经元(5x5网格),6个带有偏差的隐藏神经元和6个输出神经元组成。

每个输出神经元映射到符号。 0和1之间的输出决定了它识别的符号,即符号被选择为输出节点的最大值。

即 - 如果输出为{X : 0.9, + : 0.2, - : 0.1, \ : 0.15, / : 0.15, | : 0.2},则识别的符号为X

它看起来效果很好。然后我进行了以下实验:

我得到了测试输入(上面的6个符号),并创建了一个噪声函数addNoise(n),其中n是随机添加到该输入的噪声百分比。

对于01之间的每个噪音值,我运行了2000次测试(每次噪音随机变化)。在X上执行此操作时,我得到了以下图表。

enter image description here

您可能需要在另一页上打开图像才能看到完整尺寸。

正如您在X测试输入中注入约40%(x轴400)噪声后所见,它开始预测其他符号。

如果70%添加了X噪音,则网络预测X\的可能性相等。

无论如何,我的问题是:

\/图表上的线条不应该几乎完全对齐,因为它们与X符号相同吗?

为了澄清,在70%噪音之后,网络平均混合了X\

然而,在发出〜88%噪音后,网络会混淆X/

为什么我的网络会产生这样的结果?

1 个答案:

答案 0 :(得分:1)

您假设网络在培训期间正在学习complete字符X的表示形式。也许它所学到的内部表示严重偏向于/,其中混合了\。即如果输入具有强/分量和一些\分量 - 那么预测X。此信息足以区分X与其他字符(清理时)。训练NN基于损失函数,如果这种表示已经满足我们的类,网络就不需要学习更强大的表示。

在这个假设情况下,与需要注入大量噪音的\相比,注入少量噪音会使/分量变得容易模糊。