(转) 干货 | 图解LSTM神经网络架构及其11种变体(附论文)

干货 | 图解LSTM神经网络架构及其11种变体(附论文)

2016-10-02 机器之心

 

选自FastML

作者:Zygmunt Z.

机器之心编译 

参与:老红、李亚洲

 

就像雨季后非洲大草原许多野生溪流分化成的湖泊和水洼,深度学习已经分化成了各种不同的专门架构。

 

并且,每个架构都会有一个图解,这里将详细介绍它们。

 

神经网络在概念上很简单,并且它们十分动人。在层级上,有着一堆同质化的元素和统一的单位,并且它们之间还存在在一系列的加权连接。这就是神经网络的所有,至少从理论上来说是这样。然而,时间证明的结果却有所不同。并非工程的特性,我们现在拥有的是建筑工程,而非工程的特性,正如 Stephen Merrity 描述的那样:

 

深度学习的浪漫主义描述通常预示着手工制作工程特性的日子一去不复返了,这个模型的本身是足以先进到能够解决问题的。正如大多数广告一样,它同时具备真实性和误导性。

 

虽然深度学习在很多情况下简化了工程特性,但它肯定还没有彻底地摆脱它。随着工程特性的减少,机器学习模型本身的结构变得越来越复杂。大多数时候,这些模型架构会特定于一个给定的任务,就像过去的工程特性那样。

 

需要澄清一下的是,这仍然是很重要的一步。结构工程要比工程特性更具一般性,并且提供了许多新的机会。正如我们提到的,我们不能无视这样一个事实:我们离我们想要达到的还很远。

 

LSTM 图解

 

怎样解释这些架构?自然地,我们可以通过图解,图解往往可以让阐述变得更清晰。

 

让我们先来看看如今最流行的两种网络,CNN 和 LSTM:

 

 

很简单吧,我们再更仔细地研究下:

 

 

正如大家所言,你可能有很多不理解的数学问题,但你会慢慢习惯它们。幸运地是,我们有很多非常好的解释。

 

仍觉得 LSTM 太复杂了?那让我们来试试简单的版本,GRU (Gated Recurrent Unit),相当琐碎。

 

 

尤其是这一个,被称为 minimal GRU:

 

 

更多图解

 

LSTM 个多各样的变体如今很常见。下面就是一个,我们称之为深度双向 LSTM:

 

DB-LSTM(参见论文:End-to-end Learning of Semantic Role Labeling Using Recurrent Neural Networks )

 

 

剩下的也不需要加以过多说明。让我们从 CNN 和 LSTM 的结合开始说起:

 

卷积残差记忆网络(参见论文:Convolutional Residual Memory Networks)

 

 

动态 NTM(参见论文:Dynamic Neural Turing Machine with Soft and Hard Addressing Schemes)

 

 

可发展神经图灵机(参见论文:Evolving Neural Turing Machines for Reward-based Learning)

 

视觉注意的循环模型(参见论文:Recurrent Models of Visual Attention)

 

通过反向传播无监督域适应(参见论文:Unsupervised Domain Adaptation by Backpropagation)

 

进行图像超分辨率的深度递归 CNN(参见论文:Deeply-Recursive Convolutional Network for Image Super-Resolution)

 

带有合成梯度的多层感知器的图解在清晰度上得分很高:

 

带有合成梯度的 MLP(参见论文:Decoupled Neural Interfaces using Synthetic Gradients)

 

每天都有新的成果出现,下面这个就是新鲜的,来自谷歌的神经机器翻译系统

 

 

一些完全不同的东西

 

Neural Network ZOO(一篇描述神经网络架构的文章,机器之心同样进行了编译) 的描绘非常简单,但很多都华而不实,例如:ESM, ESN 和 ELM。

 

 

它们看上去像没有完全连接的感知器,它们看上去像没有完全连接的感知器,但它们应该代表的是一种液体状态机、一个回声状态网络和一个极端学习机。

 

LSM 和 ESN 有何不同?很简单,LSM 有着三角状绿色的神经元。而 ESN 和 ELM 又有什么不同呢?它们都有蓝色的神经元。

 

讲真,虽然类似,,ESN 是一个递归网络而 ELM 则不是。而这种区别也可在架构图中见到。

 

 

时间: 2024-12-12 11:43:45

(转) 干货 | 图解LSTM神经网络架构及其11种变体(附论文)的相关文章

25张图让你读懂神经网络架构

由于新的神经网络架构无时无刻不在涌现,想要记录所有的神经网络是很困难的事情.要把所有这些缩略语指代的网络(DCIGN,IiLSTM,DCGAN等)都弄清,一开始估计还无从下手. 下表包含了大部分常用的模型(大部分是神经网络还有一些其他的模型).虽然这些架构都是新奇独特的,但当我开始把它们的结果画下来的时候,每种架构的底层关系就会清晰. 显然这些节点图并不能显示各个模型的内部工作过程.例如变分自动编码器(VAE)和自动编码器(AE)节点图看起来一样,但是二者的训练过程实际上是完全不同的,训练后模型

