简介


说到LSTM神经网络,大家都不陌生,LSTM指的是Long Short-Term Memory,意思是:长短时记忆,也就是说这个神经网络有记忆功能,为什么说它有记忆功能呢?因为在训练数据的时候,很久之前的文本保留下来的信息,可以对当下的预测产生影响,所以就认为神经网络记住了一部分信息。

1. 与RNN对比

由于LSTM来源于对RNN的升级,我们先从RNN入手,来理解整个LSTM在做什么

图上的三个节点其实是按照时间的顺序展开的,或者叫做顺着时序展开的,我们只需要关注其中的一个节点就可以了,从图上看,每个节点的输入有两个,输出也有两个。输出的两个是同一个值,一个用于输出结果,一个用于下一层的输入(其实是同一层,只是下一次迭代的输入),就这样不停的循环迭代训练,就完成了一个RNN神经网络的训练。可能有人要疑惑了,只有一个神经元节点,也就是说只有一个权重W,这样训练出来的网络模型能有很好的拟合能力,或者说是记忆能力?其实,图上只是展现了一个神经元的内部过程,其实这种神经元是可以并列有很多的,同时,也可以设置多个隐层,这样的话就会有很多的参数了,其记忆能力就会变强了。
接下来我们看看LSTM有什么升级

由图可知,和RNN相比,从输入和输出方面,LSTM多了个输入,也多了个输出,多的这个值,就是LSTM的记忆和遗忘机制,值通常用C表示,C指的是Cell,也就是细胞的状态的意思。也就是说,这个值能够决定记忆什么,忘记什么。那这个值的出现有什么好处呢?假如当这个值为0的时候,就说明前面的都不用记住了,也就是说,在反向求导的时候,到这里就可以停止了,我们知道,链式法则里的连乘或者连加,有了这个值的出现,我们就可以避免梯度的Explod和vanishing。具体C的遗忘机制的实现方法,我们在下面详细的探讨。

2. 细节解释


要看懂LSTM的具体实现步骤,就得了解每个小组件代表着什么意思。

  • Nerual Network Layer : 神经网络层,在是指经过这个图标的时候,会对数据进行非线性变换,通常是添加激活函数和偏置。σ一般指的是sigmoid激活函数,tanh便是tanh函数;
  • Pointwise Operation:智慧点操作,这个点有两种运算方式,一种是加,一种是乘;
  • Vector Transfer:向量的传输;
  • Concatenate:连接,一般是向量的拼接操作;
  • Copy:拷贝,即同一份数据,拷贝成两份输出。

3. 细胞状态


从图上可以看到,Cell状态的变换即C值的变换一共经过了两次操作,这两次操作决定了Ct-1的遗忘和更新,首先,Ct-1经过了乘法的Pointwise Operation,这一步决定了Ct-1值是否被遗忘,为什么呢?我们可以看出,与Ct-1相乘的数来自于下方的层,那么下方传过来的数据的取值范围是多少呢?我们可以看出,下方的数据通过的是一个sigmoid的层,也就是说下方穿过来的数据的取值为(0, 1),一般情况下,当输入值大于3或者小于-3的时候,sigmoid的值就接近了1和0,也就是说,C的值一般情况下会接近于Ct-1不变,或者0,也就是说记住了C或者遗忘了Ct-1,当然,一个介于(0, 1)之间的数与Ct-1相乘的话,则代表需要记住多少的Ct-1值。接下来,Ct-1值又遇到了一个加法,则是对Ct-1>值的变更,比如新的信息的加入,一般理解为需要记忆的新的东西。这么来看,我们就完成了C值的遗忘机制,也就是说,这个神经网络具备了记忆和遗忘的能力。
在LSTM中,这便是所谓的门的概念。【在集成电路里,逻辑门就是代表逻辑上的“真”与“假”或二进制当中的1和0,从而实现逻辑运算。】

4. 遗忘门


在上面介绍Cell状态的时候也粗略的讨论了这个遗忘门的基本机制,我们来看这个遗忘门的输入信息,分别是 ht-1,xt,从公式上我们可以看到是这两个值与权重矩阵 Wf 相乘,我们可以理解为 ht-1 与 xt 的拼接,拼接以后再与 Wf 相乘,然后加上一个偏置 bf,最后经过一个激活函数sigmoid,使得线性变换变成非线性变换,此时 ft 的取值为(1,0),这个值决定了 Ct-1 的值是否被记忆或者遗忘,或者说记住多少,这就是这个遗忘门的作用。

5. 输入门


同理,it 和 ft 公式是一样的,这就说明,it 也具有遗忘的功能,比如,Ct-1在遇到 ft 的时候,ft 决定保留Ct-1的记忆,则此时,it 则决定着对 Ct‘ 的遗忘能力,所以,Ct‘ 是LSTM需要记忆的新的值。我们可以看到Ct‘的取值范围是(-1,1),说明新增的记忆的是征服兼有的,这代表着什么呢,可以理解为正例记忆和反例记忆。


Ct-1 遗忘剩余的部分,与新的要记忆的部分 Ct‘ 相加,就是要输出的Ct ,详细不再赘述。

6. 输出门


最后来到了输出门,本次输出的结果就从这个地方输出,我们可以看到ht 是由ot 与tanh(Ct) 相乘得来,也就是说本次需要多少为我所用的含义。

