这篇笔记是学习了一系列LSTM文章和视频后的总结,方便自己查阅
文章:
视频:【重温经典】大白话讲解LSTM长短期记忆网络 如何缓解梯度消失,手把手公式推导反向传播
1. RNN结构
LSTM可以看作是RNN的一种变体,首先是RNN的基本结构
输入x1、x2、x3、x4...是一组序列型的数据,它可以代表:
- 自然语言处理问题:第一个单词、第二个单词....
- 语音处理问题:第一帧的语音、第二帧的语音....
- 时间序列问题:第一天的股票价格、第二天的股票价格....
h1是通过x1和h0通过特定的函数计算得来的,如:,h2、h3、h4同理,使用的参数U、W、b相等
输出y1、y2...是通过h1、h2...经过特定的函数计算而来的,如:,同样,参数V和c也是公用的
RNN的问题:
- 长期依赖问题:例如语言处理中,一段话开头的单词RNN会逐渐遗忘,当需要用到该单词时会丧失学习到这么远距离信息的能力
- 梯度消失问题
2. LSTM
LSTM全称是Long Short Term网络,是一种特殊的RNN类型,它的结构如下:
自己做的详细解释图:
:sigmoid函数,将值压缩到[0,1]之间,用于选择和遗弃记忆,0遗弃,1保留
:tanh函数,把值压缩到[-1,1]之间,可以理解为将输入前的参量转变为另一种评价指标
- 忘记门:将当前输入和短期记忆一并送入sigmoid函数得到ft,ft是一个数组,例如[0,0,1,0,1],代表第三个和第五个记忆保留其余遗忘;
- 输入门:利用tanh函数创建一个新的记忆Ct(C上波浪线t),It就是对ft的如法炮制,保留和遗忘新记忆中的内容,最后将新的记忆加入到经过遗忘的旧记忆中;
- 输出门:Ot的作用是用来筛选即将输出这次的结果时,现有的记忆有哪些是要用上的哪些是不用的,同时,现有的记忆Ct从上方被送入tanh,转换成了针对该次任务的评判指标(如:考前复习记忆的内容----考试时的状态)
自己总结的一个例子:
任务:Susan is 22 years old, her dad is 50 years old, he likes biking.
给出前半段句子到50 years old,预测出he这个单词
这个任务中,主语(Susan)是女性这个信息被保存在Ct-1也就是长期记忆中,ht-1就是给出的前半句话,Xt是her dad这一信息。通过忘记门先将长期记忆中主语是女性这一信息遗忘,通过输入门将主语变为男性这一信息变成新的记忆,最后通过输出门输出。