![54ffbdd173cf82687f498bf2933fcbbd.png](https://i-blog.csdnimg.cn/blog_migrate/a60c42f05c306447d0f3ed47d6231144.jpeg)
前几天,腾讯NLP实习二面问到了LSTM与GRU的原理与区别,勉强答上来了,但答得并不是很好,今天重新把知识点捡起来,好好巩固一下~
LSTM与GRU的存在是为了解决简单RNN面临的长期依赖问题(由于反向传播存在的梯度消失或爆炸问题,简单RNN很难建模长距离的依赖关系),一种比较有效的方案是在RNN基础上引入门控机制来控制信息的传播。
1 长短期记忆网络(LSTM)
LSTM通过引入了三个门来控制信息的传递,分别是遗忘门
(1)遗忘门
(2)输入门
(3)输出门
原理图如下所示,从图中理解更加一目了然。
![c0adbbd68b5986444a7ee0e84e524c4e.png](https://i-blog.csdnimg.cn/blog_migrate/23789f745c9e193a6c4fdfcfc9333770.jpeg)
接下来介绍下计算过程和公式,理解LSTM的关键,边看图边理解更快~
计算过程
(1)先利用上一时刻的外部状态
(2)结合遗忘门
(3)结合输出门
公式
以上6个公式就是LSTM的核心了,大家一定要牢记,抓住规律和LSTM的计算过程其实不会太难记的。
其中,1.1-1.4是比较好记的,输入都是和
,
候选状态,更重要的是相比sigmoid激活函数,其导数有比较大的值域,能缓解梯度消失的问题,照理说tanh也存在梯度饱和的问题,用其他激活函数应该也是可以的。是需要学习的网络参数。前三个使用sigmoid是因为输出为[0,1]之间的值,控制信息传播;第四个使用tanh进行非线性计算
1.5计算内部状态,也就是记忆单元,是LSTM核心部分,通过遗忘门和输入门分别乘以上一时刻内部状态
和当前时刻的候选状态
;
1.6就是通过输出门计算 非线性激活后的记忆单元,得到当前时刻外部状态![]()
。
再回到标题中来,长短期记忆,长短期是什么呢,从上述原理和公式好像并没有体现诶。
其实,传统RNN中的
而在LSTM网络中,内部状态
2 门控循环单元网络(GRU)
GRU的结构比LSTM更为简单一些,GRU只有两个门,更新门
(1)更新门
(2)重置门
从式1.10分析,GRU直接使用更新门来控制输入和遗忘的平衡,而LSTM中输入门和遗忘门相比GRU就具有一定的冗余性了。可以看出,当
GRU主要记住上述四个公式就基本掌握了其原理。
![d205bce337c511cb5a8b1c96549591c1.png](https://i-blog.csdnimg.cn/blog_migrate/fd49fae47c79fae39dec1c453781ea87.jpeg)
参考:邱锡鹏《神经网络与深度学习》 https:// nndl.github.io/
完结:-)