LSTM神经网络介绍
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 引言
- 一、介绍
- 1.1什么是LSTM?
- 1.2基础知识
- 1.2.1门控机制
- 1.2.2 相关激活函数
- 1.2.3网络参数介绍
- 二、LSTM网络架构
- 2.1架构图
- 三、LSTM的门
- 3.1遗忘门
- 3.2输入门
- 3.3输出门
- 四、LSTM的简单实例
- 参考
引言
传统的神经网络在处理与事件发生的时间轴有关系的问题时,如果需要联系并考虑上下文的时候就无能为力了,比如语音识别,机器翻译,时间序列等,因为他们的输出只是由当前的输入决定。所以就提出了RNN,了解RNN基本原理之后,也就为研究LSTM网络(long short-term memory,长短时记忆网络)做了铺垫。
一、介绍
1.1什么是LSTM?
LSTM主要通过引入门控机制来控制信息的累积速度,包括有选择地加入新的信息,并有选择地遗忘之前累积的信息,由此改善循环神经网络(RNN)的长程依赖问题以及缓解长序列训练过程中的梯度消失问题。
1.2基础知识
1.2.1门控机制
在数字电路中,门(gate)为一个二值变量(0,1),0代表关闭状态、不许任何信息通过;1代表开放状态,允许所有信息通过。
gate 在LSTM网络中实际上就是一层全连接层,输入是一个向量,输出是一个 0到1 之间的实数向量。表示以一定的比例允许信息通过。
1.2.2 相关激活函数
sigmoid函数:Sigmoid函数的输出映射在(0,1)之间,单调连续,输出范围有限。
tanh函数:tanh函数的输出映射在(-1,1)之间,在一定范围的内,比Sigmoid函数收敛速度更快。
1.2.3网络参数介绍
二、LSTM网络架构
2.1架构图
前向传播共六个公式如图所示。
LSTM三个门的作用
(1)遗忘门f:决定上一个时刻的记忆单元状态需要遗忘多少信息,保留多少信息到当前记忆单元状态。
(2)输入门i:控制当前时刻输入信息候选状态有多少信息需要保存到当前记忆单元状态。
(3)输出门o:控制当前时刻的记忆单元状态有多少信息需要输出给外部状态。
三、LSTM的门
3.1遗忘门
LSTM第一步是用来决定放弃或者保留什么信息。这个决定由“forget gate”门通过sigmoid进行选择性忘记,越接近0表示越应该忘记,越接近1表示越应该保留。
请注意这里参数应为向量输入来代表具体信息,我就先用1或0表示所有信息方便直观理解。
实例:设这一层所有权重WfW_fWf=100;偏置bfb_fbf=1,ht−1h_{t-1}ht−1=0(前一时刻没有任何隐藏信息),Ct−1C_{t-1}Ct−1=1(前一时刻记忆单元保留的张三信息),xtx_txt=1(输入李四的信息),则由公式计算得ftf_tft≈1,表示需要保留信息(即当前时刻遗忘门决定保留之前的张三信息),由此我们实现了继续保留历史信息传递给当前记忆单元状态CtC_tCt。反之ftf_tft≈0,表示需要忘记之前的信息。
3.2输入门
第二步是产生我们需要更新的新信息。这一步包含两部分,“input gate”通过sigmoid来决定哪些值用来更新,tanh用来生成新的候选值。然后将sigmoid的输出值乘以tanh输出的候选信息,也即sigmoid的输出值决定tanh输出值中的内容哪些是重要的需要留下来的信息。
实例:设这一层权重WiW_iWi=100;WcW_cWc=100偏置bib_ibi=1,bcb_cbc=1,ht−1h_{t-1}ht−1=0(前一时刻没有任何隐藏信息),xtx_txt=1(输入李四信息,同上所述),则由公式计算得iti_tit≈1(决定需要添加新信息),Ct~\tilde{C_t}Ct~≈1(新的候选信息,李四的信息),即iti_tit*Ct~\tilde{C_t}Ct~=1表示需要给当前记忆单元状态更新的信息。
将第一步和第二步得到的结果相加起来就是丢掉不需要的信息,添加新信息的过程,即可得到传输给下一个状态的信息。比如在前面的例子中我们保存的是张三的信息,现在有了新的李四信息,我们需要把张三的信息仍保留,然后把李四的信息也保存下来。
实例:设Ct−1C_{t-1}Ct−1=1(张三的信息)由前两步得ftf_tft≈1(需要保留张三的信息),iti_tit*Ct~\tilde{C_t}Ct~=1(需要添加李四的信息)则由公式计算得当前记忆单元状态CtC_tCt=2(既保留有张三信息,也添加了李四信息)。
3.3输出门
最后一步是决定模型的输出,这个阶段将确定下一个隐藏状态(包含了先前的输入信息)。首先是通过sigmoid层来得到输出,然后使用tanh对上一阶段得到的新的记忆单元状态进行放缩,再与sigmoid得到的输出逐对相乘,以确定隐藏状态应该携带的信息,再将新的作为当前的输出,即把新的信息传递到下一个时间步长。
实例:设这一层所有权重WoW_oWo=100;偏置bob_obo=1,ht−1h_{t-1}ht−1=0,xtx_txt=1,则由公式计算得oto_tot≈1(决定需要输出当前的记忆单元信息),hth_tht≈1表示需要输出当前状态信息(既保留张三信息,也添加李四信息),留给下一个单元选择输入以此来考虑到历史信息,由于hth_tht每个时刻都会被重写,可以看作短时记忆。反之,若oto_tot≈0,则hth_tht=0(hth_tht什么信息都没有输出,但是CtC_tCt仍可以保持历史信息,CtC_tCt可看作长的短时记忆)。
这显然可以理解,tanh函数是对先前学到信息的压缩处理,起到稳定数值的作用,以及sigmoid函数的输出,两者的结合学习就是递归神经网络的学习思想。至于模型是如何学习的,那就是后向传播误差学习权重的一个过程了。
四、LSTM的简单实例
这是在看了台大李宏毅教授的深度学习视频之后的一点总结。下图是李宏毅教授LSTM这一章节PPT里的内容,在这里只简要介绍一下,详细的大家可以去视频观看,希望能帮助大家更好的理解LSTM模型。
可以看到在具体实例中,我们分别对三个门(input gate,forget gate,output
gate)以及输入神经网络中分别赋予了权重值w以及偏差值b为1,先把x1x_1x1=3,x2x_2x2=1,x3x_3x3=0分别代入得,当前时刻信息输入为3;输入门的值为90经过sigmoid函数可以把值视为为1,表示允许信息通过;遗忘门值为110经过处理后视为1表示保留之前细胞状态信息Ct−1C_{t-1}Ct−1=0即为0;由此得当前时刻细胞状态CtC_tCt为3+0=3;输出门值oto_tot 为-10处理后视为0,即不允许输出当前状态。故第一个输出为y=hth_tht=0。
可得当前时刻网络的各参数为xtx_txt=(3,1,0);ht−1h_{t-1}ht−1 =0; Ct~\tilde{C_t}Ct~=3; ftf_tft =1;iti_tit=1;oto_tot=0;Ct−1C_{t-1}Ct−1 =0;CtC_tCt =3;y=hth_tht=0
同理,把x1x_1x1=4,x2x_2x2=1,x3x_3x3=0,xtx_txt=(4,1,0);ht−1h_{t-1}ht−1 =0; Ct~\tilde{C_t}Ct~=4; ftf_tft =1;iti_tit=1;oto_tot=0;Ct−1C_{t-1}Ct−1 =3;CtC_tCt =7;y=hth_tht=0
把x1x_1x1=2,x2x_2x2=0,x3x_3x3=0,xtx_txt=(2,0,0);ht−1h_{t-1}ht−1 =0; Ct~\tilde{C_t}Ct~=2; ftf_tft =1;iti_tit=0;oto_tot=0;Ct−1C_{t-1}Ct−1 =7;CtC_tCt =7;y=hth_tht=0
把x1x_1x1=1,x2x_2x2=0,x3x_3x3=1,xtx_txt=(1,0,1);ht−1h_{t-1}ht−1 =0; Ct~\tilde{C_t}Ct~=1; ftf_tft =1;iti_tit=0;oto_tot=1;Ct−1C_{t-1}Ct−1 =7;CtC_tCt=7;y=hth_tht=7
把x1x_1x1=3,x2x_2x2=-1,x3x_3x3=0,xtx_txt=(3,-1,0);ht−1h_{t-1}ht−1 =7; Ct~\tilde{C_t}Ct~=3;ftf_tft =0;iti_tit=0;oto_tot=0;Ct−1C_{t-1}Ct−1 =7;CtC_tCt =0;y=hth_tht=0
故最后可得输出为0;0;0;7;0
参考
LSTM介绍及反向传播算法推导(非常详细)
LSTM神经网络详解
LSTM神经网络介绍相关推荐
- (转) 干货 | 图解LSTM神经网络架构及其11种变体(附论文)
干货 | 图解LSTM神经网络架构及其11种变体(附论文) 2016-10-02 机器之心 选自FastML 作者:Zygmunt Z. 机器之心编译 参与:老红.李亚洲 就像雨季后非洲大草原许多野 ...
- RNN以及LSTM的介绍和公式梳理
RNN以及LSTM的介绍和公式梳理 标签: 算法RNNLSTM 2015-07-25 16:32 127091人阅读 评论(40) 收藏 举报 本文章已收录于: 深度学习知识库 分类: 机器学习( ...
- LSTM神经网络 和 GRU神经网络
LSTM是什么 LSTM即Long Short Memory Network,长短时记忆网络.它其实是属于RNN的一种变种,可以说它是为了克服RNN无法很好处理远距离依赖而提出的. 我们说RNN不能处 ...
- 图解LSTM神经网络架构及其11种变体(附论文)
来源:机器之心 英文原文:Deep learning architecture diagrams 参与:老红.李亚洲 原文链接:图解LSTM神经网络架构及其11种变体(附论文) 本文经机器之心(微信公 ...
- 理解LSTM神经网络 ---- 翻译 Understanding LSTM Networks
理解LSTM神经网络 -- 翻译 Understanding LSTM Networks 这篇文章是Understanding LSTM Networks博客的翻译,仅用于学习和理解.因为个人水平有限 ...
- YJango的卷积神经网络——介绍
YJango的卷积神经网络--介绍 本文作者:雷锋专栏 2017-07-04 17:16 导语:这里对卷积神经网络的讲解主要是以不同的思考侧重展开,通过对卷积神经网络的分析,进一步理解神经网络变体中& ...
- AI预测彩票,使用chatgpt和lstm神经网络(文末附源码)
提示:经过2个月的使用AI预测彩票的测试写一篇文章记录下心路历程 文章目录 前言 一.什么是lstm和chatgpt? 二.chat使用步骤 1. wetab浏览器插件 2. 整理的训练话术如下(重点 ...
- 数据分享 | LSTM神经网络架构和原理及其在Python中的预测应用(附视频)
本文约2800字,建议阅读10+分钟 本文与你分享如何使用长短期记忆网络(LSTM)来拟合一个不稳定的时间序列. 长短期记忆网络--通常称为"LSTM"--是一种特殊的RNN递归神 ...
- matlab newelm,Elman神经网络介绍以及Matlab实现
Elman神经网络介绍以及Matlab实现 发布时间:2018-06-28 19:27, 浏览次数:745 , 标签: Elman Matlab Elman神经网络介绍 1.特点 Elman神经网络是 ...
- 【深度学习】LSTM神经网络解决COVID-19预测问题(二)
[深度学习]LSTM神经网络解决COVID-19预测问题(二) 文章目录 1 概述 2 模型求解和检验 3 模型代码 4 模型评价与推广 5 参考 1 概述 建立一个普适性较高的模型来有效预测疫情的达 ...
最新文章
- 获取轮廓、获取内接矩形
- Windows 网络服务架构系列课程详解(六) ---利用NLB群集实现WEB服务器的可靠性...
- axios 同步_githubactions进行github仓库和gitee仓库同步
- word 公式编号 右侧对齐_word排版实例:如何将文档中的公式与文字对齐
- CF505E-Mr. Kitayuta vs. Bamboos【贪心,二分】
- eclipse安装Hadoop-0.20.2插件
- 欧式距离、曼哈顿距离、余弦相似度(python代码)
- 我的世界java版使用剑_我的世界:JAVA版藏“私货”内置绝世好剑与神功,你玩的版本有吗...
- 箭头函数:this的指向问题
- VM安装rhel或linux后,声音很响,如何关闭
- AB=C型向量分解思路思考
- mysql服务重启后不见了_太狗血!翔安已婚男出轨KTV服务员,致其怀孕后避而不见!情人上门讨要说法后原配妻子也......
- Javascript实现子窗口向父窗口传值(转)
- 钢结构计算机模拟拼装,钢结构技术-钢结构虚拟预拼装技术
- 还来得及,快来拯救网易相册上的老照片吧!
- springboot集成百度云OCR,实现通用文字识别,身份证文字识别,车牌号识别等等
- Unity单机手游逆向破解思路(仅供学习参考,禁止用于非法行为)
- 自媒体必死 大家不要被马化腾忽悠了
- MyBase 与 HTML Help Workshop 编辑chm
- Electron点击右上角关闭按钮隐藏任务栏图标(electron类似杀毒软件的任务栏图标)