长短期记忆(Long Short-Term Memory) 是具有长期记忆能力的一种时间递归神经网络(Recurrent Neural Network)。 其网络结构含有一个或多个具有可遗忘和记忆功能的单元组成。它在1997年被提出用于解决传统RNN(Recurrent Neural Network) 的随时间反向传播中权重消失的问题(vanishing gradient problem over backpropagation-through-time),重要组成部分包括Forget Gate, Input Gate, 和 Output Gate, 分别负责决定当前输入是否被采纳,是否被长期记忆以及决定在记忆中的输入是否在当前被输出。Gated Recurrent Unit 是 LSTM 众多版本中典型的一个。因为它具有记忆性的功能,LSTM经常被用在具有时间序列特性的数据和场景中。
LSTM网络由重复结构的LSTM单元组成,与RNN不同之处在于,重复的单元有四层特殊的结构(RNN只有一层)。
一般LSTM单元:
一般LSTM单元具有Cell State (注释为C_j), Input Gates (注释为i_t), Output Gates (注释为o_t), Forget Gates (注释为f_t), 并且接受上个时间序列的循环input h(t-1) 于当前input x_t, 输出 h_t并且当作下一个循环的循环input. (图中黄色部分代表一层神经网络)
步骤1.决定遗忘的记忆内容:
步骤2. 决定新添加的记忆内容
步骤3.使用权重相加的方式更新当前记忆内容
步骤4.输出当前state
经典LSTM单元变式:
- Peepholeconnections:强调了每一个gate单元跟新时加入cell state的参与,其中Forget Gate和Input Gate加入上一个state的影响,Output Gate则加入当前cell state的影响。
- GRU (Gated Recurrent Unit): 将Forget Gates 与 Input Gates 整合因为跟新记忆于遗忘记忆有密切的关联。GRU是目前非常流行的一种LSTM变式。
来源1: Hochreiter, Sepp & Schmidhuber, Jürgen. (1997). Long Short-term Memory. Neural computation. 9. 1735-80. 10.1162/neco.1997.9.8.1735. https://www.researchgate.net/profile/Sepp_Hochreiter/publication/13853244_Long_Short-term_Memory/links/5700e75608aea6b7746a0624/Long-Short-term-Memory.pdf
来源2:Zachary Chase Lipton (2015). A Critical Review of Recurrent Neural Networks for Sequence Learning. CoRR, abs/1506.00019, . https://arxiv.org/pdf/1506.00019.pdf
来源3:Long Short-Term Memory Wikipedia https://en.wikipedia.org/wiki/Long_short-term_memory
来源4:Understanding LSTM Networks by colah's blog
发展历史
长短期记忆(LSTM)最早由Sepp Hochreiter 和Jürgen Schmidhuber在1997年提出,随后在2000年被改良Felix Gers团队改良。其应用在语音识别、自然语言、文本压缩以及手写文字识别上取得了巨大的成功。
直到2016年, 大部分的科技公司例如谷歌,亚马逊,苹果已经开始大量使用长短期记忆作为AI产品的主要成分。例如LSTM 被用于谷歌的语音识别系列产品,亚马逊的Alexa 系列产品。在2017年, 微软在使用了基于长短期记忆的方法中达到了识别 Switchboard corpus (一个涵盖165000 文字,针对与语音识别相关研究的多人对话语音库)95.1% 的准确率
主要事件
年份 | 事件 | 相关论文/Reference |
1994 | Yoshua Bengio等人提出关于使用梯度下降对具有长期依赖关系的学习中的困难 | Y. Bengio, P. Simard and P. Frasconi, "Learning long-term dependencies with gradient descent is difficult," in IEEE Transactionson Neural Networks, vol. 5, no. 2, pp. 157-166, Mar 1994. doi: 10.1109/72.279181 |
1997 | LSTM单元的提出 | Hochreiter, S, and J Schmidhuber. “Long Short-Term Memory.” Neural Computation 9, no. 8 (November 1997): 1735–80. doi:10.1162/neco.1997.9.8.1735 |
1999 | “Forget Gate”被加入到长短期记忆单元中以使加强合适的记忆重置功能 | Felix A. Gers; Jürgen Schmidhuber; Fred Cummins (2000). "Learning to Forget: Continual Prediction with LSTM". Neural Computation. 12 (10): 2451–2471. doi:10.1162/089976600300015015 |
2001 - 2002 | Felix.A. Gers等提出Peephole LSTM的结构 | Gers, F. A.; Schmidhuber, J. (2001)."LSTM Recurrent Networks Learn Simple Context Free and Context Sensitive Languages". IEEE Transactions on Neural Networks. 12 (6): 1333–1340. doi:10.1109/72.963769; Gers, F.; Schraudolph, N.; Schmidhuber, J. (2002). "Learning precise timing with LSTM recurrent networks". Journal of Machine Learning Research. 3: 115–143. |
2014 | GRU变式的提出 | K. Cho, B. Merrienboer, C. Gulcehre, F. Bougares, H. Schwenk, and Y. Bengio. Learning phrase representation using RNN encoder-decoder for statistical machine translation. In Arxiv preprint arXiv:1406.1078,2014 |
2015 | Xingjian Shi等提出Convolutional LSTM的结构 | Shi, X., Chen, Z., Wang, H., Yeung, D., Wong, W., and Woo, W. (2015). Convolutional LSTM network: A machine learning approach for precipitation nowcasting. CoRR, abs/1506.04214. |
2015 | Kalchbrenner提出Grid LSTM的架构 | Kalchbrenner, N., Danihelka, I., and Graves, A. (2015). Grid long short-term memory. arXiv preprint arXiv:1507.01526. |
发展分析
瓶颈
LSTM等一类的循环神经网络具有时序性质,在模型训练时很难使用类似于GPU使用的并行加速,因此解决的算法的缺乏和相关的硬件支持是目前制约LSTM等一类RNN(Recurrent Neural Network)的进一步推广。
未来发展方向
- 更加多元的网络设计,例如增加单元内部的连接,加强单元之间的联系以及对网络层面的3D叠加。
- 注意力机制的引入加强对合适信息的萃取于传递。
- LSTM对于未来对话系统的应用:基于其上下文本的记忆功能可以类似地将整个对话历史内容作为上下文。
- 视频评论与分析:将视频的每一帧作为输入,输出类似于对视频评论性的文字。
Contributor: Zirui Tao