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

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

3天内不再提示

循环神经网络(RNN)的详细介绍

Dbwd_Imgtec 来源:未知 作者:胡薇 2018-05-11 14:58 次阅读

1. 场景与应用

在循环神经网络可以用于文本生成、机器翻译还有看图描述等,在这些场景中很多都出现了RNN的身影。

2. RNN的作用

传统的神经网络DNN或者CNN网络他们的输入和输出都是独立的。对于这些模型输入的数据跟输出的数据大多是关联不太紧密的场景,但是有些场景输入的数据对后面输入的数据是有关系的,或者说后面的数据跟前面的数据是有关联的。例如,对于文本类的数据,当输入某句话的时候,刚开始输入第一个字的时候,再输入这句话的第二个字时候,其实第二个字要输入什么字其实是跟第一个字是有关联的。所以,对于这样一类的场景,通常是要考虑前面的信息的,以至于引入RNN模型。

对于RNN模型为解决这类问题引入了“记忆”这一概念。循环神经网络的循环来源于其每个元素中都执行相同的任务,但是输出依赖于输入和“记忆”两个部分。

3. RNN结构

从图中看,对于RNN网络是按照时间序列展开的。对于图中的变量Wt,是在时刻t处的输入,St是时间t处的“记忆”,St=f(UXt+WSt−1 + b),f可以是tanh等,f取tanh会把数据压缩到一个范围内,有时候也可以使用sigmoid函数。Ot是时间t出的输出,比如是预测下个词的话,可能是softmax输出的属于每个候选词的概率,Ot = softmax(VSt)。对于这里的St已经把Xt合并了,所以Ot的公式只有St。

对于循环神经网络,可以把隐状态St视作为“记忆体”,捕捉之前时间点上的信息。输出Ot有当前时间及之前所有“记忆”共同计算得到的。但由于St是一个有限的矩阵,对于之前的信息并不能完全捕捉到,也会随着时间的变长,对于之前的“记忆”也会“变淡”。对于RNN不同于DNN与CNN,这里的RNN其实整个神经网络都在共享一组参数(U,V,W),这样极大的减小了需要训练的参数。图中的Ot再由写任务下是不存在的,只需要对最后的结果输出就可以。

4. 不同类型的RNN

(1). 双向RNN

通过以上经典的RNN模型,它是只关心当前的输入和之前的“记忆”的,但有些情况下,当前的输入不知依赖于之前的序列元素,还依赖于后面序列的元素。比如,一篇文章,当读第一段时候我们并不知道文章的主体要讲什么内容,但当我们读完第一段的时候需要判断文章主要讲什么内容,这时候就需要读后面的内容才能知道这个文章主要讲的是什么。对于这样的场景需要后面的数据才能更好的预测当前的状态,所以引入了双向RNN,就是为了解决这一类问题的。双向RNN的模型如下:

表达式:

双向RNN是考虑到了前后的“记忆”,能够更好的关联到前后的信息。

(2). 深度双向RNN

对于深度双向RNN和双向RNN的区别是每一步和每一个时间点我们设定了多层的结构。结构如下:

深层双向RNN的表达式:

对于深层双向RNN考虑的信息与双向RNN相比变多了,这意味着能够对于某场景,能够关联更多的信息。

5. RNN与BPTT算法

对于循环神经网络的BPTT算法其实是BP算法的一个变体,但是循环神经网络的BPTT是与时间序列有关的。

对于这个问题是个Softmax问题所以这里用交叉熵损失,所以损失函数可以表示为:

对于求所有误差求W得偏导函数为:

但是,

所以,所以根据求导链式法则可以进一步求得:(又因为他们的权值是共享的)

用图表示如下:

通过上面的式子:

通过链式法则,表达式可以进一步表示为:

通过以上的步骤求得损失函数的偏导后,就可以用SGD算法去做参数的更新。

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

    关注

    0

    文章

    67

    浏览量

    6803

原文标题:循环神经网络(RNN)的场景与应用

