Sha*_* RC 92 artificial-intelligence machine-learning mathematical-optimization neural-network gradient-descent
我试图从头开始构建一个神经网络.在所有AI文献中,人们都认为权重应该初始化为随机数,以便网络更快地收敛.
但为什么神经网络的初始权重被初始化为随机数?
我曾在某处读到这样做是为了"打破对称性",这使得神经网络学得更快.打破对称性如何让它学得更快?
将权重初始化为0是不是更好的主意?那样,权重能够更快地找到它们的值(无论是正面还是负面)?
除了希望在初始化时它们接近最佳值时,是否存在一些其他潜在的哲学背后的权重?
ffr*_*end 122
打破对称性在这里是必不可少的,而不是出于性能原因.想象一下前两层多层感知器(输入和隐藏层):

在前向传播期间,隐藏层中的每个单元都获得信号
也就是说,每个隐藏单元获得输入的总和乘以相应的权重.
现在假设您将所有权重初始化为相同的值(例如零或一).在这种情况下,每个隐藏单元将获得完全相同的信号.例如,如果所有权重都被初始化为1,则每个单元获得的信号等于输入(和输出sigmoid(sum(inputs)))的总和.如果所有权重都为零,则更糟糕的是,每个隐藏单元将获得零信号.无论输入是什么 - 如果所有权重都相同,隐藏层中的所有单位也将是相同的.
这是对称性的主要问题以及为什么要随机初始化权重(或者至少使用不同的值)的原因.请注意,此问题会影响使用每个到每个连接的所有体系结构.
Ina*_*mus 66
比喻:
我希望这是一个很好的类比.我试图尽可能简单地解释它.
想象一下,有人把你从直升机上摔到了一个不知名的山顶,你被困在那里.到处都是迷雾.你唯一知道的是你应该以某种方式下到海平面.你应该采取哪个方向来达到最低点?
如果你找不到通往海平面的方式,那么直升机将再次带你去,并将你带到同一个山顶位置.您将不得不再次采取相同的指示,因为您正在"初始化"自己到相同的起始位置.
但是,每当直升机在山上随意丢弃某个地方时,你就会采取不同的方向和步骤.因此,您有更好的机会达到最低点.
这就是打破对称性的意思.初始化是不对称的(这是不同的),因此您可以找到针对同一问题的不同解决方案.
在这个类比中,你降落的地方是重量.因此,使用不同的权重,更有可能达到最低(或更低)点.
此外,它增加了系统中的熵,因此系统可以创建更多信息,以帮助您找到较低的点(本地或全局最小值).
lej*_*lot 29
答案很简单.基本的训练算法本质上是贪婪的 - 它们找不到全局最优,而是 - "最近"的局部解.结果,从任何固定的初始化开始,将您的解决方案偏向某个特定的权重集.如果你随机(也可能多次)这样做,那么你很可能会陷入错误表面的某些奇怪部分.
相同的论证适用于其他算法,这些算法无法找到全局最优(k-means,EM等),也不适用于全局优化技术(如SVM的SMO算法).
正如你提到的,关键是打破对称性。因为如果您将所有权重初始化为零,那么您的神经网络中的所有隐藏神经元(单元)都将进行完全相同的计算。这不是我们想要的,因为我们想要不同的隐藏单元来计算不同的函数。但是,如果您将所有初始化为相同的值,则这是不可能的。