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

    文章

    4762

    浏览量

    100535
  • LSTM
    +关注

    关注

    0

    文章

    59

    浏览量

    3738

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

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

收藏 人收藏

    评论

    相关推荐

    FPGA也能做RNN

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

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

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

    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 904次阅读

    一种具有强记忆力的 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>的长时记忆能力

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

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

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

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

    如何理解RNNLSTM神经网络

    在深入探讨RNN(Recurrent Neural Network,循环神经网络)与LSTM(Long Short-Term Memory,长短期记忆网络)神经网络之前,我们首先需要明确它们
    的头像 发表于 07-09 11:12 539次阅读

    LSTM模型的基本组成

    长短期记忆网络(Long Short-Term Memory, LSTM)是一种特殊的循环神经网络(RNN)架构,它在处理序列数据时能够捕捉长期依赖关系,有效解决了传统RNN在处理长序列时容易出现
    的头像 发表于 07-10 17:01 997次阅读

    LSTM神经网络的基本原理 如何实现LSTM神经网络

    LSTM(长短期记忆)神经网络是一种特殊的循环神经网络(RNN),它能够学习长期依赖信息。在处理序列数据时,如时间序列分析、自然语言处理等,LSTM因其能够有效地捕捉时间序列中的长期依赖关系而受到
    的头像 发表于 11-13 09:53 196次阅读

    使用LSTM神经网络处理自然语言处理任务

    自然语言处理(NLP)是人工智能领域的一个重要分支,它旨在使计算机能够理解、解释和生成人类语言。随着深度学习技术的发展,特别是循环神经网络(RNN)及其变体——长短期记忆(LSTM)网络的出现
    的头像 发表于 11-13 09:56 269次阅读

    LSTM神经网络的优缺点分析

    长短期记忆(Long Short-Term Memory, LSTM)神经网络是一种特殊的循环神经网络(RNN),由Hochreiter和Schmidhuber在1997年提出。LSTM因其在处理
    的头像 发表于 11-13 09:57 423次阅读

    LSTM神经网络与传统RNN的区别

    在深度学习领域,循环神经网络(RNN)因其能够处理序列数据而受到广泛关注。然而,传统RNN在处理长序列时存在梯度消失或梯度爆炸的问题。为了解决这一问题,LSTM(长短期记忆)神经网络应运而生。 循环
    的头像 发表于 11-13 09:58 189次阅读

    LSTM神经网络的调参技巧

    长短时记忆网络(Long Short-Term Memory, LSTM)是一种特殊的循环神经网络(RNN),它能够学习长期依赖信息。在实际应用中,LSTM网络的调参是一个复杂且关键的过程,直接影响
    的头像 发表于 11-13 10:01 298次阅读

    RNNLSTM模型的比较分析

    RNN(循环神经网络)与LSTM(长短期记忆网络)模型在深度学习领域都具有处理序列数据的能力,但它们在结构、功能和应用上存在显著的差异。以下是对RNNLSTM模型的比较分析: 一、基
    的头像 发表于 11-15 10:05 202次阅读