目录
- RNN 发生梯度消失的原因是什么?
- RNN中使用ReLU可以解决梯度消失问题吗?
- LSTM为什么能解决梯度消失/爆炸的问题?
- LSTM和GRU的区别
- LSTM的不足之处
2020.12.07
1. RNN 发生梯度消失的原因是什么?
2. RNN中使用ReLU可以解决梯度消失问题吗?
3. LSTM为什么能解决梯度消失/爆炸的问题?
LSTM可以通过门控机制来解决梯度消失和爆炸的问题。
RNN产生梯度消失和梯度爆炸的原因在长程依赖。而在LSTM使用门控函数,有选择地让一部分信息通过。门控是友一个sigmoid单元和一个逐点乘积操作组成,sigmoid单元输出1或0,用来判断通过还是阻止,然后训练这些门的组合。所以,当门是打开的(梯度接近于1),梯度就不会消失。并且sigmoid不超过1,那么梯度也不会爆炸。
4. LSTM和GRU的区别
5. LSTM的不足之处
- LSTM的出现有点像ResNet模型,可以绕过单元从而记住更长的时间步骤(LSTM之所以可以解决梯度问题,是因为它避免了无休止的连乘6,而是边加边乘,这和ResNet本身就是异曲同工的)。但如果面对更长序列的记忆和训练问题,LSTM仍然会暴露出梯度消失的问题。
- 计算费时。每一个LSTM的cell里面都意味着有4个全连接层(MLP),如果LSTM的时间跨度很大,并且网络又很深,这个计算量会很大,很耗时。
- LSTM的长时记忆能力有限。
- 容易过拟合,并且Dropout方法通常不能给LSTM模型带来泛化能力的大幅提升。