我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。

已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-notes

本节内容综述

  1. 本节课由助教纪伯翰讲解。本次演讲的标题为“New Architecture”。
  2. 助教建议:一般,我们不要一顿乱用 trick ,往往会失败;我们应该先尝试使用 SOTA 的模型,然后思考其表现优秀的原因。
  3. 复习了 Transformer 的架构。
  4. 进入第一个结构:Sandwich transformer。
  5. 第二个结构:Universal Transformer。
  6. 接下来的结构:Residual Shuffle Exchange Network。
  7. 课间休息后,进入 BERT 。首先复习了 BERT 。
  8. 接下来讲了 2019 年提出的 BERT 的变形,ALBERT 。
  9. 之后是 Reformer 。
  10. 最后的 Style GAN 一笔带过了。

文章目录

  • 本节内容综述
  • 小细节
    • Outline
    • Sandwich transformer
      • Highlight
      • Same parameters but different order
      • Are Balanced Architectures Better?
      • 怎么叠才好?
    • Universal Transformer
      • Experiment(s)
        • Lambda Question Answering Dataset
        • WMT 14 En-De translation task
    • Residual Shuffle Exchange Network
      • Highlight
      • Shuffle-Exchange Network
      • Perfect Shuffle
      • Neural Shuffle Exchange Network - Switch Unit
      • Residual Shuffle Exchange Network
      • Experiment(s)
    • ALBERT
      • 如何减少的参数?
      • Share Parameters Experiment(s)
      • ALBERT: Pre-training Task
    • Reformer
      • Hash Function
      • Reformer: Find a small set of candidates by hash function
      • Reversible Layer
    • Style GAN

小细节

Outline

  • RNN less structure
    • Transformer
    • Sandwich transformer
    • Universal Transformer
    • Residual Shuffle Exchange Network
    • BERT
    • ALBERT, Reformer
  • StyleGAN

其实,现在已经很少有用 LSTM 的了,主要使用 Transformer 。

Sandwich transformer

Highlight

  1. models with more self-attention toward the bottom and more feed-forward sub-layers toward the top tend to perform better in general.
  2. No extra parameters, memory requirement.


如上,s 代表 self-attention ;f 代表 forward 。假设我们知道输出长度,我们改变 s 与 f 的顺序,首先输入足够的信息,会改进表现。

Same parameters but different order


同样的参数量,改变模型中层数的不同顺序,发现其非常的不稳定。

Are Balanced Architectures Better?


在 Model 比较靠近 input 的层,叠加比较多的 self-attention ,发现结果会比较好。

在比较靠近 output 层,叠加比较多的 forward ,结果会比较好。

怎么叠才好?


如上,前后到底叠多少才好?设计了16个模型,依次实验。


可见,前后取6,表现是最好的。

Universal Transformer


原本的Transformer的演算法 algorithm task的任务,结果会有些差。

因此 Universal Transformer :

  • 把同样一组 weight 使用在不同层上;
  • 使用 Dynamic Halting ,不同的字使用的模型深度不同,至于具体多少深度,由模型自己决定。

之所以叫做 Universal ,是指“有足够GPU就能做所有事”。因为深度很吃 GPU 。不同的 token 对不同的深度有要求。

Experiment(s)

  1. Lambda Question Answering Dataset
  2. WMT 14 En-De translation task
Lambda Question Answering Dataset


模型需要阅读内容,回答问题,答案在内容中。


发现,有了 Universal Transformer 与 Dynamic Halting ,效果会更好。

WMT 14 En-De translation task


总结起来,就是 Universal Transformer 可以自适应结构,可以根据不同情况自调整深度。

Residual Shuffle Exchange Network

Highlight

  1. Less parameters compare to other models for the same tasks.
  2. Sequence processing in O(n log n)Time, specialize application on long sequence.
  3. Shuffle &Exchange operators capture distant informations replace attention.

Shuffle-Exchange Network


每个 Switch unit 都会吃两个 input 。

Perfect Shuffle


如图,Perfect Shuffle 如交叉洗牌。

与结构的关系如上图。

Neural Shuffle Exchange Network - Switch Unit

来看看上面的 “黄色框框” 里面是什么东西。


如上,输入两个元素,会有两条通路:

  • 上面的通路,做一个非线性转换;
  • 下面的通路,做一个 swapHalf 。

    swapHalf 如上。


如上,uuu 相当于 GRU 的 reset gate ,在总的运算式中决定有多少内容参与翻转。

Residual Shuffle Exchange Network


而新作品中,简化了 Switch Unit 中的运算。共同点是,两个输入的信息会被部分交换。

此外,这两篇文章使用也不是 Shuffle-Exchange network ,而是 Benes network (在后两层多做了镜像操作)。

总体架构如上。

Experiment(s)

  1. Lambda Question Answering Dataset
  2. MusicNet Dataset
  3. Multiplication Task
  4. Sort Task
  5. Adding Task


如上,实验结果想强调的是,其用了非常少的参数量,得到了很高的准确率。


还做了一个实验:一个11G的内存,对于不同长度的输入,承载力是多少呢?可见:

  • 4x longer sequence than Neural Shuffle-exchange Network
  • 128x longer sequence than Universal Transformer