神经网络基础:七种网络单元,四种层连接方式

2016 年 9 月,Fjodor Van Veen 写了一篇名为<The Neural Network Zoo>的文章(详见图文并茂的神经网络架构大盘点:从基本原理到衍生关系 ),全面盘点了神经网络的大量框架,并绘制了直观示意图进行说明.近日,他又发表了一篇题为<The Neural Network Zoo Prequel:Cells and Layers>文章,该文是其上篇文章的前篇,对于文中涉及但没有深入展开的神经网络的单元与层的部分再次做了一个图文并茂的介绍. Cell(单

LSTM神经网络

LSTM是什么 LSTM即Long Short Memory Network,长短时记忆网络.它其实是属于RNN的一种变种,可以说它是为了克服RNN无法很好处理远距离依赖而提出的. 我们说RNN不能处理距离较远的序列是因为训练时很有可能会出现梯度消失,即通过下面的公式训练时很可能会发生指数缩小,让RNN失去了对较远时刻的感知能力. ∂E∂W=∑t∂Et∂W=∑tk=0∂Et∂nett∂nett∂st(∏tj=k+1∂st∂sk)∂sk∂W 解决思路 RNN梯度消失不应该是由我们学习怎么去避免,而

快速掌握ASP连接11种数据库的常用语法

本文主要介绍了ASP连接11种数据库的常用语法,详细内容请参考下文: 1.Access数据库的DSN-less连接方法: 以下为引用的内容:set adocon=Server.Createobject("adodb.connection")adoconn.Open"Driver={Microsoft Access Driver(*.mdb)};DBQ="& _Server.MapPath("数据库所在路径") 2.Access OLE D

提高网站访问量实用的11种方法!

网站|访问量 如何提高网站访问量-11种常用方法!做网站内容,推广难,一直都是站长们的心头病,以下是我个人总结的一下方法,大家觉得好就参考一下吧.通常能够获得链接的方式大概可以分为以下11种:1.同类站点友情链接--难度系数最大 ,所以可以多做一些其它的!2.做出特色,有独到之处获得别人的主动链接 ---最有效的方法 3.写blog.发新闻,被其他网站转载,获得链接---最有效的方法 4.到其他论坛.博客在留言内容上带上链接 5.做好签名到论坛回帖获得链接 6.花钱购买单向链接(链接交易)---

ASP连接数据库的11种方法及相关语法

连接数据库|语法 编辑注:学会了这些东西,您将基本可以独立完成ASP对数据库的所有操作. ASP连接数据库的11种方法--本文总结了使用ASP链接各种数据库的方法: 1.Access数据库的DSN-less连接方法: set adocon=Server.Createobject("adodb.connection") adoconn.Open"Driver={Microsoft Access Driver(*.mdb)};DBQ="& _ Server.Ma

动态网页设计:ASP连接数据库的11种方法

动态|连接数据库|设计|网页|网页设计 ASP连接的11种方法--本文总结了使用ASP链接各种的方法: 1.Access的DSN-less连接方法: setadocon=Server.Createobject("adodb.connection")adoconn.Open"Driver={MicrosoftAccessDriver(*.mdb)};DBQ="&_Server.MapPath("所在路径") 2.AccessOLEDB连接方

JavaScript获取DOM元素的11种方法总结

  JavaScript获取DOM元素的11种方法总结          这篇文章主要介绍了JavaScript获取DOM元素的11种方法总结,本文用分4大类11个方法总结如何获取DOM元素,需要的朋友可以参考下 在Web应用程序特别是Web2.0程序开发中,经常要获取页面中某个元素,然后更新该元素的样式.内容等.如何获取要更新的元素,是首先要解决的问题.令人欣慰的是,使用JavaScript获取节点的方法有很多种,这里简单做一下总结(以下方法在IE7和Firefox2.0.0.11测试通过):

完全图解RNN、RNN变体、Seq2Seq、Attention机制

本文主要是利用图片的形式,详细地介绍了经典的RNN.RNN几个重要变体,以及Seq2Seq模型.Attention机制.希望这篇文章能够提供一个全新的视角,帮助初学者更好地入门. 一.从单层网络谈起 在学习RNN之前,首先要了解一下最基本的单层网络,它的结构如图: 输入是x,经过变换Wx+b和激活函数f得到输出y.相信大家对这个已经非常熟悉了. 二.经典的RNN结构(N vs N) 在实际应用中,我们还会遇到很多序列形的数据: 如: 自然语言处理问题.x1可以看做是第一个单词,x2可以看做是第二