放牧代码和思想
专注自然语言处理、机器学习算法
    恕不接待索要源码语料者、索求技术方案者、以及不Google的懒人。

CS224n笔记18 挑战深度学习与自然语言处理的极限

目录

障碍6:RNN很慢

作为最重要的积木之一,RNN成为很多NLP系统的性能瓶颈。

解决方案

Quasi-Recurrent Neural Networks by James Bradbury, Stephen Merity, Caiming Xiong & Richard Socher (ICLR 2017)这篇论文提出综合CNN和RNN的优点,得到一种叫做QRNN的模型。

hankcs.com 2017-07-14 下午3.53.51.png

RNN每个时刻需要等前一个时刻计算完毕,所以无法并行化。QRNN先将所有输入相邻两个拼成一行(这是为什么叫Quasi的原因),得到一个大矩阵乘上$W$,于是可以在时间上并行化。在计算隐藏状态的时候,虽然无法在时间上并行化,但可以在特征维度上并行化。

效果

效果比一些实现更好,但速度总是更快,最高16倍的加速比。

hankcs.com 2017-07-14 下午4.00.01.png

障碍7:架构研究很慢

(跟刚才说的手工设计特征->手工设计架构一样)能不能让深度学习模型自动设计架构呢?

Neural architecture search with reinforcement learning by Zoph and Le, 2016做了一点这样的研究,虽然无法自动设计QRNN、DMN这样的复杂架构,但好歹可以“设计”一些诸如隐藏层数、单元数等超参数。

hankcs.com 2017-07-14 下午4.12.31.png

由RNN以$p$采样一个架构,然后训练它得到准确率$R$,计算$p$的梯度乘上$R$更新controller。由于选择架构是一个离散的决策,所以实际上无法得到梯度,得用强化学习来训练。

其工作的效果如下,对CNN可以自动选择过滤器的个数、宽高等参数:

hankcs.com 2017-07-14 下午4.18.14.png

结果

刚刚介绍了pointer sentinel LSTM将困惑度降到70,这个方法迅速地将数字逼近60……

hankcs.com 2017-07-14 下午4.20.28.png

这是search出来的一个单元:

hankcs.com 2017-07-14 下午4.21.53.png

有够复杂的。

总结:NLP受到很多限制

  • 无法做有目的的QA

  • 无法用通用架构联合训练多任务

  • 很难综合多元逻辑与基于记忆的推理

  • 需要很多数据,无法从少量数据展开想象

还有很多极限等待挑战,对这门课来讲,恭喜通关!

2017-07-14_16-27-29.png

知识共享许可协议 知识共享署名-非商业性使用-相同方式共享码农场 » CS224n笔记18 挑战深度学习与自然语言处理的极限

分享到:更多 ()

评论 欢迎留言

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

我的开源项目

HanLP自然语言处理包基于DoubleArrayTrie的Aho Corasick自动机