【问题标题】:What does it mean to "break symmetry"? in the context of neural network programming? [duplicate]“打破对称性”是什么意思?在神经网络编程的背景下? [复制]
【发布时间】:2020-01-08 02:32:12
【问题描述】:
我听说过很多关于在神经网络编程和初始化方面“打破对称性”的内容。有人可以解释一下这是什么意思吗?据我所知,如果权重矩阵在初始化期间填充了相同的值,则它与神经元在前向和后向传播中的表现相似有关。随机初始化会更清楚地复制不对称行为,即,不在整个矩阵中使用相同的值。
【问题讨论】:
标签:
neural-network
computer-science
distribution
【解决方案1】:
你的理解是正确的。
当所有初始值都相同时,例如将每个权重初始化为 0,那么在进行反向传播时,所有权重将获得相同的梯度,从而进行相同的更新。这就是所谓的对称性。
直观地说,这意味着所有节点都将学习相同的东西,我们不希望这样,因为我们希望网络学习不同类型的特征。这是通过随机初始化来实现的,因为那时梯度会不同,每个节点都会变得与其他节点更加不同,从而实现多样化的特征提取。这就是所谓的打破对称性。