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

2021/6/22 23:27:14

本文主要是介绍【李宏毅2020 ML/DL】P56 Transformer and its variant | New Architecture,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

我已经有两年 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 如上。


如上, u u u 相当于 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 × 768 30000\times 768 30000×768的矩阵;而在ALBERT中,将这个映射拆解成2步: 30000 × 128 + 128 × 768 30000\times 128+ 128\times 768 30000×128+128×768。

Share Parameters Experiment(s)


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

ALBERT: Pre-training Task

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

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

Reformer




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

问题是,如果 input sequence 很长,其成本( O ( n 2 ) 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的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程