rnn按时间展开_双向RNN的理解

我们在学习某种神经网络模型时,一定要把如下几点理解透了,才算真正理解了这种神经网络。

  1. 网络的架构:包含那些层,每层的输入和输出,有那些模型参数是待优化的
  2. 前向传播算法
  3. 损失函数的定义
  4. 后向传播算法
  5. 什么情况下认为是发现了过拟合,怎么进行优化。

很多介绍深度学习的书籍,在介绍全连接神经网络时,对这几个方面都会介绍的比较清楚,但是在介绍CNN,RNN,LSTM等,都会只偏重介绍网络的架构,其他的方面介绍的少,没有讲解透彻。

如果不信,我提一个问题,如果能够在那本书中找到答案,请一定要告诉我这边书的名字!

问题:双向RNN中,有两个隐藏状态,一个是正序,如下图中的实线;一个是逆序,如下图中的虚线。那么在计算t时刻的状态变量时,对于正序,比较好理解,输入是上一个时刻的隐藏状态和当前时刻的系统输入;对于逆序,输入是下一个时刻的隐藏状态和当前时刻的系统输入。下一个时刻的隐藏状态属于未来的状态,那么,系统在计算时,怎么能够用未来的状态做输入呢?

19d7376692c3f0e2a2335ed87e62e12e.png

我可是日夜冥思苦想才想通这个问题啊。 下面给出历程。

先理解下RNN的几点:

网络的架构:

09241c53b294962b91c0f3742f7cf9d8.png

这是一个标准的RNN结构图,图中每个箭头代表做一次变换,也就是说箭头连接带有权值。左侧是折叠起来的样子,右侧是展开的样子,左侧中h旁边的箭头代表此结构中的“循环“体现在隐层。

在展开结构中我们可以观察到,在标准的RNN结构中,隐层的神经元之间也是带有权值的。也就是说,随着序列的不断推进,前面的隐层将会影响后面的隐层。图中O代表输出,y代表样本给出的确定值,L代表损失函数,我们可以看到,“损失“也是随着序列的推荐而不断积累的。

除上述特点之外,标准RNN的还有以下特点:

1、权值共享,图中的W全是相同的,U和V也一样。

2、每一个输入值都只与它本身的那条路线建立权连接,不会和别的神经元连接。

前向传播算法:

x是输入,h是隐层单元,o为输出,L为损失函数,y为训练集的标签。这些元素右上角带的t代表t时刻的状态,其中需要注意的是,因策单元h在t时刻的表现不仅由此刻的输入决定,还受t时刻之前时刻的影响。V、W、U是权值,同一类型的权连接权值相同。

前向传播算法其实非常简单,对于t时刻:

h(t)=ϕ(U*x(t)+W*h(t−1)+b)

其中ϕ()为激活函数,一般来说会选择tanh函数,b为偏置。

t时刻的输出就更为简单:

o(t)=V*h(t)+c

最终模型的预测输出为:

yˆ(t)=σ(o(t))

其中σ为激活函数,通常RNN用于分类,故这里一般用softmax函数。

损失函数的定义:

对于分类问题,采用交叉熵。

后向传播算法:

BPTT(back-propagation through time)算法是常用的训练RNN的方法,其实本质还是BP算法,只不过RNN处理时间序列数据,所以要基于时间反向传播,故叫随时间反向传播。BPTT的中心思想和BP算法相同,沿着需要优化的参数的负梯度方向不断寻找更优的点直至收敛。综上所述,BPTT算法本质还是BP算法,BP算法本质还是梯度下降法,那么求各个参数的梯度便成了此算法的核心。

需要寻优的参数有三个,分别是U、V、W。与BP算法不同的是,其中W和U两个参数的寻优过程需要追溯之前的历史数据,参数V相对简单只需关注目前。

什么时候出现过拟合,怎么优化?

很多资料在介绍全连接神经网络时,都介绍过拟合的定义以及优化的方法,然后在介绍RNN时,却没有介绍这些。对于学习和实践的过程就很容易忽略这些。其中这些在实践中也是非常重要的。

出现过拟合的现象,就是安装过拟合的定义,当模型在训练数据的表现很好,而在测试数据集的表现不好时。

优化的方法:一是使用正则化,而是使用dropout。 dropout就是对权重参数进行随机丢弃的过程,采用超参数来控制丢失的比例。一般对同一个序列的内部的参数(即 U和V)使用dropout,而不对不同序列之间的连接的参数(即W)进行dropout。为什么要这样呢?这点很多书籍和资料都没有讲解透彻。

这其实是一个从实践的角度总结出来的,隐状态h是之前输入的信息的表示,在传递给下一个时刻,如果进行dropout,会有信息丢失。 而对同一个序列的内部的参数(即 U和V)使用dropout,只是讲信息表示的维数降低,比如隐层的维数是200维,使用dropout之后,变成180维,从而降低模型的复杂度。

