【自然语言处理】| LSTM 长短期记忆 long short-term memory

LSTM

长短期记忆long short-term memory :
遗忘门:控制上一时间步的记忆细胞 输入门:控制当前时间步的输入
输出门:控制从记忆细胞到隐藏状态
记忆细胞:⼀种特殊的隐藏状态的信息的流动

【自然语言处理】| LSTM 长短期记忆 long short-term memory_第1张图片

公式为: 【自然语言处理】| LSTM 长短期记忆 long short-term memory_第2张图片

 

C_t 表示的是长期记忆,而 H_t 表示的短期记忆。从图中可以看出LSTM的输入部分首先将上一时间步的短期记忆H_t−1与当前的时间步的输入 X_t 拼起来然后分别乘以一个权重矩阵再经过激活函数得到C~t, I_t , F_t, O_t 这四个部分.

遗忘门:它是一个0-1之间的向量,并且大小形状与C_t-1是一样的,因为它们之间要进行对应元素相乘,那么就是说对于上一时刻得到的长期记忆我们选择性的去忘记,它是由短期记忆和当前的输入得到的,也就是说对于长期记忆的"记忆与遗忘"取决于上一时刻的短期记忆和当前的输入。

输入门:其值也是在0-1之间,输入门没有像遗忘门一样直接作于长期记忆,而是对候选记忆细胞C~t进行了对应元素的乘积,候选记忆细胞C~t也是通过上一时刻的隐藏状态H_t-1和当前的输入X_t通过一个权重再激活得到(注意:这里的激活函数没有使用sigmoid而是使用tanh,意思是它不是作为门控来使用,而是对输入的信息作用,并且是通过权重矩阵学习之后的信息进行压缩)。而输入门是直接作用于C~t,和它对应元素进行相乘,这个也很好理解,就是说我们输入的信息,尽管是通过权重矩阵学习过的信息还是需要进行筛选,才可以为模型做出相应的贡献。

当前时间步的长期记忆C_t,我们可以看出当前时间步的长期记忆是当前时刻信息最丰富的部分,因为他结合了上一时间步经过选择性遗忘而筛选的信息与当前时间步经过筛选的输入信息,总的来说就是过去的信息以及当前的信息都有,让他作为下一时间步的长期信息也是有道理的。

当前的短期记忆H_t,它是记录短时间内比较重要的信息,所以它先将当前的长期记忆C_t 通过tanh进行压缩(注意:他这里使用的是tanh激活函数是对信息压缩,而不是sigmoid对信息进行筛选),然后与输出门O_t 进行对应元素进行对应元素相乘,得到当前的短期记忆。在生成短期记忆的时候使用输出门进行筛选,也是有道理的,输出门是对当前输入信息学习之后的筛选器,用来决定当前的短期记忆当然是可以理解的。

 

参考资料:

http://www.ryluo.cn/2020/02/21/LSTM/

你可能感兴趣的:(总结)