7. 变体


LSTM的变体有很多,最常提到的要数GRU(Gated Recurrent Unit)变体了,其内部构造也是相当的先进,本次不作为重点讲解对象,下次有机会再讲吧。

8. 总结

至此,LSTM的内部构造以及数据的运转机制和含义都交代完了,通过上面的理解,我们可以看出,LSTM对RNN的改进在于对数据的更细化的处理,总体上理解LSTM就是可长可短时的记忆机制,所以叫做长短时记忆神经网络。

【神经网络】一文读懂LSTM神经网络相关推荐

  1. 技术向:一文读懂卷积神经网络

     技术向:一文读懂卷积神经网络 技术网络 36大数据(张雨石) · 2015-03-06 05:47 自今年七月份以来,一直在实验室负责卷积神经网络(Convolutional Neural Ne ...

  2. 一文读懂GoogLeNet神经网络

    本文介绍的是著名的网络结构GoogLeNet,,目的是试图领会其中结构设计思想. 一文读懂GoogLeNet神经网络 GoogLeNet特点 优化网络质量的生物学原理 GoogLeNet网络结构的动机 ...

  3. 独家 | 一文读懂人工神经网络

    作者:Sidath Asiri 翻译:Nicola 校对:卢苗苗 原文标题:MeetArticial Neural Networks 本文约1500字,建议阅读5分钟. 本文通过使用浅显易懂的语言和介 ...

  4. 【综述】一文读懂卷积神经网络(CNN)

    卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习 ...

  5. 一文读懂基于神经网络的图片风格转移

    作者 | moliam 转载自 CSDN 博客 前言 将A图片的风格转移到B图片上,指的是将A图片的抽象艺术风格(如线条.色彩等等)和B图片的内容框架合成为一幅图.自然地,A图片称为风格图,而B图片就 ...

  6. 独家 | 一文读懂人工神经网络学习原理

    原文标题: How do Artificial Neural Networks learn? 作者:rubikscode 翻译:和中华 校对:李海明 本文约3000字,建议阅读10分钟. 本文对人工神 ...

  7. 一文读懂卷积神经网络

    自今年七月份以来,一直在实验室负责卷积神经网络(Convolutional Neural Network,CNN),期间配置和使用过theano和cuda-convnet.cuda-convnet2. ...

  8. 一文读懂GoogLeNet神经网络 | CSDN博文精选

    作者 | .NY&XX 来源 | CSDN博客 本文介绍的是著名的网络结构GoogLeNet,目的是试图领会其中结构设计思想. GoogLeNet特点 优化网络质量的生物学原理 GoogLeN ...

  9. 一文读懂卷积神经网络CNN(学习笔记)

    来源:机器学习算法与自然语言处理 作者:白雪峰 本文为图文结合,建议阅读10分钟. 本文为大家解读如何简单明了的解释卷积,并且分享了学习中的一些方法案例. 首先文章的提纲为: CNN栗子镇楼 What ...

  10. 【CNN】一文读懂卷积神经网络CNN

    https://blog.csdn.net/np4rHI455vg29y2/article/details/78958121 本文为大家解读如何简单明了的解释卷积,并且分享了学习中的一些方法案例. 首 ...

最新文章

  1. WCF如何通过契约加编码方式调用
  2. NanoID 了解一下?比 UUID 更好用!
  3. MVC案例——模糊查询
  4. Sophos将AI技术用于预防恶意IP的安全解决方案中
  5. 3目标检测的准确率_吊打YOLOv3!普林斯顿大学提出:CornerNetLite,基于关键点的实时且精度高的目标检测算法,已开源!...
  6. 719. Find K-th Smallest Pair Distance
  7. linux mint更换mac,在Ubuntu、Linux Mint上安装Mac OS X主题
  8. 深入理解javascript原型和闭包 1
  9. 服务器BIOS、BMC、IPMI、EFI、UEFI等知识详解
  10. HIVE SQL 时间函数
  11. 谷歌Chrome浏览器如何截图长图
  12. 《Java编程那些事儿----这是一本书》
  13. Gauss-Legendre求积公式-高斯型积分公式
  14. M-Arch(番外13)GD32L233评测-来点音乐
  15. python pdb调试多进程_PDB远程调试Python多进程子程序
  16. sqlite3设置密码 password
  17. 大数据营销在旅游行业的应用方案
  18. ubuntu下添加日语输入法
  19. SCRM管理系统是什么意思?一文看懂,真正的解释在这里
  20. Linux内核中喂狗,m3352linux内核中看门狗喂狗和应用层喂狗方法

热门文章

  1. Spring Boot 2.4.0正式发布,全新的配置文件加载机制(不向下兼容)
  2. 随机过程(1)——绪论
  3. Skype国际版最新版及老版本下载
  4. 如何通过SCJP考试(含真题分析和考点)
  5. 南邮-2022年6月电子商务练习自整理 - 选择篇
  6. 电脑安装最新silverlight版本后依旧提示“Silverlight已被阻止,因为它过时且需要被更新”
  7. 手机通讯录整理excel2csv2vcf
  8. 程序员首选编程电脑【火爆来袭】
  9. php中文分词nlp,几种常见的PHP中文分词系统
  10. 数据库系统原理课程设计