截断正态分布在神经网络中初始化权重有什么好处?


13

在前馈神经网络中初始化连接权重时,重要的是随机初始化它们,以避免学习算法无法打破的任何对称性。

我在不同地方(例如TensorFlow的MNIST教程)中看到的建议是使用标准偏差为的截断正态分布,其中是输入的数量给定的神经元层。1个ññ

我相信标准偏差公式可确保反向传播的梯度不会很快溶解或放大。但是我不知道为什么我们要使用截断的正态分布而不是正态正态分布。是否要避免稀疏的异常权重?


您可以提供此建议和/或直接报价的来源吗?
蒂姆

+提姆要点,我在示例中添加了链接。我相信我在有关神经网络良好实践的论文中也看到了此建议(尽管找不到)。
MiniQuark

Answers:


13

我认为这与神经元的饱和有关。考虑一下您有一个像S型一样的激活功能。

在此处输入图片说明

如果您的体重val值> = 2或<=-2,您的神经元将不会学习。因此,如果您截断正态分布,则根据您的方差,将不会出现此问题(至少从初始化开始)。我认为这就是为什么,通常最好使用截断法线。


是的,这很有意义,谢谢。我认为您的意思是“值> = 2”,而不是
1。– MiniQuark

是的,它假设是值> = 2
Güngör巴沙

4

使用截断的正态分布的好处是可以防止由于使用relu_logits而生成“死亡神经元”,这将在此处进行说明。

通常应使用少量噪声来初始化权重,以防止对称性破坏并防止0梯度。由于我们使用的是ReLU神经元,因此以略为正的初始偏差初始化它们也是一种好习惯,以避免“死神经元”。


我不确定使用truncated_normal将如何防止死亡的神经元:它不会添加任何“稍微正的初始偏差”。你能详细说明一下吗?
MiniQuark

1
因为反向传播只会更新“活着的”神经元,对传播有一些非零贡献
Jason
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.