【李宏毅2020 ML/DL】P56 Transformer and its variant | New Architecture
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。
已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-notes
本节内容综述
- 本节课由助教
纪伯翰
讲解。本次演讲的标题为“New Architecture”。 - 助教建议:一般,我们不要一顿乱用 trick ,往往会失败;我们应该先尝试使用 SOTA 的模型,然后思考其表现优秀的原因。
- 复习了 Transformer 的架构。
- 进入第一个结构:Sandwich transformer。
- 第二个结构:Universal Transformer。
- 接下来的结构:Residual Shuffle Exchange Network。
- 课间休息后,进入 BERT 。首先复习了 BERT 。
- 接下来讲了 2019 年提出的 BERT 的变形,ALBERT 。
- 之后是 Reformer 。
- 最后的 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
- models with more self-attention toward the bottom and more feed-forward sub-layers toward the top tend to perform better in general.
- 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)
- Lambda Question Answering Dataset
- 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
- Less parameters compare to other models for the same tasks.
- Sequence processing in O(n log n)Time, specialize application on long sequence.
- 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)
- Lambda Question Answering Dataset
- MusicNet Dataset
- Multiplication Task
- Sort Task
- 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相关推荐
- 【李宏毅2020 ML/DL】P1 introduction
[李宏毅2020 ML/DL]P1 introduction 本节主要介绍了 DL 的15个作业 英文大意 Regression: 回归分析 Classification: 分类 RNN: 循环神经网 ...
- 【李宏毅2020 ML/DL】P86-87 More about Domain Adaptation
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本节内容综述 本节课由助教 Chao Brian 讲解. 首先讲解些领域适配的基础内容,包括名词.定义等. 接 ...
- 【李宏毅2020 ML/DL】P59 Unsupervised Learning - Auto-encoder
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...
- 【李宏毅2020 ML/DL】P58 Unsupervised Learning - Neighbor Embedding | LLE, t-SNE
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...
- 【李宏毅2020 ML/DL】P15 Why Deep-
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐): https://github.com/Sakura-gh/ML-not ...
- 【李宏毅2020 ML/DL】P14 Tips for training DNN | 激活函数、Maxout、正则、剪枝 Dropout
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐): https://github.com/Sakura-gh/ML-not ...
- 李宏毅svm_李宏毅2020 ML/DL补充Structured Learning Structured SVM
李宏毅2020 ML/DL补充Structured Learning Structured SVM [李宏毅2020 ML/DL]补充:Structured Learning: Structured ...
- 【李宏毅2020 ML/DL】P23 Transformer | Self-attention, Multi-head Self-attention
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...
- 【李宏毅2020 ML/DL】P66 Self-supervised Learning
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本节内容综述 本节课四十分钟,由助教 Chi-Liang Liu 讲解 Self-Supervised Lea ...
最新文章
- 判断32位整数二进制中1的个数
- 第7周实践项目2 队列的链式存储结构及其基本运算的实现
- 用户注册功能交互流程
- OBJECT_ID()的使用方法
- 几种限流器(RateLimiter)原理与实现
- vue中如何在方法中动态的删除集合中的元素!?
- Silverlight 中的通信安全访问策略
- glEnable(GL_DEPTH_TEST)作用
- 2580 php to yuan,PHP版汉字转拼音类-ASCII版本 | 学步园
- CSDN积分获取规则
- 基金前端代码和后端代码的区别 基金后端代码和基金前端代码区别
- TUIO学习笔记2-TUIO C++ Reference Implementation and Demo Application参考实现和Demo程序(图片版,防查重)
- 阿里巴巴实习生招聘 不完全指南
- hdu4565(矩阵快速幂)
- 计算机用word做海报,【2人回答】电脑Word怎么做海报?-3D溜溜网
- [INFO1110课件讲解 一] USYD悉尼大学INFO1110 ED lessons Week1 课件 作业 assignment讲解
- 小程序开发 和html的区别,h5和小程序有什么区别?
- commons-io工具包的基本使用
- python用turtle库画正方形_Python也可以这么“文雅”,用turtle库画一幅高傲的梅花...
- 【C++·C11】C++ 时间与时间戳
热门文章
- 【SQL】CASE与DECODE
- SpringMVC接收json数据转对象中的一些问题(415错误的解决)
- 【解决问题】centOS 7 设置固定IP,无法上外网
- 响应式下的雪碧图解决方案 - 活用background-size / background-position
- layui 解决浏览器自动填充form表单账号和密码输入框的问题
- SpringBoot RESTful 应用中的异常处理小结
- 使用ADD命令将目录复制到Docker的其他目录
- 如何在PHP中使用cURL连接到Tor隐藏服务?
- 如何将参数传递给setTimeout()回调?
- python venv jenkins_Jenkins+Pytest+Allure集成测试环境