权重的随机初始化是打破对称性的唯一选择吗?

人工智能 神经网络 训练 权重初始化
2021-10-26 03:02:38

我的知识

假设您有一个完全连接的层,并且每个神经元执行如下操作

a = g(w^T * x + b)

werea是神经元的输出、x输入、g我们的通用激活函数,最后是w我们b的参数。

如果两者wb都被初始化为所有元素彼此相等,则a对于该层的每个单元都是相等的。

这意味着我们具有对称性,因此在我们选择更新参数的任何算法的每次迭代中,它们将以相同的方式更新,因此不需要多个单元,因为它们都表现为单个单元。

为了打破对称性,我们可以随机初始化矩阵w并初始化b为零(这是我经常看到的设置)。这种方式a对于每个单元都是不同的,因此所有神经元的行为都不同。

当然,随机初始化两者wb即使没有必要也可以。

问题

随机初始化w是唯一的选择吗?我们可以随机初始化b而不是w为了打破对称性吗?答案是否取决于激活函数和/或成本函数的选择?

我的想法是我们可以通过随机初始化来打破对称性b,因为这样a对于每个单元都是不同的,并且因为在反向传播中,两者的导数都w依赖ba(至少对于所有激活函数都应该如此)到目前为止我已经看到),每个单元的行为都会有所不同。显然,这只是一个想法,我不确定这是否绝对正确。

3个回答

随机化只是b一种工作,但设置为零会导致梯度消失w的严重问题,尤其是在学习开始时。

使用反向传播,层输出的L梯度涉及将输入到层的梯度乘以层L+1之间的权重(而不是偏差)的总和。如果权重都为零,这将为零。

输出处的零梯度L将进一步导致所有较早的层(L-1L-2一直到层1)接收零梯度,因此不会在更新步骤更新权重或偏差。所以第一次运行更新时,只会影响最后一层。然后下一次,它将影响最接近输出的两层(但仅在倒数第二层边缘)等等。

一个相关的问题是,当权重全部为零或全部相同时,将所有输入(无论它们如何变化)映射到相同的输出上。这也会对您用于驱动学习的梯度信号产生不利影响 - 对于平衡的数据集,您很有可能在成本函数中接近局部最小值开始学习。

特别是对于深度网络,为了对抗消失(或爆炸)梯度,您应该从具有预期幅度(在乘以输入之后)和既不消失也不爆炸的梯度幅度的分布中初始化权重。对在深度网络中最有效的值的分析是如何发现Xavier/Glorot 初始化的。如果没有按照这些思路进行仔细的初始化,深度网络需要更长的时间来学习,或者在最坏的情况下永远不会从糟糕的开始中恢复并且无法有效地学习。

潜在地为了避免这些问题,您可以尝试为权重找到一个好的非零固定值,作为 Xavier 初始化的替代方案,以及用于偏置初始化的良好幅度/分布。这些都将根据层的大小和可能的激活函数而变化。但是,我怀疑这可能会受到其他问题的影响,例如采样偏差问题 -权重更多,因此在随机设置所有权重值时,与随机设置偏差相比,您可以更好地适应所需的聚合行为。

在深度学习中选择或不选择某些东西(如超参数调整)的大多数解释都是基于经验研究,如分析多次迭代的误差。所以,这个答案是深度学习方面的人给出的。

由于您要求数学解释,我建议您阅读论文Convergence Analysis of Two-layer Neural Networks with ReLU Activation (2017, NIPS)。它讨论了 SGD 到全局最小值的收敛性,这取决于权重初始化是使用 ReLU 作为激活函数的高斯函数。这篇论文考虑了一个没有隐藏层、只有输入层和输出层的神经网络。

对这种“简单”网络的分析在一个非常知名的顶级会议上发表的事实本身表明,您所寻求的解释并不容易,而且很少有人研究神经网络的理论方面。恕我直言,随着研究的进展,经过几年的研究,我也许可以编辑这个答案并给出您寻求的必要解释。到那时,这是我能做的最好的。

w应该随机化为小的(非零)数字,以便反向传播所做的调整更有意义,并且矩阵中的每个值都会更新不同的数量。如果您从全零开始,它仍然可以工作,但需要更长的时间才能获得有意义的结果。AFAIK,这是由各种研究人员根据经验发现的,并成为普遍做法。

随机化b没有相同的帮助效果,因此大多数人都不会打扰。

这个选择是网络架构师做出的众多选择之一,理论上您可以使用无限数量的w矩阵初始化。常用的一种恰好经过测试并且通常可以工作。

这个视频比我更擅长解释:Lecture 8.4 — Neural Networks Representation | 模型表示-II - [Andrew Ng]