序列模型简介——RNN, Bidirectional RNN, LSTM, GRU

既然我们已经有了前馈网络和CNN,为什么我们还需要序列模型呢?这些模型的问题在于,当给定一系列的数据时,它们表现的性能很差。序列数据的一个例子是音频的剪辑,其中包含一系列的人说过的话。另一个例子是英文句子,它包含一系列的单词。前馈网络和CNN采用一个固定长度作为输入,但是,当你看这些句子的时候,并非所有的句子都有相同的长度。你可以通过将所有的输入填充到一个固定的长度来解决这个问题。然而,它们的表现仍然比RNN要差,因为这些传统模型不了解给定输入的上下文环境。这就是序列模型和前馈模型的主要区别所在。对于一个句子,当看到一个词的时候,序列模型试图从在同一个句子中前面的词推导出关系。当我们读一个句子的时候,不会每次遇到一个新词都会再从头开始。我们会根据对所读过单词的理解来处理之后的每个单词。

循环神经网络(Recurrent Neural NetworkRNN

循环神经网络如上图所示。在一个时间步骤中的每个节点都接收来自上一个节点的输入,并且这可以用一个feedback循环来表示。我们可以深入这个feedback循环并以下图来表示。在每个时间步骤中,我们取一个输入x_i和前一个节点的输出a_i-1,对其进行计算,并生成一个输出h_i。这个输出被取出来之后再提供给下一个节点。此过程将一直继续,直到所有时间步骤都被评估完成。

描述如何在每个时间步骤上计算输出的方程式,如下所示:

在循环神经网络中的反向传播发生在图2中所示箭头的相反方向上。像所有其它的反向传播技术一样,我们评估一个损失函数,并获取梯度来更新权重参数。循环神经网络中有意思的部分是从右到左出现的反向传播。由于参数从最后的时间步骤更新到最初的时间步骤,这被称为通过时间的反向传播。

长短期记忆(Long Short-Term Memory— LSTM网络

循环神经网络的缺点是,随着时间步骤长度的增大,它无法从差得很远的时间步骤中获得上下文环境。

为了理解时间步骤t+1的上下文环境,我们有可能需要了解时间步骤0和1中的表示。但是,由于它们相差很远,因此它们所学的表示无法在时间步骤t+1上向前移动,进而对其起作用。“我在法国长大……我能说一口流利的法语”,要理解你说的法语,网络就必须远远地往后查找。但是,它不能这么做,这个问题可以归咎于梯度消失的原因。因此,循环神经网络只能记住短期存储序列。

为了解决这个问题,Hochreiter & Schmidhuber提出了一种称为长短期记忆网络。

LSTM网络的结构与循环神经网络保持一致,而重复模块会进行更多的操作。增强重复模块使LSTM网络能够记住长期依赖关系。让我们试着分解每个操作,来帮助网络更好地记忆。

1、忘记门操作

我们从当前时间步骤获取输入,并从前一时间步骤获取学习的表示,之后将它们连接起来。我们将连接后的值传递给一个sigmoid函数,该函数输出一个介于0和1之间的值(f_t)。我们在f_t和c_t-1之间做元素的乘积。如果一个值为0,那么从c_t-1中去掉,如果这个值为1,则完全通过。因此,这种操作也被称为“忘记门操作”。

2、更新门操作

上图表示的是“更新门操作”。我们将来自当前时间步骤中的值和前一时间步骤中已学习的表示连接起来。将连接的值通过一个tanh函数进行传递,我们生成一些候选值,并通过一个sigmoid函数传递,从候选值中选择一些值,所选的候选值将会被更新到c_t-1。

3、输出门操作

我们将当前时间步骤的值和前一时间步骤已学习的表示连接起来,并经由一个sigmoid函数传递来选择将要用作输出的值。我们获取单元状态并请求一个tanh函数,然后执行元素方式操作,其只允许选定的输出通过。

现在,在一个单一单元中要完成很多的操作。当使用更大的网络时,与循环神经网络相比,训练时间将显著地增加。如果想要减少你的训练时间,但同时也使用一个能记住长期依赖关系的网络,那么还有另一个替代LSTM网络的方法,它被称为门控循环单元。

门控循环单元(Gated Recurrent Unit GRU Network

与LSTM网络不同的是,门控循环单元没有单元状态,并且有2个门而不是3个(忘记、更新和输出)。

门控循环单元使用一个更新门和一个重置门。更新门决定了应该让多少之前的信息通过,而重置门则决定了应该丢弃多少之前的信息。 在上面的图中,z_t表示更新门操作,通过使用一个sigmoid函数,我们决定让哪些之前的信息通过。h_t表示重置门操作,我们将前一时间步骤和当前时间步骤的连接值与r_t相乘。这将产生我们希望从前一时间步骤中所放弃的值。

尽管门控循环单元在计算效率上比LSTM网络要高,但由于门的数量减少,它在表现方面仍然排在LSTM网络之后。因此,当我们需要更快地训练并且手头没有太多计算资源的情况下,还是可以选择使用门控循环单元的。

双向循环神经网络

所有上述双向RNN网络的一个主要问题是,它们从之前的时间步骤中学习表示。有时,你有可能需要从未来的时间步骤中学习表示,以便更好地理解上下文环境并消除歧义。通过接下来的列子,“He said, Teddy bears are on sale” and “He said, Teddy Roosevelt was a great President。在上面的两句话中,当我们看到“Teddy”和前两个词“He said”的时候,我们有可能无法理解这个句子是指President还是Teddy bears。因此,为了解决这种歧义性,我们需要往前查找。这就是双向RNN所能实现的。

双向RNN中的重复模块可以是常规RNN、LSTM或是GRU。双向RNN的结构和连接如图10所示。有两种类型的连接,一种是向前的,这有助于我们从之前的表示中进行学习,另一种是向后的,这有助于我们从未来的表示中进行学习。

正向传播分两步完成:

·我们从左向右移动,从初始时间步骤开始计算值,一直持续到到达最终时间步骤为止;

·我们从右向左移动,从最后一个时间步骤开始计算值,一直持续到到达最终时间步骤为止;

结论

将双向循环神经网络与LSTM模块相结合可以显著地提高性能,当将它们与监控机制相结合的时候,你可以在机器翻译、情感化分析等实例中获得最高水品的性能表现。希望本文对大家有帮助。

 

原文链接
本文为云栖社区原创内容,未经允许不得转载。

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

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

相关文章

行!人工智能玩大了!程序员:太牛!你怎么看?

人工智能真的玩大了吗?人工智能行业的人才真的“爆发了?”AI程序员究竟怎么样?中国AI前景分析 程序员与远方最新参考,是12月2日出炉的《人工智能技术专利深度分析报告》。中国AI专利,已经位于世界前列,且正…

可应用于实际的14个NLP突破性研究成果(一)

语言理解对计算机来说是一个巨大的挑战。幼儿可以理解的微妙的细微差别仍然会使最强大的机器混淆。尽管深度学习等技术可以检测和复制复杂的语言模式,但机器学习模型仍然缺乏对我们的语言真正含义的基本概念性理解。 但在2018年确实产生了许多具有里程碑意义的研究…

开发函数计算的正确姿势——网页截图服务

前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源&am…

如何关闭计算机的f12功能键,win10如何关闭快捷键?win10关闭F1~F12快捷键的方法

win10如何使用快捷键关闭?在win10系统中我们按下F1~F12原本可以正常使用系统中的功能。而然在笔记本中F1~F12竟然被笔记本中的功能所替代了,例如:打开/关闭 无线网卡,屏幕亮度加减、系统音量大小等,导致我们在使用F1~F12的时候只…

阿里巴巴宣布架构调整;英伟达放大招!重磅发布 ​TensorRT 7 ,支持超千种计算变换;苹果、谷歌和亚马逊罕见结盟……...

戳蓝字“CSDN云计算”关注我们哦! 嗨,大家好,重磅君带来的【云重磅】特别栏目,如期而至,每周五第一时间为大家带来重磅新闻。把握技术风向标,了解行业应用与实践,就交给我重磅君吧!重…

阿里开源分布式事务解决方案 Fescar 全解析

广为人知的阿里分布式事务解决方案:GTS(Global Transaction Service),已正式推出开源版本,取名为“Fescar”,希望帮助业界解决微服务架构下的分布式事务问题,今天我们一起来深入了解。 FESCAR o…

鲜为人知的混沌工程,到底哪里好?

混沌工程属于一门新兴的技术学科,行业认知和实践积累比较少,大多数IT团队对它的理解还没有上升到一个领域概念。阿里电商域在2010年左右开始尝试故障注入测试的工作,希望解决微服务架构带来的强弱依赖问题。通过本文,你将了解到&a…

将视觉深度学习模型应用于非视觉领域

介绍 近些年来,深度学习技术已经彻底改变了计算机视觉领域。由于迁移学习和各种各样的学习资源的出现,任何人都可以通过使用预训练的模型,将其应用到自己的工作当中,以此获得非常好的结果。随着深度学习越来越商业化,…

如何在Flutter上优雅地序列化一个对象

序列化一个对象才是正经事 对象的序列化和反序列化是我们日常编码中一个非常基础的需求,尤其是对一个对象的json encode/decode操作。每一个平台都会有相关的库来帮助开发者方便得进行这两个操作,比如Java平台上赫赫有名的GSON,阿里巴巴开源…

腾讯汤道生:2020年加大投入产业互联网生态建设

新一轮产业革命正在不断深化,为全球经济发展提供了历史性机遇。如何通过数字化、智能化等手段打通产业链不同环节,优化产业效率,实现产业协同,加速产业转型升级? “与合作伙伴‘共创’是产业互联网发展最重要的路径&am…

优酷IPv6改造纪实:视频行业首家拥抱下一代网络技术

阿里妹导读:2018年双11前,优酷开启了IPV6的大门。9月份PC端业务开启灰度,迎来首位IPV6 VIP用户后,优酷移动客户端也马不停蹄地加入灰度大军。从0到1,花了几个月;从10到1000,花了几天&#xff1b…

服务器上的文件怎么取名,给新的服务器取名你会取神马?

亲爱的谕霸们:本周话题 emmmm.....又一次想话题想到脑壳痛,忽然想到,要不然大家也来想一个,于是乎就是......噢对了,看到论坛的宝宝们都晒出来2018年新年历了,怎么能少了APP的宝宝们?&#xff1…

NVIDIA发布全新推理软件,开创交互式会话AI新时代!

近日, NVIDIA发布了一款突破性的推理软件。借助于该软件,全球各地的开发者都可以实现会话式AI应用,大幅减少推理延迟。而此前,巨大的推理延迟一直都是实现真正交互式互动的一大阻碍。 NVIDIA TensorRT™ 7作为NVIDIA第七代推理软件…

可应用于实际的14个NLP突破性研究成果(二)

论文摘要 尽管最近在训练高质量的句子嵌入上做出了很多的努力,但是大家仍然对它们所捕捉的内容缺乏了解。基于句子分类的‘Downstream’tasks通常用于评估句子表示的质量。然而任务的复杂性使得它很难推断出句子表示中出现了什么样的信息。在本文将介绍10个probing…

可应用于实际的14个NLP突破性研究成果(三)

论文摘要 当前最先进的语义角色标记(SRL)使用深度神经网络,但没有明确的语言特征。之前的工作表明,抽象语法树可以显著改善SRL,从而提高模型准确性。在这项研究中,我们提出了语言学的自我关注(…

服务器cpu虚拟插槽,服务器更换cpu插槽

服务器更换cpu插槽 内容精选换一换弹性云服务器创建成功后,您可以根据需求,修改云服务器的名称。系统支持批量修改多台弹性云服务器的名称,修改完成后,这些弹性云服务器的名称相同。登录管理控制台。单击管理控制台左上角的&#…

云+X案例展 | 民生类:贝斯平云助力500强跨国企数字化转型

本案例由贝斯平云投递并参与评选,CSDN云计算独家全网首发;更多关于【云X 案例征集】的相关信息,点击了解详情丨挖掘展现更多优秀案例,为不同行业领域带来启迪,进而推动整个“云行业”的健康发展。在全球化的科技进步和…

基于Alluxio系统的Spark DataFrame高效存储管理技术

介绍 越来越多的公司和组织开始将Alluxio和Spark一起部署从而简化数据管理,提升数据访问性能。Qunar最近将Alluxio部署在他们的生产环境中,从而将Spark streaming作业的平均性能提升了15倍,峰值甚至达到300倍左右。在未使用Alluxio之前&#…

云+X案例展 | 金融类:青云QingCloud助力泰康人寿云计算演进之路

本案例由荣之联投递并参与评选,CSDN云计算独家全网首发;更多关于【云X 案例征集】的相关信息,点击了解详情丨挖掘展现更多优秀案例,为不同行业领域带来启迪,进而推动整个“云行业”的健康发展。泰康保险泰康云平台 青…

阿里云Kubernetes容器服务上体验Knative

概述 Knative Serving是一种可缩放至零、请求驱动的计算运行环境,构建在 Kubernetes 和 Istio 之上,支持为 serverless 应用、函数提供部署与服务。Knative Serving的目标是为Kubernetes提供扩展功能,用于部署和运行无服务器工作负载。 下面…