将随机噪声添加到隐藏层是否被视为正则化? 这样做与添加辍学和批处理规范化有什么区别?


回答 1:

是的,将随机噪声添加到隐藏层是一种与丢失完全相同的正则化方法。 这里的主要直觉是,如果每一层的神经反应都是嘈杂的,则训练必须将权重调整为具有大于噪声的间隙的单独类别。 因此,在测试时,当没有噪声时,分类应该更稳定。 这与max-margin分类的工作原理非常相似,我们都知道max-margin技术的成功应用(例如,支持向量机)。 但是,您必须小心确保噪声不会使信号不堪重负。

辍学被认为是一种正则化方法,因为它执行模型平均。 也就是说,在训练过程中,特定时间点的模型实际上是一类神经网络模型的概率分布,其中权重是固定的,但模型中的任何一个神经元都可能丢失。 每个神经网络的总概率由存在或不存在特定神经元的个体概率确定。 这是正则化,因为它会平均每个实例的偏差,从而使成本函数变平滑。

向隐藏层添加随机噪声的操作方式相同,但概率分布不同。 您没有固定的权重,而是具有固定的拓扑,并且概率分布根据以“真实”权重(即您存储在硬盘上的权重)为中心的高斯分布随机选择权重。 同样,这是模型平均,并且应该具有正则化影响,但要注意的是,噪声(方差)不应压倒信号。 因此,例如,如果您首先应用BatchNorm,您将拥有一个大致标准的正常输出曲线(单位为零,方差为1),然后可以应用方差为0.1的噪声。 您可以使用差异来查看有效的方法。

编辑:由于问题提到BatchNorm,我想指出,BatchNorm并没有真正用于正则化。 也就是说,BatchNorm无法使成本平滑。 而是添加BatchNorm,以提高反向传播的性能。 从本质上讲,它通过重新缩放和重新定位来防止反向传播的梯度变得太大或太小。 作为一种技术,它与尝试对成本曲面的曲率建模的二阶优化方法有着更深的联系。 如前所述,如果要向神经活动添加随机噪声,还可以使用BatchNorm来确保相对缩放正确。


回答 2:

与正则化相比,我认为它是一种优化技巧。

该影响应等同于SGD中的随机性影响。

SGD及其启发性的蒙特卡洛方法通过不时遵循随机步伐,而不是严格遵循最陡下降的方向,避免陷入局部极小的情况。 或做各种形式上等效的操作,例如在每个步骤中添加一个随机组件,而不是定期执行随机步骤。

在权重上添加微弱的随机噪声将实现完全相同的效果。 [提示:梯度下降在每次迭代中也会增加一些权重!]


回答 3:

编辑:

将高斯分布的随机噪声添加到每一层的输入数据中,可使您的模型对数据中的细微变化更加稳健,从而使您的网络可以更好地区分噪声与信号。 正如Zeeshan Zia所说,这本质上是随机渐变的。 我仍然不会考虑这种正则化。 它更像是一种技术,可以帮助您的模型学习从噪声中分离出信号的模式。

在每次通过时,Dropout会随机禁用隐藏层中一定比例的节点。 这可以改善网络,因为它迫使网络学习如何以多种方式识别相同的模式,从而获得更好的模型。

批处理归一化是将输入带到图层并确保所有输入均在0到1之间进行归一化的地方。这有助于网络更好地学习,因为它可以使渐变体面更加一致和平滑。 这样,您可以避免由于最小值太大而跳到最小值附近。