文章出处:【微信号:Imgtec,微信公众号:Imagination Tech】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    什么是RNN循环神经网络)?

    循环神经网络 (RNN) 是一种深度学习结构,它使用过去的信息来提高网络处理当前和将来输入的性能。RNN 的独特之处在于该
    发表于 02-29 14:56 989次阅读
    什么是<b class='flag-5'>RNN</b> (<b class='flag-5'>循环</b><b class='flag-5'>神经网络</b>)?

    神经网络基本介绍

    神经网络基本介绍
    发表于 01-04 13:41

    【案例分享】基于BP算法的前馈神经网络

    传播的,不会回流),区别于循环神经网络RNN。BP算法(Back Propagation):误差反向传播算法,用于更新网络中的权重。BP神经网络
    发表于 07-21 04:00

    matlab递归神经网络RNN实现:桨距控制控制风力发电机组研究 精选资料推荐

    原文链接:http://tecdat.cn/?p=6585本文介绍了用于涡轮桨距角控制的永磁同步发电机(PMSG)和高性能在线训练递归神经网络RNN)的混合模糊滑模损失最小化控制的设计。反向传播学
    发表于 07-12 07:55

    递归神经网络RNN桨距控制控制风力发电机组 精选资料分享

    本文介绍了用于涡轮桨距角控制的永磁同步发电机(PMSG)和高性能在线训练递归神经网络RNN)的混合模糊滑模损失最小化控制的设计。反向传播学习算法用于调节RNN控制器。PMSG速度使用
    发表于 07-12 06:46

    可分离卷积神经网络在 Cortex-M 处理器上实现关键词识别

    卷积运算,从而发现这种关联性。● 循环神经网络 (RNN)RNN 在很多序列建模任务中都展现出了出色的性能,特别是在语音识别、语言建模和翻译中。R
    发表于 07-26 09:46

    递归神经网络RNN

    文本中的一个词。RNN也是一种包含某特殊层的神经网络,它并不是一次处理所有数据而是通过循环来处理数据。由于RNN可以按顺序处理数据,因此可以使用不同长度的向量并生成不同长度的输出。图6
    发表于 07-20 09:27

    RNN基础知识介绍 为什么需要RNN

    神经网络模型训练好之后,在输入层给定一个x,通过网络之后就能够在输出层得到特定的y,那么既然有了这么强大的模型,为什么还需要RNN循环神经网络
    发表于 05-05 10:51 5078次阅读
    <b class='flag-5'>RNN</b>基础知识<b class='flag-5'>介绍</b> 为什么需要<b class='flag-5'>RNN</b>

    人工智能之机器学习的循环神经网络RNN算法解析

    循环神经网络RNN)现已成为国际上神经网络专家研究的重要对象之一。它是一种节点定向连接成环的人工神经网络,最初由Jordan,Pineda
    发表于 09-05 10:00 3390次阅读

    如何使用混合卷积神经网络循环神经网络进行入侵检测模型的设计

    针对电力信息网络中的高级持续性威胁问题,提出一种基于混合卷积神经网络( CNN)和循环神经网络RNN)的入侵检测模型。该模型根据
    发表于 12-12 17:27 19次下载
    如何使用混合卷积<b class='flag-5'>神经网络</b>和<b class='flag-5'>循环</b><b class='flag-5'>神经网络</b>进行入侵检测模型的设计

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

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

    循环神经网络模型与前向反向传播算法

    本文将讨论:循环神经网络(Recurrent Neural Networks ,以下简称RNN),它广泛的用于自然语言处理中的语音识别,手写书别以及机器翻译等领域。
    的头像 发表于 05-10 08:48 2916次阅读
    <b class='flag-5'>循环</b><b class='flag-5'>神经网络</b>模型与前向反向传播算法

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

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

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

    神经网络是深度学习的载体,而神经网络模型中,最经典非RNN模型所属,尽管它不完美,但它具有学习历史信息的能力。后面不管是encode-decode 框架,还是注意力模型,以及自注意力模型,以及更加
    的头像 发表于 05-10 10:22 1.1w次阅读
    <b class='flag-5'>神经网络</b>中最经典的<b class='flag-5'>RNN</b>模型<b class='flag-5'>介绍</b>

    神经网络算法是用来干什么的 神经网络的基本原理

    神经网络一般可以分为以下常用的三大类:CNN(卷积神经网络)、RNN循环神经网络)、Transformer(注意力机制)。
    的头像 发表于 12-12 14:48 4511次阅读