现在理解双向RNN的几个方面:

  1. 网络的结构:在本文的开始有讲解,或者百度下,很多讲双向RNN的资料,基本上只讲解了这部分。要优化的参数包含两组:W,U,V。
  2. 前向传播算法:和RNN相比,这正是不太容易理解的地方。双向RNN中,有两个隐藏状态,一个是正序,如下图中的实线;一个是逆序,如下图中的虚线。那么在计算t时刻的状态变量时,对于正序,比较好理解,输入是上一个时刻的隐藏状态和当前时刻的系统输入;对于逆序,输入是下一个时刻的隐藏状态和当前时刻的系统输入。下一个时刻的隐藏状态属于未来的状态,那么,系统在计算时,怎么能够用未来的状态做输入呢?
  3. 损失函数的定义,是根据要解决的问题的类型来选择的,跟网络的类型一般关系不大。
  4. 后向传播算法,也是采用BPTT。不详细展开,根据函数定义和偏导数的定义,比如容易类推。
  5. 什么情况下认为是发现了过拟合,怎么进行优化。和RNN相比,比较容易类推。

下一个时刻的隐藏状态属于未来的状态,那么,系统在计算时,怎么能够用未来的状态做输入呢?

这个问题,既然很多资料没有讲,那就找原始paper的作者,是怎么说明的。

https://www.di.ufpe.br/~fnj/RNA/bibliografia/BRNN.pdf​www.di.ufpe.br

50a79650e2f126e7f7e31b687a9172b4.png

这里的确是讲解了,只是我还是没有理解。到这里为止,能够理解的请举手!

我发现tensorflow的代码,bidirectional_dynamic_rnn 函数的实现,坐了两遍计算:第一遍先正向计算隐状态h,保存成一个序列,顺序是t时刻从1到T。第二遍,将输入反转,计算隐状态h,保存为一个序列,这样顺序就是t时刻从T到1. 最后在计算output,这样在计算output时,所有时刻的隐状态都是已经计算出来了。这样之前的疑问就得到解答了。

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

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

相关文章

Eclipse新建java类的时候,自动创建注释

为形成个人的java代码风格,我们在项目组中进行开发的时候,可以对自己的代码进行一些格式上面的设置,具体如下: 方法一:Eclipse中设置在创建新类时自动生成注释 windows–>preference Java–>Code Style–>Code Templates…

endnote能自动翻译吗_自动挡和手自一体有啥区别?从外表能看出一辆车是哪种变速箱吗?...

汽车分自动挡和手动挡,手动挡就是一个手动变速箱,很好理解。但自动挡变速箱有很多种,前几日有人问了这么几个问题,没来得及回复,现在超时不能单独回复了,在此详细说一下,因为这是一个非常基础且…

html5平板电脑,Html5添加支持桌面、移动触摸手机和平板电脑的Lightbox插件教程

