0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RNN以及LSTM

新机器视觉 来源:机器学习算法那些事 作者:机器学习算法那些 2022-03-15 10:44 次阅读

熟悉深度学习的朋友知道,LSTM是一种RNN模型,可以方便地处理时间序列数据,在NLP等领域有广泛应用。

在看了台大李宏毅教授的深度学习视频后,特别是介绍的第一部分RNN以及LSTM,整个人醍醐灌顶。

0. 从RNN说起

循环神经网络(Recurrent Neural Network,RNN)是一种用于处理序列数据的神经网络。相比一般的神经网络来说,他能够处理序列变化的数据。比如某个单词的意思会因为上文提到的内容不同而有不同的含义,RNN就能够很好地解决这类问题。

1. 普通RNN

先简单介绍一下一般的RNN。其主要形式如下图所示(图片均来自台大李宏毅教授的PPT):

ba5cb7b8-a355-11ec-952b-dac502259ad0.png

这里:

为当前状态下数据的输入,表示接收到的上一个节点的输入。

为当前节点状态下的输出,而为传递到下一个节点的输出。

通过上图的公式可以看到,输出 h'与 x 和 h 的值都相关。

而 y 则常常使用 h'投入到一个线性层(主要是进行维度映射)然后使用softmax进行分类得到需要的数据。

对这里的y如何通过 h'计算得到往往看具体模型的使用方式。

通过序列形式的输入,我们能够得到如下形式的RNN。

ba767a90-a355-11ec-952b-dac502259ad0.png

2. LSTM

2.1 什么是LSTM

长短期记忆(Long short-term memory, LSTM)是一种特殊的RNN,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。简单来说,就是相比普通的RNN,LSTM能够在更长的序列中有更好的表现。

LSTM结构(图右)和普通RNN的主要输入输出区别如下所示。

ba9e1884-a355-11ec-952b-dac502259ad0.png

相比RNN只有一个传递状态,LSTM有两个传输状态,一个(cell state),和一个(hidden state)。RNN中的等价于LSTM中的。

其中对于传递下去的改变得很慢,通常输出的是上一个状态传过来的加上一些数值。

而则在不同节点下往往会有很大的区别。

2.2 深入LSTM结构

下面具体对LSTM的内部结构来进行剖析。

首先使用LSTM的当前输入和上一个状态传递下来的拼接训练得到四个状态。

baaf8b0a-a355-11ec-952b-dac502259ad0.png

其中,,是由拼接向量乘以权重矩阵之后,再通过一个 sigmoid激活函数转换成0到1之间的数值,来作为一种门控状态。而则是将结果通过一个 tanh激活函数将转换成-1到1之间的值(这里使用 tanh是因为这里是将其做为输入数据,而不是门控信号)。

下面开始进一步介绍这四个状态在LSTM内部的使用(敲黑板)

bac692d2-a355-11ec-952b-dac502259ad0.png

是Hadamard Product,也就是操作矩阵中对应的元素相乘,因此要求两个相乘矩阵是同型的。则代表进行矩阵加法。

LSTM内部主要有三个阶段:

1. 忘记阶段。这个阶段主要是对上一个节点传进来的输入进行选择性忘记。简单来说就是会 “忘记不重要的,记住重要的”。

具体来说是通过计算得到的(f表示forget)来作为忘记门控,来控制上一个状态的哪些需要留哪些需要忘。

2. 选择记忆阶段。这个阶段将这个阶段的输入有选择性地进行“记忆”。主要是会对输入进行选择记忆。哪些重要则着重记录下来,哪些不重要,则少记一些。当前的输入内容由前面计算得到的表示。而选择的门控信号则是由(i代表information)来进行控制。

将上面两步得到的结果相加,即可得到传输给下一个状态的。也就是上图中的第一个公式。

3. 输出阶段。这个阶段将决定哪些将会被当成当前状态的输出。主要是通过来进行控制的。并且还对上一阶段得到的进行了放缩(通过一个tanh激活函数进行变化)。

与普通RNN类似,输出往往最终也是通过变化得到。

3. 总结

以上,就是LSTM的内部结构。通过门控状态来控制传输状态,记住需要长时间记忆的,忘记不重要的信息;而不像普通的RNN那样只能够“呆萌”地仅有一种记忆叠加方式。对很多需要“长期记忆”的任务来说,尤其好用。

但也因为引入了很多内容,导致参数变多,也使得训练难度加大了很多。因此很多时候我们往往会使用效果和LSTM相当但参数更少的GRU来构建大训练量的模型。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4597

    浏览量

    99462
  • LSTM
    +关注

    关注

    0

    文章

    42

    浏览量

    3703

