消失梯度是:随着梯度开始从网络末端(网络右侧)流向网络起点(网络左侧),它会乘以小于 1 的数字,然后逐渐变得越来越弱,当它到达第一层时,它非常弱,以至于初始层参数几乎没有变化。
现在,对于 RNN,您可以展开网络,现在您可以看到它就像一个深度网络。为了清楚起见,请看下图(取自 Andrew NG 的课程并经过编辑):
红色箭头表示梯度反向传播的方式,您可以看到在每一步中它们都乘以一个数字(实际上是一个矩阵乘以另一个矩阵)。如果这个数字小于一,那么它会导致梯度消失。如果此数字大于 1,则会导致曝光(可以通过简单地将其裁剪到最大值来控制)。台阶越高,消失或爆炸效果越强。
但是他们已经找到了解决这个问题的方法,LSTM 或 GRU。这些单元所做的是,它们将为梯度反向传播开辟一条高速公路(在每个状态中,它将乘以 1)。所以梯度可以传播更远的距离(从法国到法国)。尽管如此,这个问题仍然存在于很长一段时间的关系中。
如果你知道什么是 ResNet 以及它是如何工作的,你可以在 LSTM 或 GRU 和 ResNets 背后找到相同的概念,因为它们都为梯度回流开辟了高速公路。
您可以通过遵循前向传递并假设它们正在做什么将概念锁定在记忆单元中来直观地了解 LSTM 或 GRU 的工作原理。就像当网络看到这个词时France
,它会明白这是一个重要的词,也许以后会变得很方便。所以它会把这个France
词放在它的一个记忆单元中,并在那里保持几个步骤,当它想猜测语言时,它会使用这个记忆单元来预测French
not English
or Persian
。然后它可以释放该存储单元并将该单元用于其他用途。
如果您想了解更多信息并获得更好的直觉,我强烈建议您查看此链接:麻省理工学院的 CS231n - 第 10 讲