LSTM和GRU vs 循环神经网络RNN

1、考虑下列三种情况下,对比一下普通RNN的表现和LSTM和GRU表现:

(1)早期观测值对预测未来观测者具有非常重要的意义。

 考虑一个极端情况,其中第一个观测值包含一个校验和, 目标是在序列的末尾辨别校验和是否正确。 在这种情况下,第一个词元的影响至关重要。

RNN的表现:将不得不给这个观测值指定一个非常大的梯度, 因为它会影响所有后续的观测值。

LSTM和GRU的表现:提供某些机制能够在一个记忆元里存储重要的早期信息。

(2) 一些词元没有相关的观测值。

例如,在对网页内容进行情感分析时, 可能有一些辅助HTML代码与网页传达的情绪无关。

RNN的表现:没有机制来跳过隐状态表示中的此类词元。

LSTM和GRU的表现:有一些机制来跳过隐状态表示中的此类词元。

(3)序列的各个部分之间存在逻辑中断。

例如,书的章节之间可能会有过渡存在, 或者证券的熊市和牛市之间可能会有过渡存在。

RNN的表现:在这种情况下,没有办法来重置我们的内部状态表示。

LSTM和GRU的表现:在这种情况下,有一法来重置我们的内部状态表示。

2、LSTM和GRU能力相对占优的原理和机制

(1)GRU

支持隐状态的门控。 这意味着模型有专门的机制来确定应该何时更新隐状态, 以及应该何时重置隐状态。 这些机制是可学习的,并且能够解决了上面列出的问题。 例如,如果第一个词元非常重要, 模型将学会在第一次观测之后不更新隐状态。 同样,模型也可以学会跳过不相关的临时观测。 最后,模型还将学会在需要的时候重置隐状态。 

下面具体讨论各类门控的作用。

重置门有助于捕获序列中的短期依赖关系。

更新门有助于捕获序列中的长期依赖关系。

重置门的数学表达式:

对于给定的时间步t,假设输入是一个小批量\textbf{X}_{t}\in \mathbb{R}^{n\times d}(样本数n,输入数d),前一个时间步的隐状态是\mathbf{H}_{t-1}\in \mathbb{R}^{n\times h}(隐藏单元数h)。

那么,重置门\textbf{R}_{t}\in \mathbb{R}^{n\times h}和更新门\textbf{Z}_{t}\in \mathbb{R}^{n\times h}的计算方式如下所示:

\textbf{R}_{t}=\sigma \left ( \mathbf{X}_{t}\mathbf{W}_{xr}+\mathbf{H}_{t-1}\mathbf{W}_{hr}+\mathbf{b}_{r} \right )

\textbf{Z}_{t}=\sigma \left ( \mathbf{X}_{t}\mathbf{W}_{xz}+\mathbf{H}_{t-1}\mathbf{W}_{hz}+\mathbf{b}_{z} \right )

其中,\textbf{W}_{xr}\in \mathbb{R}^{d\times h}\textbf{W}_{xz}\in \mathbb{R}^{d\times h}\textbf{W}_{hr}\in \mathbb{R}^{h\times h}\textbf{W}_{hz}\in \mathbb{R}^{h\times h}是权重参数,\mathbf{b}_{r}\in \mathbb{R}^{1\times h}\mathbf{b}_{z}\in \mathbb{R}^{1\times h}是偏置参数。\sigma表示sigmoid函数,将输入值转换到区间(0,1)内。

将重置门\textbf{R}_{t}与常规隐状态更新机制集成,得到时间步t的候选隐状态\mathbf{\widetilde{H}}_{t}\in \mathbb{R}^{n\times h}

\mathbf{\widetilde{H}}_{t}=tanh\left ( \mathbf{X}_{t}\mathbf{W}_{xh}+\left (\textbf{R}_{t}\bigodot \mathbf{H}_{t-1} \right )\mathbf{W}_{hz}+\mathbf{b}_{h} \right )

候选隐状态结合更新门\textbf{Z}_{t},形成新的隐状态\mathbf{\widetilde{H}}_{t}\in \mathbb{R}^{n\times h}

\mathbf{H}_{t}=\mathbf{Z}_{t}\bigodot \mathbf{H}_{t-1}+\left (1-\mathbf{Z}_{t} \right )\bigodot \mathbf{\widetilde{H}}_{t}

