ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

由RNN理解LSTM模型

2021-05-26 22:01:19  阅读:207  来源: 互联网

标签:状态 RNN sigmoid 模型 ht LSTM Ct


1、回顾RNN

在这里插入图片描述
Xt是在t时刻的输入。
St是在实践中t时刻的“记忆”,其中St=f(UXt+WSt-1) 其中f可以是tanh这种非线性转换函数。
Ot是在时间t处的输出。
在时间t时刻输入数据X,表示为Xt,经过隐藏层S作用,得到输出ht,ht保留下来与Xt+1一起又经S作用,得到输出,如此反复循环。

S1=f(UX1+WS0)
S2=f(UX2+WS1)
……
St=f(UXt+WSt-1)
这就导致了最后一个时刻的隐藏状态依赖于前面所有的隐藏状态。

RNN对于长期依赖问题无法进行解决,由此可能会产生梯度消失和梯度爆炸问题,而RNN的变形LSTM解决了这个问题。
在这里插入图片描述
上图是RNN的细胞结构,会有上一刻的隐状态ht-1和t时刻的输入Xt做一个组合,组合之后经过wx+b的作用,经过sigmoid的一个转换,得到输出ht和隐状态ht。中间经过的这些作用相当于一个黑盒子,而LSTM就是在黑盒子上做的改变。
在这里插入图片描述
把黑盒子隐藏掉,外部可以看到的就是就如上图所示的结构。

2、RNN的改进——LSTM

在这里插入图片描述
这是LSTM整体的一个结构图,不看里面的一些操作,整体外部结构跟RNN相似,只是两个结构之间进行了两次隐藏状态的传递。
LSTM是通过三个“门”结构来去除或增加“细胞状态”的信息。

LSTM的三个“门”的作用

LSTM的关键:Ct–细胞状态

细胞状态类似于传送带,直接在整个链上运行,只有一些少量线性交互,信息很容易在上面流传保持不变。上一个细胞的状态不仅与ht-1有关,而且与Ct-1有关。Ct-1即我们所说的一个长时记忆,ht-1就是一个短时记忆。
在这里插入图片描述

忘记门

这个门的作用是决定从“细胞状态”中丢弃什么信息。

ht-1与Xt直接结合起来(例如:Xt是28位的向量,ht-1是128位的向量,那么结合起来就是156位的向量),经过sigmoid激活,因为sigmoid的值在[0,1]之间,当sigmoid的值接近0时就选择遗忘,接近1时继续进行传递。
ft=σ(Wf[ht-1,xt]+bf)
在这里插入图片描述

输入门

决定放什么信息到“细胞状态”,进行数据加强。
这个门可以分为两部分,一个是学习门,一个是记忆门。

首先我们来说学习门。
it=σ(Wi[ht-1,xt]+bi)
C ~t=σ(Wc[ht-1,xt]+bc)
it是忽略因子,由ht-1和xt做一个sigmoid转换,值在[0,1]范围内,决定了哪些部分删除,sigmoid决定什么值需要去除和更新。
tanh层创建了一个新的信息向量Ct,函数的取值范围为-1或1,-1表示负加强,1表示正加强。
it与tanh构成了学习门,确定信息的删除和增加。
在这里插入图片描述
接着是记忆门。
更新Ct-1为Ct,将旧状态Ct-1与ft相乘,丢失掉确定不要的信息,加上新的状态信息it*Ct得到最终更新后的细胞状态。
Ct=ft * Ct-1+it * C ~t
经过忘记门、学习门才真正达到保留学习的功能。
在这里插入图片描述

输出门

基于“细胞状态”得到输出。
首先由ht-1和xt经过sigmoid层来确定将细胞哪个状态输出。
再使用tanh处理“细胞状态”Ct,得到一个[-1,1]之间的值,将它与sigmoid的输出相乘,最后确定输出的部分。
Ot=σ(Wo[ht-1,xt]+bo)
ht=Ot*tanh(Ct)
其中Ot的范围在[0,1],tanh的范围在[-1,1],所以ht的范围在[-1,1],当ht=0时,说明对以前的信息不作处理。
在这里插入图片描述

总结

LSTM模型相比于RNN,增加了三个门:忘记门(遗忘门)、输入门、输出门。LSTM用Ct来传递很久以前的消息,已达到长距离以来的目的,cell是用来保存过去记忆的Ct。
所以LSTM隐藏层神经元的输入是上一时刻的隐状态ht-1和记忆Ct-1,输出是当前时刻的隐状态ht和希望传递给下一时刻的记忆Ct。所以从外部看的话,LSTM比RNN多了一条向后传递的隐状态,即Ct。

以上的内容是对“L先生AI课堂之神经网络”进行总结。
以下是B站上网课的地址:
[https://space.bilibili.com/484960920?from=search&seid=4861382416827879200]

标签:状态,RNN,sigmoid,模型,ht,LSTM,Ct
来源: https://blog.csdn.net/weixin_44133816/article/details/117299243

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有