Answers:
此处,打破对称性至关重要,而不是出于性能原因。想象一下多层感知器的前2层(输入层和隐藏层):
在正向传播期间,隐藏层中的每个单元都会收到信号:
即,每个隐藏单元获得的输入总和乘以相应的权重。
现在,假设您将所有权重初始化为相同的值(例如零或一)。在这种情况下,每个隐藏单元将获得完全相同的信号。例如,如果所有权重都初始化为1,则每个单位获得的信号等于输入(和输出sigmoid(sum(inputs))
)之和。如果所有权重均为零(甚至更糟),则每个隐藏单位将获得零信号。无论输入什么,如果所有权重都相同,则隐藏层中的所有单位也将相同。
这是对称性的主要问题,也是为什么您应该随机初始化权重(或至少使用不同的值)的原因。请注意,此问题影响使用每个连接的所有体系结构。
symmetry
不是correlation
?谁首先使用了这个词?
比喻:
我希望这是一个很好的类比。我试图解释得尽可能简单。
想象一下有人将您从直升飞机上摔落到一个未知的山顶上,而您被困在那里。到处都是雾。您唯一知道的就是应该以某种方式下降到海平面。您应该朝哪个方向下降到最低点?
如果您找不到通往海平面的方法,那么直升机会再次将您带到山顶位置。您将不得不再次遵循相同的方向,因为您是在将自己“初始化”到相同的起始位置。
但是,每次直升机将您随机降落在山上的某个地方时,您都会采取不同的方向和步骤。因此,您有更好的机会达到最低点。
这就是打破对称性的意思。初始化是不对称的(这是不同的),因此您可以找到同一问题的不同解决方案。
用这个比喻,重量就是您着陆的地方。因此,使用不同的权重,有更好的机会达到最低(或更低)的点。
此外,它还会增加系统中的熵,因此系统可以创建更多信息来帮助您找到较低的点(局部或全局最小值)。
答案很简单。基本训练算法本质上是贪婪的-它们没有找到全局最优值,而是“最接近”的局部解。结果,从任何固定的初始化开始,会使您的解决方案偏向一组特定的权重。如果您随机(并且可能多次)执行此操作,那么您将更难陷入错误表面的某些怪异部分。
相同的论点适用于其他无法找到全局最优值的算法(k均值,EM等),不适用于全局优化技术(如SVM的SMO算法)。
如您所述,关键是打破对称性。因为如果将所有权重初始化为零,那么神经网络中所有隐藏的神经元(单位)将进行完全相同的计算。这不是我们想要的,因为我们希望不同的隐藏单元来计算不同的函数。但是,如果将所有初始化为相同的值,则不可能。
将权重初始化为0会不是一个更好的主意?这样,权重就能更快地找到其值(正负)。
如何打破对称性使其学习更快?
如果将所有权重初始化为零,则所有层的所有神经元都会执行相同的计算,并通过使整个深网变得无用来提供相同的输出。如果权重为零,则整个深网的复杂度将与单个神经元的复杂度相同并且预测将不会比随机更好。
连接到相同输入的隐藏层中并排的节点必须具有不同的权重,以便学习算法更新权重。
通过将权重设置为非零值(但接近零,例如0.1等),该算法将在下一次迭代中学习权重,并且不会卡住。这样,发生了破坏对称的情况。
- 除了希望权重在初始化时会接近最佳值之外,还有其他一些潜在的基本原理吗?
随机优化算法(例如随机梯度下降)在选择搜索起点和搜索过程中使用随机性。
神经网络的搜索或学习过程称为收敛。发现次优解或局部最优会导致过早收敛。
如果您以不同的随机权重多次运行算法,则不必依赖一个局部最优,而是有可能找到全局最优而又不会陷入局部最优。
2015年后,由于机器学习研究的进步, 引入了He-et-al Initializatio n来代替随机初始化
w=np.random.randn(layer_size[l],layer_size[l-1])*np.sqrt(2/layer_size[l-1])
权重仍然是随机的,但是范围取决于神经元先前层的大小。
总之,非零随机权重可以帮助我们
除了使用随机值进行初始化外,初始权重也不应以较大的值开始。这是因为我们经常在隐藏层和输出层中使用tanh和Sigmoid函数。如果查看这两个函数的图,则在第一次迭代中进行正向传播后,将得到更高的值,并且这些值与Sigmoid和tanh函数中将导数收敛为零的位置相对应。这导致学习过程的冷启动和学习时间的增加。结果,如果随机开始权重,则可以通过将这些值乘以“ 0.01”或“ 0.001”之类的值来避免这些问题。
首先,即使初始权重为零,某些算法也会收敛。一个简单的例子是线性感知器网络。当然,许多学习网络都需要随机初始加权(尽管这并不能保证获得最快,最好的答案)。
神经网络使用反向传播来学习和更新权重,问题是在这种方法中,权重收敛到局部最优(局部最小成本/损失),而不是全局最优。
随机加权可帮助网络把握可用空间中每个方向的机会,并逐步改善它们以获得更好的答案,而不仅限于一个方向或答案。
[下图显示了如何收敛的一维示例。给定初始位置,可以实现局部优化,但不能实现全局优化。在较大的维度上,随机加权可以增加在正确位置或开始更好的机会,从而使权重收敛到更好的值。] [1]
[1]:https://i.stack.imgur.com/2dioT.png [Kalhor,A.(2020)。分类和回归神经网络。演讲。]
在最简单的情况下,新的权重如下:
W_new = W_old + D_loss
在这里,成本函数梯度将添加到先前的权重中以获得新的权重。如果所有先前的权重都相同,则在下一步中所有权重都可以相等。结果,在这种情况下,从几何角度来看,神经网络在一个方向上倾斜并且所有权重都相同。但是,如果权重不同,则可以将权重更新不同的数量。(取决于每个权重对结果的影响因素,它会影响成本和权重的更新。因此,甚至可以解决初始随机权重中的一个小误差)。
这是一个非常简单的示例,但是它显示了随机加权初始化对学习的影响。这使神经网络可以转到不同的空间,而不是一侧。结果,在学习过程中,请充分利用这些空间
让我们更数学。实际上,我回答的原因是我发现其他答案中缺少这一点。假设您有2层。如果我们看一下反向传播算法,
dZ2 = A2-Y
dW2 =(1 / m)* dZ2 * A2.T
让我们忽略db2。(对不起,对不起;))
dZ1 = W2.T * dZ2。* g1'(Z1)
...
您看到的问题以粗体显示。计算dZ1(计算dW1所需)的W2为0。我们永远没有机会将权重更改为大于0的任何值,而我们永远也不会。因此,从本质上讲,神经网络不会学习任何东西。我认为这比逻辑回归(单个单元)差。在逻辑回归的情况下,由于使用X获得不同的输入,因此您可以进行更多的迭代学习。在这种情况下,其他层始终提供相同的输出,因此您根本不会学习。