一、使用方法首先在标签之前或标签中引入jquery和swipebox js文件。在标签中引入swipebox.css文件。二、Html结构三、调用插件;( function( $ ) {$( .swipebox ).swipebox();} )( jQuery );四、高级配置(1)画廊(2)视频支持My Videos(3)动态调用画廊$( #gallery ).click( functi…

idea 内存溢出解决方法

在Run/Debug configuration 的 vm options里面输入 -server -XX:PermSize128M -XX:MaxPermSize256m 具体如下图: 转载于:https://www.cnblogs.com/Liang-Haishan216/p/7044028.html

网页设计html加音频,HTML5网页中如何嵌入音频,视频?

《HTML5的视频播放控制技术》 介绍了本文主要介绍在HTML5 中如何嵌入音频,视频?在HTML5 中如何嵌入音频?HTML5 支持 MP3、Wav 和 Ogg 格式的音频,代码示例:Your browser does’nt support audio embedding feature.HTM…

seo 伪原创_胡子哥谈seo优化:那些不被了解的伪原创技巧

各位小伙伴们好,我是没有胡子的胡子哥,玩转SEO多年的老互联网人。(胡子哥推出包上首页服务,无效退款,有技术就是敢承诺!)做SEO优化的人都知道,一个网站提升权重的过程中,文章的原创度占比是很高…

javafx2_JavaFX 2 GameTutorial第3部分

javafx2介绍 Ť他是与一个六个部分组成的系列的第3部分的JavaFX 2游戏教程。 如果您错过了第1部分和第2部分 ,我建议您在开始本教程之前仔细阅读它们。 回顾第2部分,我讨论了游戏循环的内部工作原理,其中我们使用动画(JavaFX Time…

dw中html中无法使用js,在Dreamweaver中调用JavaScript行为

调用JavaScript行为可以指定在事件发生时要执行的自定义函数或者JavaScript代码。可以自己书写这些JavaScript代码,也可以使用网络上免费发布的各种JavaScript库。一、Dreamweaver调用JavaScript行为1. 选择一个对象。2. 打开行为面板。3. 点击“添加行为()”按钮&a…

带有JBoss工具的OpenShift 3上的Java EE 7应用程序

您可以使用最新版本的JBoss Tools OpenShift插件在Eclipse中创建和管理OpenShift应用程序。 他们要么预先捆绑了最新的 JBoss Developer Studio(9.0.0.GA) ,也可以将它们安装到现有的Eclipse Mars中。 这篇文章将引导您通过JBoss Developer …

自动检测技术学习心得体会_国培计划(2020)—学校管理团队信息化领导力提升培训心得体会...

点击蓝字关注我吧国培计划(2020)—学校管理团队信息化领导力提升培训心得体会2020年10月28日,由裕安区教师进修学校承担的2020年“国培计划(2020)- 学校管理者信息化领导力培训项目在全体学员的期待下正式拉开序幕。精心设计的培训课程精彩纷呈的课堂培训的内容和我…

安宁计算机学院,滁州学院张燕咏、安宁两位教授应邀来我院指导工作

应计算机与信息工程学院邀请,美国罗格斯大学张燕咏教授、合肥工业大学安宁教授于6月9、10日两天来我院进行学术交流和实验室建设方案讨论。6月9日上午,信息学院刘进军、姚光顺两位教师向两位教授汇报了信息学院的实验室建设思路、特别是物联网专业实验室…

六元均匀直线阵的各元间距为_给棉花地选购滴灌带时记住这几点,不再为棉花滴水时发愁...

现在马上进入棉花大量采收阶段,好多农户已经把棉花地里的90管拆了拉回来了,而且不少滴灌带生产厂家也主动和农户联系2021年的滴灌带兑换事项,农户们也在相互打听哪家的质量好、价格合适。选择滴灌带是棉花生产过程中较为重要的环节&#xff0…

javafx_JavaFX 2 GameTutorial第2部分

javafx介绍 Ť他的是一系列与一个JavaFX 2游戏教程博客条目的第二批。 如果您尚未阅读第1部分,请参阅JavaFX 2游戏教程的简介部分。 在第1部分中,我提到了游戏的一些方面以及原型飞船的简单演示(原型由简单的形状组成)&#xff0c…

sql 如何根据月份查询数据总数_什么是慢查询?如何通过慢查询日志优化?

日志就跟人们写的日记一样,记录着过往的事情。但是人的日记是主观的(记自己想记的内容),而数据库的日志是客观的,根据记录内容分为以下好几种日志:a、错误日志:记录启动、运行或停止mysqld时出现的问题。b、通用日志&a…

查询分析器在哪里_你应该知道的3种Node.js分析器类型

Node.js类似于许多其他编码语言,因为它需要与正确的工具结合使用来调试程序,克服任何瓶颈并优化其功能。使用正确的分析器,您可以毫不费力地实现这一目标,尽管它们都不是完美的。在编码中,分析器是一种动态程序分析软件…

全国计算机一级选择题汇总,全国计算机一级考试选择题训练及答案

全国计算机一级考试选择题训练及答案练习题一1、 将二进制数110B左移一位后其等值的十进制数为()。A、6 B、1100 C、12 D、32、 某微型机的CPU中含有32条地址线、28位数据线及若干条控制信号线,对内存按字节寻址,其最大内存空间是()。A、4MBB、256MBC、2…

python url拼接_教你写python爬虫——用python爬原图

环境:python3.6 pycharm“猎物”:http://www.polayoutu.com (仅学习用)动机1:想要爬一些尺寸比较大(不是尺度)的美图养养眼,仅此而已;动机2:学习python爬虫&…

Devoxx的Red Hat Engineers提供了更多Java EE

现在是Devoxx比利时时间! 最后。 今天的一切都随着大学会议的开始而开始,会议本身将于明天早晨开始。 我们都非常兴奋,因为这是欧洲的重大事件。 红帽很荣幸今年再次成为赞助商。 我们将在现场举行14次会议,一个展位–提供啤酒&am…

济宁医学院计算机专业好就业吗,山东这3所医学院实力强,就业率高,中等生可捡漏...

原标题:山东这3所医学院实力强,就业率高,中等生可捡漏山东的医药类院校中,实力较强的是山东大学医学院、青岛大学医学院、山东第一医科大学、山东中医药大学,这4所医学院的录取分数都比较高。今天给大家介绍山东3所二批…

php读取西门子plc_PLC对模拟量信号,是怎么进行处理的?

模拟量信号是自动化过程控制系统中最基本的过程信号(压力、温度、流量等)输入形式。系统中的过程信号通过变送器,将这些检测信号转换为统一的电压、电流信号,并将这些信号实时的传送至控制器(PLC)。PLC通过计算转换,将这些模拟量信号转换为内…