神经网络的异常结果

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

我有一组6个可能的符号,排列在一个5×5的像素网格中。

这些符号是 {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之间变化。

我的ANN由25个输入神经元(5×5网格)、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)的噪声后,它开始预测其他符号。

在向 X 增加 70% 的噪声后,网络预测 X\ 的几率相等。

无论如何,我的疑问是:

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

为了澄清,在增加 70% 的噪声后,网络会同样混淆 X\

然而,在大约 88% 的噪声后,网络会同样混淆 X/

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


回答:

您假设网络在训练期间学习了字符 X完整 表示。也许它学到的内部表示对 / 有很大偏见,并混合了一些 \。即如果输入有强烈的 / 成分和一些 \ 成分——那么预测 X。这种信息足以在干净时将 X 与其他字符区分开。训练神经网络是基于损失函数的,如果这种表示已经满足我们的类别,网络就没有必要学习更健壮的表示。

在这种假设情况下,注入少量噪声会比注入大量噪声更容易遮蔽 \ 成分,而遮蔽 / 成分则需要注入大量噪声。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注