机器学习(李宏毅)——Transformer

一、前言

本文章作为学习2023年《李宏毅机器学习课程》的笔记,感谢台湾大学李宏毅教授的课程,respect!!!

读这篇文章必须先了解self-attention,可参阅我上一篇。

二、大纲

  • Transformer问世
  • 原理剖析
  • 模型训练

三、Transformer问世

2017 年在文章《Attention Is All You Need》被提出的。应用于seq2seq模型,当时直接轰动。

四、原理剖析

两部分组成:Encoder 和 Decoder

  • Encoder 结构
    接下来从大到小一层层剥开:

剥一下:

输入一排向量,输出一排向量

剥两下:

Encoder 由多个Block组成,串联起来

剥三下:

Block装的是啥?原来是Self-attention!

剥四下:

Self-attention原来加入了residual和Layer Normal,至此剥完了。

说明:

上图自底向上看,关键点:

1、residual结构,输入接到输出送入下一层,残差结构;

2、Layer Normal,具体如下图:

算出标准差和均值后,套用公式计算即可。

以上就是Encoder的全部了!

论文中是这么画图表达的:

注:Positional Encoding是self-attention的位置资讯。

  • Decoder 结构
    有两种方法生成输出:Auto Regressive 和 Non Auto Regressive。

Auto Regressive

给个START符号,把本次输出当做是下一次的输入,依序进行下去。

Non Auto Regressive

输入是一排的START符号,一下子梭哈突出一排输出。

Encoder结构长啥样?

接下来看下结构长啥样,先遮住不一样的部分,其他部分结构基本一致,只不过这里用上了Masked Multi-Head Attention

Masked Multi-Head Attention

啥是Masked Multi-Head Attention?Masked有啥含义?

可以直接理解为单向的Multi-Head Attention,而且是从左边开始:

说明:这也很好理解,右边的字符都还没输出出来怎么做运算,因此只能是已经吐出来的左边的内容做self-attention,这就是masked的含义。

遮住的部分是啥?(cross attention)

最后这边遮住的部分到底是啥玩意?

别想太复杂,就还是self-attention。

corss的意思就是v,k来自Encoder,q来自Decoder,仅此而已。

其实也好理解,Decoder是去还原结果的,那可不得抽下Encoder编码时候的资讯和上下文语义信息才能还原,缺一不可。

比喻下,前者让输出紧扣题意,后者让其说人话。

小结

至此,Transformer的结构就阐述完了,无非就是Encoder + Decoder,建议自己在草稿纸上画画能够加深印象。

五、模型训练

transformer的模型训练用的还是cross entropy。

实战过程中的tips

  • copy mechanism
    例如:
    Machine Translation(机器翻译),可能使用原文复制这个技能对于模型而言比较容易,毕竟它不需要创造新词汇了嘛,这就是copy mechanism。
  • Guided Attention

意思就是不要乱Attention,有的放矢地让模型做attention。

  • Beam Search

    基本思想就是不要步步好,有可能短期不好但是长期更好。说的和人生似的。
    如果模型需要有点创造力,不适合用此方法,这是实做后的结论。

训练过程记得让模型看些负样本,不至于模型一步错步步错,(schedule sampling方法)。

五、小结

最基本的掌握好Encoder和Decoder就很可以了,其他的在实做过程中遇到问题再问问AI工具。

相关推荐
weixin_387545644 分钟前
深入解析 AI Gateway:新一代智能流量控制中枢
人工智能·gateway
聽雨23722 分钟前
03每日简报20250705
人工智能·社交电子·娱乐·传媒·媒体
二川bro41 分钟前
飞算智造JavaAI:智能编程革命——AI重构Java开发新范式
java·人工智能·重构
acstdm1 小时前
DAY 48 CBAM注意力
人工智能·深度学习·机器学习
澪-sl1 小时前
基于CNN的人脸关键点检测
人工智能·深度学习·神经网络·计算机视觉·cnn·视觉检测·卷积神经网络
羊小猪~~1 小时前
数据库学习笔记(十七)--触发器的使用
数据库·人工智能·后端·sql·深度学习·mysql·考研
摸爬滚打李上进2 小时前
重生学AI第十六集:线性层nn.Linear
人工智能·pytorch·python·神经网络·机器学习
HuashuiMu花水木2 小时前
PyTorch笔记1----------Tensor(张量):基本概念、创建、属性、算数运算
人工智能·pytorch·笔记
lishaoan772 小时前
使用tensorflow的线性回归的例子(四)
人工智能·tensorflow·线性回归
AI让世界更懂你2 小时前
【ACL系列论文写作指北15-如何进行reveiw】-公平、公正、公开
人工智能·自然语言处理