每当更新门\textbf{Z}_{t}接近1时,模型就倾向只保留旧状态。 此时,来自\textbf{X}_{t}的信息基本上被忽略, 从而有效地跳过了依赖链条中的时间步t。 相反,当\textbf{Z}_{t}接近0时, 新的隐状态\textbf{H}_{t}就会接近候选隐状态\mathbf{\widetilde{H}}_{t}。 这些设计可以帮助我们处理循环神经网络中的梯度消失问题, 并更好地捕获时间步距离很长的序列的依赖关系。 例如,如果整个子序列的所有时间步的更新门都接近于1, 则无论序列的长度如何,在序列起始时间步的旧隐状态都将很容易保留并传递到序列结束。

(2)LSTM

a、设计灵感

       LSTM(长短期记忆网络)的设计灵感来源于传统的人工神经网络在处理序列数据时存在的问题,特别是梯度消失和梯度爆炸的问题。

       在传统的RNN(循环神经网络)中,信息在网络中的传递是通过隐状态向量进行的。然而,在处理长序列数据时,由于反向传播过程中梯度的不断乘积,会导致梯度消失或梯度爆炸的问题,使得网络无法有效地学习到长期依赖关系。

       为了解决这个问题,Hochreiter和Schmidhuber提出了LSTM网络。LSTM网络引入了“门”的概念,包括输入门、遗忘门和输出门,这些门可以控制信息在神经元之间的流动,并允许网络在需要的时候存储和更新长期记忆。

       具体来说,LSTM网络中的每个单元包含一个细胞状态,该状态可以在时间步之间传递并被修改。输入门、遗忘门和输出门分别控制细胞状态的更新、清除和读取操作。通过这三个门的巧妙设计,LSTM网络能够在处理长序列数据时有效地避免梯度消失和梯度爆炸的问题,同时保留长期依赖关系的信息。

       因此,LSTM的设计灵感主要来自于对传统RNN在处理序列数据时存在问题的深入理解和解决思路,以及对如何更好地模拟人类大脑处理序列信息机制的探索和创新。

b、数学表达式

       下面我们来具体看看输入门、遗忘门和输出门以及记忆细胞元的数学表达式:

假设有h个隐藏单元,批量大小为n,输入数为d。因此,输入为\textbf{X}_{t}\in \mathbb{R}^{n\times d},前一个时间步的隐状态为\textbf{H}_{t-1}\in \mathbb{R}^{n\times h}。时间步t的门被定义为:输入门\textbf{I}_{t}\in \mathbb{R}^{n\times h},遗忘门\textbf{F}_{t}\in \mathbb{R}^{n\times h},输出门\textbf{O}_{t}\in \mathbb{R}^{n\times h}。各种门的计算方法如下:

\textbf{I}_{t}=\sigma \left ( \mathbf{X}_{t}\mathbf{W}_{xi}+\mathbf{H}_{t-1}\mathbf{W}_{hi}+\mathbf{b}_{i} \right )

\textbf{F}_{t}=\sigma \left ( \mathbf{X}_{t}\mathbf{W}_{xf}+\mathbf{H}_{t-1}\mathbf{W}_{hf}+\mathbf{b}_{f} \right )

\textbf{O}_{t}=\sigma \left ( \mathbf{X}_{t}\mathbf{W}_{xo}+\mathbf{H}_{t-1}\mathbf{W}_{ho}+\mathbf{b}_{o} \right )

其中,\textbf{W}_{xi},\textbf{W}_{xf},\textbf{W}_{xo}\in \mathbb{R}^{d\times h}​​​​和\textbf{W}_{hi},\textbf{W}_{hf},\textbf{W}_{ho}\in \mathbb{R}^{h\times h}是权重参数,\textbf{b}_{i},\textbf{b}_{f},\textbf{b}_{o}\in \mathbb{R}^{1\times h}是偏置参数。

       候选记忆细胞元\widetilde{\textbf{C}}_{t}\in \mathbb{R}^{n\times h}的计算表达式为:

\widetilde{\textbf{C}}_{t}=tanh \left ( \mathbf{X}_{t}\mathbf{W}_{xc}+\mathbf{H}_{t-1}\mathbf{W}_{hc}+\mathbf{b}_{c} \right )

其中,\textbf{W}_{xc}\in \mathbb{R}^{d\times h}\textbf{W}_{hc}\in \mathbb{R}^{h\times h}是权重参数,\textbf{b}_{c}\in \mathbb{R}^{1\times h}是偏置参数。

       记忆元细胞\textbf{C}_{t}\in \mathbb{R}^{n\times h}的计算表达式为:

