背景:

RNN中存在梯度爆炸和梯度消失问题,梯度消失问题严重

设计思路:

RNN希望将所有的信息记住,不论是有效信息还是无效信息

LSTM设计一个记忆细胞,具备选择性记忆的功能,可以选择记忆重要信息,过滤掉噪声信息,减轻记忆负担

前向传播:

与RNN对比:

RNN串联的通过一个箭头串联

LSTM通过两个箭头将每个时间步相连接,称为记忆细胞

门:

\sigma:代表门控单元,输出在[0,1]之间

f_{t}遗忘门:将值向0减少;尽可能将无关记忆遗忘,通过对应元素相乘将C_{t-1}中对应位置所记忆的内容调整,为“0”的记忆遗忘,为“1”的记忆保留

i_{t}更新门/输入门:决定不是忽略掉输入数据;对C_{t}新记忆作用,但C_{t}中不是所有内容都有效,更新门将无用的信息过滤掉,记住相关内容

o_{t}输出门:决定是不是使用隐藏状态;作用于\tanh \left ( C_{t} \right ),拿归一化评分系统乘现在的记忆,去评价现在的记忆学的好不好,决定输出哪些

候选记忆单元:

计算C类似于RNN中计算H,没有用到gate

记忆单元:

上一时刻的记忆单元会作为状态放入,LSTM与RNN、GRU不同的地方在于其状态里有C和H

F_{t}若变为“0”,则尽量不要去记住C_{t-1}

I_{t}若为“1”,则尽量使用\widetilde{C_{t}}I_{t}若为“0”,尽量把现在的记忆单元丢掉

使用两个独立的状态量,既可以用前状态,又可以使用当前状态,两者相互独立

隐状态:

记忆细胞:

在LSTM的每个时间步里,都有一个记忆cell,记忆cell给予了LSTM选择记忆的功能,使得LSTM有能力自由选择每个时间步里面记忆的内容

对候选记忆单元再做一个tanh\left ( \right )原因:

tanh\left ( \right )可以把值变到正一和负一之间

F_{t}I_{t}的值域为[0,1],C_{t-1}\widetilde{C_{t}}的值域在[0,1],但根据公式:

C_{t}的值域为[-2,2]

所以需要tanh\left ( \right )H_{t}的值域位于[-1,1],O_{t}用来控制是否要使用C_{t}

反向传播:

总结:

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