是否在输出数据中添加噪声作为正则化技术,以避免训练数据过度拟合?
它如何减少泛化错误并帮助正规化,因为据我所知,正规化与我们模型的复杂性直接相关。
它与训练模型的复杂性有什么关系?
答案 0 :(得分:2)
为什么它可以防止过拟合?
噪声破坏信息。您的数据变得更难拟合,因此也变得难以拟合。极端情况是纯噪声,您的分类器将学会忽略输入,并预测每个类别的固定概率。那与过度拟合相反:在您的验证集上,您将获得与训练期间完全相同的性能。
为什么这有助于泛化?
通过添加噪声,您可以使用其他信息来增强训练集。您告诉NN,您要添加的噪声种类不会对其预测产生太大影响。如果是这样,那么它将更好地推广,因为它已经了解了输入空间的很大一部分。如果为假,则实际上会使泛化恶化,例如,如果您正在从10位输入中学习XOR函数。
输出噪声
(更新:哦,您是在问有关在输出中添加噪声 的问题。我不知道这是否很常见,但我知道它可以提供帮助:)
如果以高置信度做出错误的预测,典型的损失函数(例如,交叉熵)将给它们带来很大的损失。在过度拟合过程中,网络会找到许多理想的预测器(一个复杂的模型将开始记住每个训练输入)。权重将被调整以增加置信度。通过向网络传授它永远无法做出高准确性的预测,可以在输出中增加噪声,从而防止这种情况发生。这将减轻对验证集上的错误的高惩罚。它还可以防止破坏性的权重更新仅用于增加错误的置信度。
答案 1 :(得分:1)
正在将噪声添加到用作正则化技术的输出数据中 避免过度拟合训练数据?
简单答案是肯定的,@maxy's正确指出了原因。而且我认为您的意思是将噪声添加到模型的输入数据中,而不是添加到模型的输出中,尽管也可以采用此类技术(用于不同讨论的主题)。
它如何减少泛化错误并帮助正规化 因为据我所知,正则化是直接 与我们模型的复杂性有关。
这可能有帮助,也可能没有帮助,极端的噪声情况已经由上述答案提出。
通常,对于高维输入(例如300
特征或图像),假定必要的信息位于低维manifold上。下图应有助于直观地理解该想法(来自sklearn
的图):
正如人们所看到的那样,即使原始数据是三维的,也可以很好地以二维的形式呈现。这就是神经网络的作用,它将输入数据转换为另一种数据表示形式(有时具有更高的维数),以实现任务解决方案(例如,通过后续层转换图像,以便它们可以线性分离以用于最后一层的分类)。
但是它与噪声有什么关系?神经网络是功能强大的装配工(复杂模型,将转向该模型),因此,如果没有足够的数据点,它可以学习到一种转换(流形),其效果不如图像中所示的那么流畅和美观。如果在不进行扩充的情况下对网络进行训练,并在测试阶段获得非常相似的输入,则可能会将其错误地转换为完全不同的空间区域,并且可能将其分类错误。
添加噪声后,神经网络会看到更多表示该类的数据点,因此必须学习创建更平滑的数据表示,在这种情况下,输入的微小变化不会对其输出产生巨大的影响。
最后,假设test
和train
来自相同(或至少非常相似)的分布。当我们通过噪声学习train
的更好分布时,了解test
的机会也会增加,因此通常有助于推广。
它与训练模型的复杂性有什么关系?
神经网络的逼真度很高,可以学习的功能空间也很大(功能空间较大可以认为是复杂性)。现在,输入数据的许多功能(转换)都可以很好地完成手头的任务(从现在开始,请坚持分类)。
没有增强或正则化,神经网络没有动力去学习不太复杂的函数,这些函数可能有更高的机会更好地表示真实的变换(根据Occam's razor)。添加噪声后,许多复杂功能不再是可行的选择,因为它们高度依赖于输入的微小变化。因此,在采用噪声后,神经网络在功能空间中的复杂性可能会降低(dropout
,权重衰减等问题也是如此)。
由于架构是预定义的,因此不会因噪声而改变。如上所述,只有权重才更“合理”(例如,在极端情况下,没有权重具有1000
或-1000
值,因为对于单个特征而言,权重值的变化太大)。