“打破对称性是什么意思?在神经网络编程中?

问题描述 投票:2回答:2

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

neural-network computer-science distribution
2个回答
2
投票

您的理解是正确的。

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

直觉上,这意味着所有节点都将学习相同的东西,我们不希望那样,因为我们希望网络学习不同种类的功能。这是通过随机初始化来实现的,因为此后梯度将有所不同,并且每个节点将变得与其他节点更加不同,从而可以进行多种特征提取。这就是所谓的破坏对称性。


-1
投票

我可以给你直觉的意思,然后数学解释

直觉是当数据包含某种镜像时发生对称。可以对矩阵进行完美镜像,或者对图片的两侧进行完美镜像。问题在于,基本上您是在重复信息。数据的一半是另一半的精确副本,因此它实际上并没有提供任何新信息。

对称在实践中具有不良影响,打破对称意味着在初始数据中添加一些噪声,从而图像或矩阵的两面都不完全相同。

更正式地讲,或从数学上讲,这意味着矩阵中的数据应为linearly independent

线性独立性表示矩阵中的任何两行都不能作为其他行的线性组合来计算,其中线性组合意味着取其他几行并将其组合以创建一个新行。

添加一些随机噪声使将任何行写为其他行非常困难。

总结起来,如果有几行具有相同的数据,那么这些行中的任何一行都可以作为其他行的组合来计算,这就是为什么镜像图像只是线性相关性的一种特殊情况,但是还有许多其他情况案例。

尤其是在[[神经网络]的上下文中,大多数算法(例如反向传播)倾向于将矩阵的新值作为先前值的组合来计算。如果您的数据是线性相关的,那么这些计算的结果也趋向于线性相关,并且学习到的新信息将受到限制或重复。

神经网络中对称性的结果是它无法正确学习,因为它类似于消​​除数据或容量。 破坏对称性

表示防止这种情况发生。
© www.soinside.com 2019 - 2024. All rights reserved.