干货 | 图解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 则不是。而这种区别也可在架构图中见到。

 

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

  1. (转)LSTM神经网络介绍

    原文链接:http://www.atyun.com/16821.html 扩展阅读: https://machinelearningmastery.com/time-series-prediction ...

  2. 神经网络架构PYTORCH-几个概念

    使用Pytorch之前,有几个概念需要弄清楚. 什么是Tensors(张量)? 这个概念刚出来的时候,物理科班出身的我都感觉有点愣住了,好久没有接触过物理学的概念了. 这个概念,在物理学中怎么解释呢? ...

  3. LSTM神经网络

    LSTM是什么 LSTM即Long Short Memory Network,长短时记忆网络.它其实是属于RNN的一种变种,可以说它是为了克服RNN无法很好处理远距离依赖而提出的. 我们说RNN不能处 ...

  4. LSTM 神经网络输入输出层

    今天终于弄明白,TensorFlow和Keras中LSTM神经网络的输入输出层到底应该怎么设置和连接了.写个备忘. https://machinelearningmastery.com/how-to- ...

  5. 怎样设计最优的卷积神经网络架构?| NAS原理剖析

    虽然,深度学习在近几年发展迅速.但是,关于如何才能设计出最优的卷积神经网络架构这个问题仍在处于探索阶段. 其中一大部分原因是因为当前那些取得成功的神经网络的架构设计原理仍然是一个黑盒.虽然我们有着关于 ...

  6. 论文解读丨基于局部特征保留的图卷积神经网络架构(LPD-GCN)

    摘要:本文提出一种基于局部特征保留的图卷积网络架构,与最新的对比算法相比,该方法在多个数据集上的图分类性能得到大幅度提升,泛化性能也得到了改善. 本文分享自华为云社区<论文解读:基于局部特征保留 ...

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

    完全图解RNN.RNN变体.Seq2Seq.Attention机制 本文主要是利用图片的形式,详细地介绍了经典的RNN.RNN几个重要变体,以及Seq2Seq模型.Attention机制.希望这篇文章 ...

  8. CSS垂直居中的11种实现方式

    今天是邓呆呆球衣退役的日子,在这个颇具纪念意义的日子里我写下自己的第一篇博客,还望前辈们多多提携,多多指教! 接下来,就进入正文,来说说关于垂直居中的事.(以下这11种垂直居中的实现方式均为笔者在日常 ...

  9. [转]Markdown 11种基本语法

    Markdown 11种基本语法 现在是我在学习Markdown时做的笔记.学完这些Markdown的基本使用已经不成问题. 1. 标题设置(让字体变大,和word的标题意思一样) 在Markdown ...

随机推荐

  1. Yii2 数据缓存/片段缓存/页面缓存/Http缓存

  2. Sqrt Bo (水题)

    #include<bits/stdc++.h> using namespace std; ], comp; ]; int main(){ arr[] = 1LL; ; i < ; i ...

  3. python 简单了解namedtuple

    namedtuple类位于collections模块,有了namedtuple后通过属性访问数据能够让我们的代码更加的直观更好维护 namedtuple能够用来创建类似于元祖的数据类型,除了能够用索引 ...

  4. JAVA基础2---深度解析A++和++A的区别

    我们都知道JAVA中A++和++A在用法上的区别,都是自增,A++是先取值再自增,++A是先自增再取值,那么为什么会是这样的呢? 1.关于A++和++A的区别,下面的来看个例子: public cla ...

  5. python深拷贝和浅拷贝的区别

    首先深拷贝和浅拷贝都是对象的拷贝,都会生成一个看起来相同的对象,他们本质的区别是拷贝出来的对象的地址是否和原对象一样,也就是地址的复制还是值的复制的区别. 什么是可变对象,什么是不可变对象: 可变对象 ...

  6. Linux下java nohup 后台运行关闭后进程停止的原因,不挂断后台运行命令

    Linux下java nohup 后台运行关闭后进程停止的原因,不挂断后台运行命令 今天写sh脚本发现一终止命令程序就停止运行了,检查了很久才发现后面少了个&字符导致的!错误写法:nohup ...

  7. 系统调用号、errno

    最近老需要看系统调用号,errno,所以这里记一下 CentOS Linux release 7.2.1511 (Core) 3.10.0-327.el7.x86_64 [root@localhost ...

  8. ajax 检测用户名是否可用

    下面是一个 ajax 检测用户名是否可用的例子. django  项目中. —— views.py 里—— from django.shortcuts import render,HttpRespon ...

  9. vue 加载更多2

    <template lang="html"> <div class="yo-scroll" :class="{'down':(sta ...

  10. django 处理静态文件

    settings: STATIC_URL = 'static/'STATIC_ROOT = os.path.join(BASE_DIR, 'static') urls: from django.con ...