ALBERT

一个小版的BERT(A Light BERT)。

如上,ALBERT的每一层都 share 同一个参数。


如上。对于同等结构的 BERT 其减少了参数。

如何减少的参数?


除了 share weight ,还有在词向量映射层面。

如上,原本,在构建词到向量的映射中,BERT构建了一个30000×76830000\times 76830000×768的矩阵;而在ALBERT中,将这个映射拆解成2步:30000×128+128×76830000\times 128+ 128\times 76830000×128+128×768

Share Parameters Experiment(s)


如上,分享了参数,其表现也没有怎么变差。

ALBERT: Pre-training Task

ALBERT的预训练与 BERT 也不太相同。

其在句子拼接时,要求考虑句子的顺序。

Reformer




对于正常的 self-attention ,其运算如图。

问题是,如果 input sequence 很长,其成本(O(n2)O(n^2)O(n2))将很高。

Hash Function


可以通过 Hash Function ,来选择对一部分输入做 attention 。

Reformer: Find a small set of candidates by hash function

Reversible Layer


只要记住最后一层的 embedding 就好。用最后一层回推 gradient 就好。不需要保存 12 层的计算图。

Style GAN


助教觉得很酷,稍微提一下。

【李宏毅2020 ML/DL】P56 Transformer and its variant | New Architecture相关推荐

  1. 【李宏毅2020 ML/DL】P1 introduction

    [李宏毅2020 ML/DL]P1 introduction 本节主要介绍了 DL 的15个作业 英文大意 Regression: 回归分析 Classification: 分类 RNN: 循环神经网 ...

  2. 【李宏毅2020 ML/DL】P86-87 More about Domain Adaptation

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本节内容综述 本节课由助教 Chao Brian 讲解. 首先讲解些领域适配的基础内容,包括名词.定义等. 接 ...

  3. 【李宏毅2020 ML/DL】P59 Unsupervised Learning - Auto-encoder

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...

  4. 【李宏毅2020 ML/DL】P58 Unsupervised Learning - Neighbor Embedding | LLE, t-SNE

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...

  5. 【李宏毅2020 ML/DL】P15 Why Deep-

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐): https://github.com/Sakura-gh/ML-not ...

  6. 【李宏毅2020 ML/DL】P14 Tips for training DNN | 激活函数、Maxout、正则、剪枝 Dropout

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐): https://github.com/Sakura-gh/ML-not ...

  7. 李宏毅svm_李宏毅2020 ML/DL补充Structured Learning Structured SVM

    李宏毅2020 ML/DL补充Structured Learning Structured SVM [李宏毅2020 ML/DL]补充:Structured Learning: Structured ...

  8. 【李宏毅2020 ML/DL】P23 Transformer | Self-attention, Multi-head Self-attention

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...

  9. 【李宏毅2020 ML/DL】P66 Self-supervised Learning

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本节内容综述 本节课四十分钟,由助教 Chi-Liang Liu 讲解 Self-Supervised Lea ...

最新文章

  1. 判断32位整数二进制中1的个数
  2. 第7周实践项目2 队列的链式存储结构及其基本运算的实现
  3. 用户注册功能交互流程
  4. OBJECT_ID()的使用方法
  5. 几种限流器(RateLimiter)原理与实现
  6. vue中如何在方法中动态的删除集合中的元素!?
  7. Silverlight 中的通信安全访问策略
  8. glEnable(GL_DEPTH_TEST)作用
  9. 2580 php to yuan,PHP版汉字转拼音类-ASCII版本 | 学步园
  10. CSDN积分获取规则
  11. 基金前端代码和后端代码的区别 基金后端代码和基金前端代码区别
  12. TUIO学习笔记2-TUIO C++ Reference Implementation and Demo Application参考实现和Demo程序(图片版,防查重)
  13. 阿里巴巴实习生招聘 不完全指南
  14. hdu4565(矩阵快速幂)
  15. 计算机用word做海报,【2人回答】电脑Word怎么做海报?-3D溜溜网
  16. [INFO1110课件讲解 一] USYD悉尼大学INFO1110 ED lessons Week1 课件 作业 assignment讲解
  17. 小程序开发 和html的区别,h5和小程序有什么区别?
  18. commons-io工具包的基本使用
  19. python用turtle库画正方形_Python也可以这么“文雅”,用turtle库画一幅高傲的梅花...
  20. 【C++·C11】C++ 时间与时间戳

热门文章

  1. 【SQL】CASE与DECODE
  2. SpringMVC接收json数据转对象中的一些问题(415错误的解决)
  3. 【解决问题】centOS 7 设置固定IP,无法上外网
  4. 响应式下的雪碧图解决方案 - 活用background-size / background-position
  5. layui 解决浏览器自动填充form表单账号和密码输入框的问题
  6. SpringBoot RESTful 应用中的异常处理小结
  7. 使用ADD命令将目录复制到Docker的其他目录
  8. 如何在PHP中使用cURL连接到Tor隐藏服务?
  9. 如何将参数传递给setTimeout()回调?
  10. python venv jenkins_Jenkins+Pytest+Allure集成测试环境