ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-06-22 17:04:08  阅读:481  来源: 互联网

标签:DL Shuffle Network Exchange 李宏毅 Universal variant Transformer ALBERT


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

  • 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


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

 

标签:DL,Shuffle,Network,Exchange,李宏毅,Universal,variant,Transformer,ALBERT
来源: https://blog.51cto.com/u_15279775/2938494

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有