为什么要将神经网络的权重初始化为随机数?
artificial-intelligence
gradient-descent
machine-learning
neural-network
5
0

我正在尝试从头开始构建神经网络。在所有AI文献中都有一个共识,即权重应初始化为随机数,以使网络收敛更快。

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

我在某处读过,这样做是为了“打破对称性”,这使神经网络学习得更快。如何打破对称性使其学习更快?

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

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

参考资料:
Stack Overflow
收藏
评论
共 4 个回答
高赞 时间 活跃

此处,打破对称性至关重要,而不是出于性能考虑。想象一下多层感知器的前2层(输入层和隐藏层):

在此处输入图片说明

在正向传播期间,隐藏层中的每个单元都会收到信号:

在此处输入图片说明

即,每个隐藏单元获得的输入总和乘以相应的权重。

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

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

收藏
评论

比喻:

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

想象一下有人将您从直升飞机上降落到一个未知的山顶上,而您被困在那里。到处都是雾。您所知道的唯一一件事是,您应该以某种方式下降到海平面。您应该朝哪个方向下降到最低点?

如果您找不到通往海平面的方法,那么直升飞机会再次将您带到山顶。您将不得不再次遵循相同的方向,因为您是在将自己“初始化”到相同的起始位置

但是,每次直升机将您随机降落在山上的某个地方时,您都会采取不同的方向和步骤。因此,您有更好的机会达到最低点。

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

用这个比喻, 权重是您着陆的地方 。因此,使用不同的权重,有更好的机会达到最低( 或更低 )的点。

此外,它还会增加系统中的 ,因此系统可以创建更多信息来帮助您找到较低的点( 局部或全局最小值 )。

在此处输入图片说明

收藏
评论

答案很简单。基本训练算法本质上是贪婪的-他们没有找到全局最优值,而是“最近”的局部解。结果,从任何固定的初始化开始,会使您的解决方案偏向于一组特定的权重。如果您随机(并且可能多次)执行此操作,那么您将更不可能陷入错误表面的某些怪异部分。

相同的论点适用于其他算法,这些算法无法找到全局最优值(k均值,EM等),并且不适用于全局优化技术(如SVM的SMO算法)。

收藏
评论

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

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号