Machine learning 神经网络中权值的随机初始化为什么起作用?

Machine learning 神经网络中权值的随机初始化为什么起作用?,machine-learning,neural-network,Machine Learning,Neural Network,为什么神经网络的权重已经被问了很多次了。答案很简单:零初始权重将导致层中的所有节点学习相同的内容,因此必须打破对称性 然而,我没有理解的是,为什么将权重初始化为一些接近零的随机数会起作用。甚至更高级的初始化技术,如Xavier,只修改方差,方差保持接近于零。链接问题中的一些答案指出存在多个局部最优解,但我严重怀疑这一论点的有效性,原因如下: 单个逻辑回归的(通常)成本函数具有唯一的最小值。尽管如此,这一观点可能无法推广到多个节点,所以现在让我们暂时忘掉它 为便于论证,假设存在多个局部最优解。那么

为什么神经网络的权重已经被问了很多次了。答案很简单:零初始权重将导致层中的所有节点学习相同的内容,因此必须打破对称性

然而,我没有理解的是,为什么将权重初始化为一些接近零的随机数会起作用。甚至更高级的初始化技术,如Xavier,只修改方差,方差保持接近于零。链接问题中的一些答案指出存在多个局部最优解,但我严重怀疑这一论点的有效性,原因如下:

单个逻辑回归的(通常)成本函数具有唯一的最小值。尽管如此,这一观点可能无法推广到多个节点,所以现在让我们暂时忘掉它

为便于论证,假设存在多个局部最优解。那么,正确的随机化技术不应该是在可能权重的整个域上进行蒙特卡罗模拟,而不是在一些关于零的随机ε上进行模拟吗?是什么阻止权重在两次迭代后再次收敛?我能想到的唯一理由是,原点存在一个全局最大值,所有局部最优值都很好地“径向”分布,因此任何方向上的微小扰动都足以使你沿着梯度向下移动到不同的局部最优值,这是极不可能的

PS1:我在主堆栈溢出站点问这个问题,因为我的引用在这里


PS2:可以找到为什么初始权重的方差以这种方式缩放的答案。然而,它并没有解决我的问题,即为什么随机初始化会工作,因为可能会聚合权重,或者更确切地说,权重会“发散”以“学习”不同的功能。

您找到了主要原因:我们需要内核不同,以便内核(节点)区分它们的学习

首先,随机初始化并不总是有效的;根据您调整模型结构和超参数的程度,有时模型无法收敛;从早期迭代中的损失函数可以明显看出这一点


对于某些应用,存在局部极小值。然而,在实际应用中,问题复杂性的令人高兴的结果是这些极小值具有非常相似的精度。简言之,我们找到哪种解决方案并不重要,只要我们找到一种。例如,在图像分类(例如ImageNet竞赛)中,有许多特征可用于识别照片。与(更简单的)主成分分析一样,当我们有一组与期望输出高度相关且相互关联的特征时,我们使用哪一组并不重要。这些特征与CNN的内核是同源的。

其中一个原因可能是SGD不是尺度不变的,这会产生非常不同的权重(由您的初始化产生)很难从中恢复。权重应初始化为接近零的原因之一是,如果您有深度网络,并且权重大于1,则将它们相乘并进行传播,然后您可以在sigmoid和softmax函数中得到非常大的值,其中有exp(x)元素。