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

Sha*_* RC 92 artificial-intelligence machine-learning mathematical-optimization neural-network gradient-descent

我试图从头开始构建一个神经网络.在所有AI文献中,人们都认为权重应该初始化为随机数,以便网络更快地收敛.

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

我曾在某处读到这样做是为了"打破对称性",这使得神经网络学得更快.打破对称性如何让它学得更快?

将权重初始化为0是不是更好的主意?那样,权重能够更快地找到它们的值(无论是正面还是负面)?

除了希望在初始化时它们接近最佳值时,是否存在一些其他潜在的哲学背后的权重?

ffr*_*end 122

打破对称性在这里是必不可少的,而不是出于性能原因.想象一下前两层多层感知器(输入和隐藏层):

在此输入图像描述

在前向传播期间,隐藏层中的每个单元都获得信号

在此输入图像描述

也就是说,每个隐藏单元获得输入的总和乘以相应的权重.

现在假设您将所有权重初始化为相同的值(例如零或一).在这种情况下,每个隐藏单元将获得完全相同的信号.例如,如果所有权重都被初始化为1,则每个单元获得的信号等于输入(和输出sigmoid(sum(inputs)))的总和.如果所有权重都为零,则更糟糕的是,每个隐藏单元将获得零信号.无论输入是什么 - 如果所有权重都相同,隐藏层中的所有单位也将是相同的.

这是对称性的主要问题以及为什么要随机初始化权重(或者至少使用不同的值)的原因.请注意,此问题会影响使用每个到每个连接的所有体系结构.

  • @emanuele Dropout 本身就是一种随机化,所以是的,它应该有效。然而,在每次迭代中没有“退出”的所有连接仍然会得到对称更新,所以我猜学习会很慢,因此建议在任何实际网络中仍然使用随机初始化。 (3认同)
  • @nn0p:相关性意味着 2 个信号在相似的方向上变化,但并不总是且幅度不完全相同。至少据我所知,对称性没有正式的定义,在这里用来表示节点之间所有链接上的 _exactly_ 相同的信号,这使得训练毫无用处。 (2认同)

Ina*_*mus 66

比喻:

我希望这是一个很好的类比.我试图尽可能简单地解释它.

想象一下,有人把你从直升机上摔到了一个不知名的山顶,你被困在那里.到处都是迷雾.你唯一知道的是你应该以某种方式下到海平面.你应该采取哪个方向来达到最低点?

如果你找不到通往海平面的方式,那么直升机将再次带你去,并将你带到同一个山顶位置.您将不得不再次采取相同的指示,因为您正在"初始化"自己到相同的起始位置.

但是,每当直升机在山上随意丢弃某个地方时,你就会采取不同的方向和步骤.因此,您有更好的机会达到最低点.

这就是打破对称性的意思.初始化是不对称的(这是不同的),因此您可以找到针对同一问题的不同解决方案.

在这个类比中,你降落的地方是重量.因此,使用不同的权重,更有可能达到最低(或更低)点.

此外,它增加了系统中的,因此系统可以创建更多信息,以帮助您找到较低的点(本地或全局最小值).

在此输入图像描述

  • 看起来这架直升机会让你在山上随意地放置几次,但是在深度学习中我们只是随机地初始权重一次. (10认同)
  • 很有比喻! (5认同)
  • 这是一个很好的类比-但是,假设您和您的朋友被丢在山上(即网络中的节点)(在同一地点或在不同地点的不同人),则更有意义。并假设你们都可以互相交流。与通信的不同地点将允许更快的下降。同一地点意味着每个人都可能走同一条路。 (2认同)

lej*_*lot 29

答案很简单.基本的训练算法本质上是贪婪的 - 它们找不到全局最优,而是 - "最近"的局部解.结果,从任何固定的初始化开始,将您的解决方案偏向某个特定的权重集.如果你随机(也可能多次)这样做,那么你很可能会陷入错误表面的某些奇怪部分.

相同的论证适用于其他算法,这些算法无法找到全局最优(k-means,EM等),也不适用于全局优化技术(如SVM的SMO算法).

  • 这不是人们使用随机初始化的原因,因为大多数人不会通过不同的随机初始化多次重启训练,并且网络仍然能够达到良好的局部最优. (2认同)

Saf*_*dek 5

正如你提到的,关键是打破对称性。因为如果您将所有权重初始化为零,那么您的神经网络中的所有隐藏神经元(单元)都将进行完全相同的计算。这不是我们想要的,因为我们想要不同的隐藏单元来计算不同的函数。但是,如果您将所有初始化为相同的值,则这是不可能的。