原文标题:人人都能看懂的LSTM

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA也能做RNN

    ,GPU只能提供有限的并行性。针对这个问题,普渡大学的研究人员提出了一种LSTM在Zynq 7020 FPGA的硬件实现方案,该方案在FPGA中实现了2层128个隐藏单元的RNN,并且使用字符级语言模型
    发表于 07-31 10:11

    LSTM原理的推导过程

    手推RNN(第二部)
    发表于 07-11 07:20

    PTB数据集建立语言模型

    《实战Google深度学习框架》之RNN学习笔记2 LSTM对PTB数据集的建模
    发表于 09-26 16:21

    什么是LSTM神经网络

    简单理解LSTM神经网络
    发表于 01-28 07:16

    递归神经网络(RNN

    递归神经网络(RNNRNN是最强大的模型之一,它使我们能够开发如分类、序列数据标注、生成文本序列(例如预测下一输入词的SwiftKey keyboard应用程序),以及将一个序列转换为另一个序列
    发表于 07-20 09:27

    RNN在FPGA的应用及测试分析

    限的并行性。针对这个问题,普渡大学的研究人员提出了一种LSTM在Zynq 7020 FPGA的硬件实现方案,该方案在FPGA中实现了2层128个隐藏单元的RNN,并且使用字符级语言模型进行了测试。该实现比嵌入在Zynq 7020 FPGA上的ARM Cortex-A9 C
    发表于 11-15 13:30 2051次阅读
    <b class='flag-5'>RNN</b>在FPGA的应用及测试分析

    放弃 RNNLSTM 吧,它们真的不好用

    2014 年 RNN/LSTM 起死回生。自此,RNN/LSTM 及其变种逐渐被广大用户接受和认可。起初,LSTM
    的头像 发表于 04-25 09:43 2w次阅读

    RNN及其变体LSTM和GRU

    下图为一个双层LSTM对三个不同的单词的反应分布。该LSTM每层有600个细胞状态单元,基于Penn Tree Bank(PTB)数据集训练。我们可以看到,模型对介词(“for”)和代词(“he”、“she”)的反应模式大不相同。
    的头像 发表于 06-30 11:11 1.6w次阅读
    <b class='flag-5'>RNN</b>及其变体<b class='flag-5'>LSTM</b>和GRU

    循环神经网络(RNN)和(LSTM)初学者指南

    最近,有一篇入门文章引发了不少关注。文章中详细介绍了循环神经网络(RNN),及其变体长短期记忆(LSTM)背后的原理。
    发表于 02-05 13:43 767次阅读

    一种具有强记忆力的 E3D-LSTM网络,强化了LSTM的长时记忆能力

    标准 LSTM 单元结构 首先简要介绍一下标准 LSTM 结构,和 RNN 相比 LSTM 增加了更复杂的门结构(图中黄色模块),主要解决 RN
    的头像 发表于 09-01 07:35 1.1w次阅读
    一种具有强记忆力的 E3D-<b class='flag-5'>LSTM</b>网络,强化了<b class='flag-5'>LSTM</b>的长时记忆能力

    关于RNNLSTM基础知识了解

    递归神经网络(RNN)被提出用来处理80年代的输入序列时间信息。1993年,神经历史压缩器系统解决了“非常深度学习”任务,该任务需要及时展开RNN中的1000多个后续层。
    发表于 03-22 10:23 6661次阅读
    关于<b class='flag-5'>RNN</b>和<b class='flag-5'>LSTM</b>基础知识了解

    循环神经网络LSTM为何如此有效?

    长短期记忆网络(LSTM),作为一种改进之后的循环神经网络,不仅能够解决 RNN无法处理长距离的依赖的问题,还能够解决神经网络中常见的梯度爆炸或梯度消失等问题,在处理序列数据方面非常有效。 有效背后
    的头像 发表于 03-19 11:22 2602次阅读
    循环神经网络<b class='flag-5'>LSTM</b>为何如此有效?

    神经网络中最经典的RNN模型介绍

    强大的Bert模型家族,都是站在RNN的肩上,不断演化、变强的。 这篇文章,阐述了RNN的方方面面,包括模型结构,优缺点,RNN模型的几种应用,RNN常使用的激活函数,
    的头像 发表于 05-10 10:22 1.2w次阅读
    神经网络中最经典的<b class='flag-5'>RNN</b>模型介绍

    深度分析RNN的模型结构,优缺点以及RNN模型的几种应用

    强大的Bert模型家族,都是站在RNN的肩上,不断演化、变强的。 这篇文章,阐述了RNN的方方面面,包括模型结构,优缺点,RNN模型的几种应用,RNN常使用的激活函数,
    的头像 发表于 05-13 10:47 2.3w次阅读
    深度分析<b class='flag-5'>RNN</b>的模型结构,优缺点<b class='flag-5'>以及</b><b class='flag-5'>RNN</b>模型的几种应用

    深度学习——如何用LSTM进行文本分类

    简介 主要内容包括 如何将文本处理为Tensorflow LSTM的输入 如何定义LSTM 用训练好的LSTM进行文本分类 代码 导入相关库 #coding=utf-8 import
    的头像 发表于 10-21 09:57 1282次阅读