《LSTM is all you need》
LSTM
参考资料:http://colah.github.io/posts/2015-08-Understanding-LSTMs/
基本LSTM
LSTM的提出是为了解决RNN无法适用于长序列的不足,梯度消失或梯度爆炸的现象会导致RNN应用于长时间序列上无法收敛。
所有的循环神经网络都具有一种重复模块,而RNN的重复模块是一个单tanh层:
LSTM也有重复模块,只是该模块的结构不同与RNN,它有四个神经网络层。下图是LSTM的网络结构,每个重复单元都由多个门共同控制,从左至右分别是
- forget gate layer,决定哪些信息要选择性遗忘
- input gate layer,决定要更新哪些信息
- tanh layer,决定要如何更新信息
- output layer,决定如何输入信息
其中每一个模块具体如下:
(1)方块代表神经网络层
(2)圆圈代表操作,如向量加法
(3)单箭头代表一个节点的输出到其他节点的输入
(4)合并箭头代表串联
(5)分叉箭头代表向量复制,并传到不同的位置
LSTM的重复模块可分为:
(1)cell state:类似于传送带,信息可以选择性改变
(2)gates:选择让信息通过的方式,由一个sigmoid神经网络层和向量点乘组成
LSTM总共有三个gate,以保护cell state的信息
(3)遗忘门:该门由一个sigmoid层组成,以和为输入,再将输出传到cell state 与之作向量乘法,例如*,也就是对cell state中的数据选择性的删除。
(4)输入门:该门由一个sigmoid层和tanh层组成,sigmoid层决定更新哪些值,tanh层创建一个新的候选向量
(5)更新:将cell state更新为cell state,即用之前的状态乘以(进行遗忘),然后加上,决定更新每个状态值的程度
(6)输出门:该门由一个sigmoid层和tanh层组成,sigmoid层决定输出哪些前时刻的cell state,tanh层将cell state的数值改为(-1,1)之间,最后相互进行点乘,得到输出
LSTM的改进
以上提到的是基本LSTM,关于LSTM还有一些变体:
(1)增加peephole connections
(2)使用耦合的遗忘门和输入门
(3)GRU
本文作者:我好想睡觉啊
本文链接:https://www.cnblogs.com/z-qhhh/p/16517463.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步