本期论文


Training RNNs as Fast as CNNs


本文通过有意简化状态计算并展现更多的并行性而提出了一个替代性的 RNN 实现,这一循环单元的运算和卷积层一样快,并且比 cuDNN 优化的 LSTM 快 5-10x。该实现在诸如分类、问题回答、语言建模上证明了其有效性,并已在 PyTorch 和 CNTK1 中开源。

论文链接:https://arxiv.org/abs/1709.02755

社区讨论精选


soloice


几个观点:

1. 不就是先前 Quasi-RNN 的工作换了个壳……只不过这篇文章里实验做的比较多,更详实一些。但是实验部分只和标准的 LSTM 等结构作比较,没有和 Quasi-RNN 比,固然可能是因为实现一下 Quasi-RNN 工作量太大,但我还是感觉有些避重就轻了,避开了最相关的前人工作。

2. 训练速度提升没有疑问,解除了各个 gate 的时序依赖,但是我谨怀疑推断速度会变慢。在机器翻译那个任务里,LSTM 只要两三层,它的方法要堆六到十层才能获得同样的效果;因为在解码时只能一步一步解码,解除时序依赖不会带来加速(在某一步的时候还不知道未来会输入啥呢),更多的层数可能会带来 latency 变大。

countback


论文从实验的角度上来说,确实提供了新的思路,但是论文中提出的新的 SRU implementation,实际上在 16 年 6 月份开始陆陆续续有很多论文在做类似的事情,模型设计上并没有什么新鲜感。

随便找了几篇论文展示类似的idea:

Quasi-RNN: https://arxiv.org/pdf/1611.01576.pdf

PRU模型:https://arxiv.org/pdf/1611.06530.pdf

MGU模型: https://arxiv.org/pdf/1603.09420.pdf

liujshi

下图是 GRU 的计算单元,GRU 每一步计算都会引入上一步的隐藏变量:

下图是 SRU 的计算单元,SRU 计算过程对依赖进行了解耦,使得前三部计算不需要依赖前面的过程,前三部就可以用矩阵拼接的方法对整个句子进行全局计算,起到了加速左右,而后面两个方程仅仅虽然依赖前向过程,但是涉及到的计算仅仅是矩阵的按位乘法,速度很快。

但是 SRU 显然对 C~t-1~ 的信息利用很低,所以导致其效果并不好,需要多叠堆层数才能有 GRU 一样的效果。

dalegebit

有个疑问,虽然解除了 h_t 的相关性,减少了那些矩阵乘法,但是 c_t 的还是没解除,ct 还是需要等待 c{t-1} 生成之后才能生成,还是有时间上的依赖。而且如果没有时间上的依赖那也不叫 RNN 了。

Soloice:对的。后面的时间步当然还要等,只是减少了等待时间。本来是 gate 和 hidden state 都要等前面的时间步算完,现在只有 hidden state 需要等,各个时间步的 gate 可以同步算。但是,这种加速技巧是 Quasi-RNN 提出来的啊,这篇文章把 Quasi-RNN 的 recurrent unit 还简化了一下,不过把输出搞复杂了一点(输出 = hidden 和 input 的加权,相当于 highway network)。

参与讨论


点击「阅读原文」即可申请注册 PaperWeekly 社区,快来发现你感兴趣的论文吧。

关于PaperWeekly

PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

