为什么神经网络cannot be initialized as 0's的权重被问过很多次的问题。答案很简单:零初始权重会导致图层中的所有节点都学习相同的东西,因此必须打破对称性。
然而,我无法理解的是,为什么会将权重初始化为接近零的随机数。甚至更高级的初始化技术(例如 Xavier )仅修改方差,该方差仍然接近于零。链接问题中的一些答案指出存在多个局部最优,但我严重怀疑这个论点的有效性,原因如下:
单个逻辑回归的(通常)成本函数具有唯一的最小值。尽管如此,这种见解可能无法推广到多个节点,因此暂时不要忘记它。
为了论证,假设存在多个局部最优。那么,在整个可能的权重范围内,不应该使用适当的随机化技术蒙特卡罗,而不是一些关于零的随机epsil?经过几次迭代后,什么阻止权重再次收敛?我能想到的唯一理由就是在原点处存在一个全局最大值,并且所有局部最优点都在很好地分布在径向上。因此,任何方向上的微小扰动都足以让你沿着渐变向不同的局部最优移动,这是非常不可能的。
PS1:我在主Stack Overflow网站上提出这个问题,因为我的引用就在这里。
PS2:可以找到为什么以这种方式缩放初始权重的方差的答案here。然而,它没有解决我的问题,为什么随机初始化会因为收敛权重的可能性而起作用,或者更确切地说,权重会发生偏差。学习'不同的功能。
答案 0 :(得分:2)
你找到了主要原因:我们需要内核不同,以便内核(节点)区分他们的学习。
首先,随机初始化不会始终工作;根据您调整模型结构和超参数的程度,有时模型无法收敛;从早期迭代中的损失函数可以看出这一点。
对于某些应用程序,是本地最小值。然而,在实际使用中,问题复杂性的快乐产物是那些最小值具有非常相似的准确度。简而言之,我们找到哪个解决方案并不重要,只要我们找到一个。例如,在图像分类(例如ImageNet竞赛)中,有许多用于识别照片的特征。与(更简单的)PCA一样,当我们拥有一组与所需输出和高度相关的功能时,我们使用哪个集并不重要。这些特征与CNN的核心相关。