为什么用随机数初始化神经网络的权重?


9

为什么神经网络的初始权重被初始化为随机数?我在某处读过,这样做是为了“打破对称性”,这使神经网络学习得更快。如何打破对称性使其学习更快?

将权重初始化为0会不是一个更好的主意?这样,权重就能更快地找到其值(正负)。

除了希望权重在初始化时会接近最佳值之外,还有其他一些潜在的基本哲学吗?

Answers:


6

将权重层初始化为较小(和不同)值的基本直觉是,这样可以打破系统的偏差,并且权重值可以前后移动并分开为不同的值。

更具体地说,您可能希望您的初始权重是不同的,并且它们之间有一个“小间隙”,这个“间隙”会随着您的前进而扩展,并在每次迭代时都将权重增大一些,这有助于网络收敛更快,即学习过程加快。

如果您将所有权重设置为某个常数,则每个权重将以非常慢的(固定)速率进行更新,这将无济于事,尤其是当初始值与最终值“相距非常远”时。

希望对您有所帮助,祝您学习愉快:)


因此,您要说的是将初始权重随机化等同于在权重需要移动的方向上微调每个权重(并扩大间距)。
Shayan RC

我认为并不一定要朝正确的方向,您最好从[-0.5,+0.5]的初始权重开始,最终值可能是[+0.5,-0.5],关键是不同的值..
Subhayan 2013年

自从我与NN合作以来已经过去了一年多,所以我正在以波浪状的手说话,请让我知道您是否想要它背后的数学知识。但是我认为在这里获得直觉更为重要,到处都有很多数学知识.. :)
Subhayan

它背后的数学将有所帮助,但更实用的是一些实用的建议:例如初始权重应为(10 ^?)多小?它们对于不同类型的网络如何变化?是否有一些对所有人有用的魔术数字?
Shayan RC
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.