\textbf{C}_{t}=\textbf{F}_{t}\bigodot \textbf{C}_{t-1}+\textbf{I}_{t}\bigodot\widetilde{\textbf{C}}_{t}

在上述设计中,输入门\textbf{I}_{t}控制采用多少来自\widetilde{\textbf{C}}_{t}的新数据,而遗忘门\textbf{F}_{t}控制保留多少过去的记忆元\textbf{C}_{t-1}\in\mathbb{R}^{n\times h}的内容。

如果遗忘门始终为1且输入门始终为0, 则过去的记忆元\textbf{C}_{t-1}将随时间被保存并传递到当前时间步。 引入这种设计是为了缓解梯度消失问题, 并更好地捕获序列中的长距离依赖关系。

        隐状态\textbf{H}_{t}\in \mathbb{R}^{n\times h}的计算表达式为:

\textbf{H}_{t}=\textbf{O}_{t}\bigodot tanh\left (\textbf{C}_{t} \right )

       在上述设计中,只要输出门接近1,我们就能够有效地将所有记忆信息传递给预测部分, 而对于输出门接近0,我们只保留记忆元内的所有信息,而不需要更新隐状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261247.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java ora-12505_Oracle SQL Developer连接报错(ORA-12505)的解决方案(两种)

用oracle数据库新建连接时遇到ora-12505,此问题解决后又出现ora-12519错误,郁闷的半天,经过一番折腾问题解决,下面小编把我的两种解决方案分享给大家,仅供参考。解决方案一:今天工作时在新建连接的时候遇到…

【Silverlight】解决DataTemplate绑定附加属性

