neural-network - "break symmetry"是什么意思?在神经网络编程的背景下?

标签 neural-network computer-science distribution

这个问题在这里已经有了答案:





Why should weights of Neural Networks be initialized to random numbers? [closed]

(9 个回答)


去年关闭。




在神经网络编程和初始化的背景下,我听说过很多关于“打破对称性”的说法。有人可以解释一下这是什么意思吗?据我所知,如果权重矩阵在初始化期间填充了相同的值,这与在前向和后向传播期间表现相似的神经元有关。不对称行为将通过随机初始化更清晰地复制,即,不在整个矩阵中使用相同的值。

最佳答案

你的理解是正确的。

当所有初始值都相同时,例如将每个权重初始化为 0,然后在进行反向传播时,所有权重将获得相同的梯度,因此进行相同的更新。这就是所谓的对称性。

直观地说,这意味着所有节点都将学习相同的东西,而我们不希望那样,因为我们希望网络学习不同种类的特征。这是通过随机初始化来实现的,因为这样梯度会不同,每个节点将变得与其他节点更加不同,从而实现多样化的特征提取。这就是所谓的打破对称性。

关于neural-network - "break symmetry"是什么意思?在神经网络编程的背景下?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59638646/

相关文章:

java - 将java encog网络序列化到数据库

neural-network - 如何在Python中获取Caffe网络的数据集大小?

python - 如何从泊松分布中抽取随机样本?

iOS应用程序分发

machine-learning - 我应该标准化神经网络中的输入吗?

java - 如何检测音频流中特定单词的出现。

computer-science - SICP统一算法中看似不必要的情况

programming-languages - 加速计算?

python - ValueError : not enough values to unpack (expected 2, got 1) when splitting line

python - pymc 中的随机变量