LSTM如何防止循环神经网络(RNN)中的梯度消失问题?
0 1178
2
该提问暂无详细描述
收藏
2021-01-21 15:58 更新 🍊小桔子 •  2437
共 1 个回答
高赞 时间
0

有两个因素会影响梯度的大小:梯度所经过的权重值和激活函数(或者更准确地说,是它们的导数)。

如果这些因素中的任何一个小于1,则梯度可能会随时间消失;如果大于1,则可能发生梯度爆炸。例如,对于除0以外的所有输入,tanh的导数<1;sigmoid函数甚至更糟,它将始终≤0.25。

在LSTM的循环中,激活函数是具有导数为1.0的恒等函数。因此,反向传播的梯度不会消失或爆炸,而是可以保持恒定。

循环的有效权重等价于遗忘门激活。因此,如果遗忘门打开(激活接近1.0),则梯度不会消失。由于遗忘门激活永远不会> 1.0,因此梯度也就不会爆炸。 这就是LSTM擅长学习长期依赖关系的原因。

收藏
2021-01-21 16:04 更新 Lisa •  1796