本文 Silverlight 版本:4.0。 首先定义数据类型,此文始终使用此定义类型。public class SimpleData : ViewModelBase{private string _text;private int _column, _row;public string Text { get { return _text; } set { _text value; OnPropertyChang…

N个三角形分割平面个数(数学)

一个三角形的时候,再加一个三角形,每一条变会与第一个三角形的两条边相交,这样增加2个小三角形,即两个面。f(2)3*2f(1),再加一个三角形,每一条边会与前两个三角形的四条边相交,形成四个小三角形…

2011年9月19日 面试重点:asp.net运行原理和生命周期

面试重点&#xff1a;asp.net运行原理和生命周期1、ispostback回调机制isPostBackfalse !IsPostBackture 当前页面是第一次加载IsPostBack 由于用户交互(page.submit())提交页面而产生的加载,二次加载html客户端代码将ispostback值存放在viewstate隐藏字段中<input type&quo…

redis——集群

2019独角兽企业重金招聘Python工程师标准>>> 现实中redis需要若干台redis服务器的支持&#xff1a; &#xff08;1&#xff09;从结构上&#xff0c;单个Redis服务器会产生单点故障&#xff0c;同时一台服务器需要承受所有的请求负载。这就需要为数据生成多个副本并…

POJ 2409 Let it Bead (Polya定理)

题意 用k种颜色对n个珠子构成的环上色&#xff0c;旋转翻转后相同的只算一种&#xff0c;求不等价的着色方案数。 思路 Polya定理 X是对象集合{1, 2, ……, n}&#xff0c; 设G是X上的置换群&#xff0c;用M种颜色染N种对象&#xff0c;则不同的染色方案数为&#xff1a; λ(g)…

java10支持mybatis_写了10年的代码,我最怕写Mybatis这些配置,现在有详解了

作者 | 阿进的写字台链接 | www.cnblogs.com/homejim/p/9782403.html在使用 mybatis 过程中&#xff0c; 当手写 JavaBean和XML 写的越来越多的时候&#xff0c; 就越来越同意出错。这种重复性的工作&#xff0c; 我们当然不希望做那么多。还好&#xff0c; mybatis 为我们提供…

webservice-WebService试题

ylbtech-doc:webservice-WebService试题WebService试题 1.A,返回顶部001&#xff0e;{WebService题目}下列是Web服务体系结构中的角色的是&#xff08;&#xff09;&#xff08;选择3项&#xff09; A&#xff09;服务提供者 B&#xff09;服务请求者 C&#…

Session的模拟

Session相关的mock Session相关的mock主要有以下两个步骤&#xff1a; 1&#xff09; HttpContext对象的实例化 session属于HttpContext对象&#xff0c;所以简单来说&#xff0c;就是我们需要构造一个HttpContext&#xff0c;对象然后在给其中的Session附值。然后再把它指定到…

C++ STL的基本基本原理

STL都是在内存的堆区分配的&#xff0c;但是其析构也是STL帮我们做好的&#xff0c;不用手动去delete。 1.vector 逻辑地址连续的一片内存空间&#xff0c;当空间不足&#xff0c;重新申请新的地址空间&#xff0c;将原有的数据复制过去&#xff0c;而新的地址空间的大小C没有规…

iOS 修改项目名称

2019独角兽企业重金招聘Python工程师标准>>> 1. [代码]iOS 修改项目名称 1 2. [图片] 1.png 3. [图片] 2.png 4. [图片] 3.png 5. [图片] 4.png 6. [图片] 5.png 转载于:https://my.oschina.net/5951008876/blog/681857

java wait源码_Java精通并发-透过openjdk源码分析wait与notify方法的本地实现

上一次https://www.cnblogs.com/webor2006/p/11442551.html中通过openjdk从c的底层来审视了ObjectMonitor的底层实现&#xff0c;这次继续来探究底层&#xff0c;对于wait()和notify()的底层细节到底是啥样的呢&#xff1f;下面还是先来到openjdk中来打开ObjectMonitor.hpp&…

listActivity和ExpandableListActivity的简单用法

今天自己简单的总结了listActivity和ExpandableListActivity二者的简单用法。 首先&#xff0c;先说一下listActivity的用法&#xff1a; ListActivity是一个绑定到一个数据源&#xff0c;并且用来显示这一串数据的Activity。ListActivity拥有一个listview对象来实现数据源的绑…

搭建git for windows服务器(100%可以成功)【转】

转自&#xff1a;http://blog.csdn.net/code_style/article/details/38764203 既然Git在linux下面非常好用&#xff0c;为什么还要搭建git windows的服务器&#xff0c;因为不是所有的用户都需要在linux下面做开发&#xff0c;对吧&#xff0c;还有很多用户选择使用windows做开…

【转】高性能WEB开发系列之重绘与回流

原文转载&#xff1a;http://www.cnblogs.com/wangzhichao/archive/2011/05/16/2047633.html页面呈现流程 在讨论页面重绘、回流之前。需要对页面的呈现流程有些了解&#xff0c;页面是怎么把html结合css等显示到浏览器上的&#xff0c;下面的流程图显示了浏览器对页面的呈现的…

[数据结构与算法] 单链表的简单demo

Vc6之下编译通过。。 1 /*******************************************************2 * : Project: 单链表数据结构演示3 * : File: link_list.h4 * : Function&#xff1a; 提供单链表操作的数据结构定义及方法声明5 * : History: 2013-10-01 22:37:056 * : Auth…

c++ 17介绍

作者&#xff1a;hearts zh链接&#xff1a;https://www.zhihu.com/question/32222337/answer/55238928来源&#xff1a;知乎著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。其实现在的proposal很多很多&#xff0c;不出意外也会有相当一部分…

“高考”机器人横空出世 2017年居然要考“大学”

文/辛东方&#xff0c;80后作家、专栏作者、专注互联网科技领域人工智能的发展&#xff0c;科学技术的全力配合&#xff0c;已经把人类的智慧实实在在的体现到了智能化设备上。按照目前的发展速度&#xff0c;人工智能要想真正突破技术难关&#xff0c;达到进一步的智能化&…

谁说菜鸟不会数据分析--数据分析那些事儿

一、数据分析是“神马” 1、 何谓数据分析 简单来说&#xff0c;数据分析就是对数据进行分析&#xff0c;较为专业的说法&#xff0c;数据分析是指用适当的统计分析方法对收集来的大量数据进行分析&#xff0c;将它们加以汇总、理解并消化&#xff0c;以求最大化地开发数据的功…

优集品 php,从细节处着眼 优集品打造成人世界的儿童节

在各大电商企业仍旧在史上最大规模的价格战中拼的不可开交之时&#xff0c;重视用户体验度&#xff0c;以商品传递生活理念而知名的全球优选设计百货--LivePort优集品(http://www.liveport.cn/)&#xff0c;已然细心的为眼下即将来临的六一儿童节策划了一餐盛宴&#xff0c;为追…