Training RNNs as Fast as CNNs相关推荐

  1. 深度学习(二十三)——Fast Image Processing, SVDF, LCNN, LSTM进阶

    https://antkillerfarm.github.io/ Fast Image Processing(续) 这个课题一般使用MIT-Adobe FiveK Dataset作为基准数据集.网址: ...

  2. 综述 | 知识图谱向量化表示

    作者丨窦洪健 学校丨中国人民大学在读硕士 研究方向丨推荐系统.文本生成 本文经授权转载自知乎专栏「RUC AI Box」. 前言 知识图谱主要的目标是用来描述真实世界中间存在的各种实体和概念,以及它们 ...

  3. 第1090期AI100_机器学习日报(2017-09-12)

    AI100_机器学习日报 2017-09-12 神经网络机器翻译(NMT)实践笔记 @爱可可-爱生活 如何在Chatbot中应用深度学习? @ChatbotsChina 论文推荐:像CNN一样快速训练 ...

  4. PyTorch超级资源列表(Github 2.4K星)包罗万象

    PyTorch超级资源列表,包罗万象 PyTorch超级资源列表(Github 2.4K星)包罗万象 -v7.x 1 Pytorch官方工程 2 自然语言处理和语音处理(NLP & Speec ...

  5. pytorch_SRU(Simple Recurrent Unit)

    导读 本文讨论了最新爆款论文(Training RNNs as Fast as CNNs)提出的LSTM变种SRU(Simple Recurrent Unit),以及基于pytorch实现了SRU,并 ...

  6. 爆款论文提出简单循环单元SRU:像CNN一样快速训练RNN(附开源代码)

    近日,一篇题为<Training RNNs as Fast as CNNs>的 arXiv 论文通过有意简化状态计算并展现更多的并行性而提出了一个替代性的 RNN 实现,这一循环单元的运算 ...

  7. 深度学习中基本神经网络(二)

    深度学习中的循环神经网络 1. 循环神经网络的引入与简介 1.1 延时神经网络 1.2 同步学习模式和异步学习模式 2. 梯度训练BPTT算法与RTRL算法 2.1 BPTT算法 2.2 RTRL算法 ...

  8. 循环神经网络教程Recurrent Neural Networks Tutorial, Part 1 – Introduction to RNNs

    Recurrent Neural Networks (RNNs) are popular models that have shown great promise in many NLP tasks. ...

  9. Recurrent Neural Networks Tutorial, Part 1 – Introduction to RNNs

    Recurrent Neural Networks (RNNs) are popular models that have shown great promise in many NLP tasks. ...

最新文章

  1. mapredue输入路径
  2. Design Pattern----06.Creational.Singleton.Pattern (Delphi Sample)
  3. linux基础-第十单元 系统的初始化和服务
  4. 线索二叉树怎么画_固原超级记忆技巧课程怎么学_蒙正智升教育
  5. if you have something important on the clean my mac
  6. boost::fusion::any用法的测试程序
  7. 转载 从SRAM中读写一个数据问题——Verilog
  8. Dubbo-Admin 正式支持 3.0 服务治理
  9. 35岁程序员惨遭裁员,找了6份兼职,晒出收入网友:“打工皇帝”
  10. 原型化系统---失物招领APP
  11. 实时查看Linux IO复用情况
  12. java string 最大长度_我说我精通字符串,面试官竟然问我Java中的String有没有长度限制!?...
  13. 台达DOP-B触摸屏通过MODBUS RTU通讯4台台达M变频器.含触摸屏程序,接线图和变频器参数设定
  14. 同步时钟配置电脑自动校时
  15. Linux安装ghostscript
  16. Heapsort 代码 学习笔记 阳春三月版
  17. HyperLedger Fabric ChainCode开发——shim.ChaincodeStubInterface用法
  18. SQL SERVER恢复数据库时出现Exclusive access could not be obtained because the database is in use
  19. 入门vue+springboot项目
  20. NLP学习笔记 01 分词、词性标注和关键词提取

热门文章

  1. 用MediaInfo获取音视频信息
  2. postgresql 排序索引
  3. 2017.6.11 校内模拟赛
  4. 设置npm的registry
  5. 在WIN7系统的笔记本上建立WIFI热点
  6. C语言程序设计 练习题参考答案 第七章 (2) 指针与数组 main函数形参
  7. elementui 隐藏输入框_elementui select下拉框输入完全匹配值则下拉隐藏
  8. vue对象深拷贝_Vue 对数据对象实现深拷贝赋值
  9. python helloword_python学习笔记- python中的类
  10. java同名不同包文件_java – 如何从不同的JAR读取同名的几个资源文件?