动手实现LSTM代码的时候,因为忘记了各种门的原理,总感觉磕磕绊绊的。在这里重新巩固一下。
普通RNN无法学习到距离当前位置较远的信息,LSTM通过修改每个隐藏层内部的结构,来解决长距离依赖问题,实现对“记忆”的控制。如下图所示:
这种特殊结构的主要思想是:将信息存储在一个个记忆细胞中,不同隐藏层的记忆细胞之间通过少量线性交互形成一条传送带(图中红线),实现信息的流动。同时引入一种“门”的结构,用来新增或删除记忆细胞中的信息,控制信息的流动。
这种结构的构成如下:
三个输入:
当前位置的特征x,前一隐藏层的状态 a,前一个记忆细胞c
三个输出:
当前隐藏层状态a,当前记忆细胞c,当前位置预测