transformer模型结构|李宏毅机器学习21年

news/2025/2/16 1:41:15/

来源:https://www.bilibili.com/video/BV1Bb4y1L7FT?p=4&vd_source=f66cebc7ed6819c67fca9b4fa3785d39

文章目录

  • 概述
  • seq2seq
  • transformer
    • Encoder
    • Decoder
      • Autoregressive(AT)
        • self-attention与masked-self attention
        • model如何决定输出的长度
        • Cross-attention——连接encoder和decoder的桥梁
        • Training
        • 评估指标的优化
      • Non-autoregressive(NAT)

概述

transformer就是一个seq2seq的model。
Input一个sequence,output的长度由机器自己决定。

seq2seq

在这里插入图片描述

transformer

在这里插入图片描述

Encoder

输入一排向量,输出同样长度的另一排向量。
每一个Block做的事情是好几个layer做的事情。
每个block做的事(简化版):
在这里插入图片描述
完整版:
在这里插入图片描述
位置的资讯
Bert里会用到同样的架构:
在这里插入图片描述

Decoder

Autoregressive(AT)

在这里插入图片描述
在这里插入图片描述
decoder看到的输入是前一个阶段自己的输出。
那么这样会不会导致error propagation(一步错步步错)?
不会。
exposure bias:test时decoder可能会看到错误的输入,而train时decoder看到的是完全正确的,即它在训练时完全没有看过错误的东西。
解决方法:scheduled sampling:训练时给decoder的输入加一些错误的东西。

decoder与encoder的差别

self-attention与masked-self attention

self-attention
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
为什么要masked?
因为在encoder里面,input是同时输进去的;而decoder里面,input是一个一个输进去的。

model如何决定输出的长度

加上一个Stop Token
除了所有的中文字、< begin >之外,还需要准备一个< end >,不过通常< begin >和< end >会用同一个符号,因为他们分别只会在开头和结尾出现。

Cross-attention——连接encoder和decoder的桥梁

在这里插入图片描述
在这里插入图片描述
k、v、q如何得出:self-attention|李宏毅机器学习21年

各式各样的连接方式都可以:
在这里插入图片描述

Training

前面的部分都是,假设model训练好以后,它是怎么做inference的。
训练资料:输入-输出对
在这里插入图片描述
Teacher Forcing:在decoder训练的时候输入的是正确答案
在这里插入图片描述

交叉熵(Cross Entropy)是衡量两个概率分布之间差异的一种度量方式,在机器学习中常用作分类问题的损失函数。假设我们有两个概率分布的向量,一个是真实的概率分布 P P P,一个是预测的概率分布 Q Q Q,那么交叉熵可以表示为:
H ( P , Q ) = − ∑ i P ( i ) log ⁡ Q ( i ) H(P, Q) = -\sum_{i} P(i) \log Q(i) H(P,Q)=iP(i)logQ(i)

举例:

  • 真实概率分布 P = [ 0.6 , 0.4 ] P = [0.6, 0.4] P=[0.6,0.4]
  • 预测概率分布 Q = [ 0.8 , 0.2 ] Q = [0.8, 0.2] Q=[0.8,0.2]
    计算这两个向量的交叉熵如下:
    H ( P , Q ) = − ( 0.6 × log ⁡ ( 0.8 ) + 0.4 × log ⁡ ( 0.2 ) ) = 0.7777 H(P, Q) = - (0.6 \times \log(0.8) + 0.4 \times \log(0.2)) = 0.7777 H(P,Q)=(0.6×log(0.8)+0.4×log(0.2))=0.7777
    所以这两个向量的交叉熵大约是 0.7777 0.7777 0.7777
    注意,由于交叉熵是衡量两个分布之间的差异,因此 P P P Q Q Q必须是有效的概率分布,即 P P P Q Q Q中的所有元素都必须是非负的,并且它们的和为 1。在实际应用中,为了防止对数函数中出现对零取对数的情况,通常会给 Q Q Q 中的元素加上一个很小的正数,比如 1 e − 9 1e-9 1e9
评估指标的优化

训练时是min cross entropy(字与字之间),测试时是max BLEU score(句子与句子之间),这两个指标可以等价吗?
不见得。
训练的时候都是一个字一个字出来的,怎么在训练的时候就用BLEU score:
遇到无法optimize的loss fuction,用RL硬train一发就可以。
把fuction当做是RL的reward,把decoder当做agent。(比较难)
在这里插入图片描述

BLEU(Bilingual Evaluation Understudy)分数是一种常用于评估机器翻译质量的指标,它通过比较机器翻译的文本和一个或多个参考翻译来计算分数。BLEU分数考虑了准确性(通过n-gram匹配)和流畅性(通过句子长度的惩罚)。

BLEU分数的计算包括以下几个步骤:

  1. n-gram精确度:对于每个n-gram(n可以是1, 2, 3, …),计算机器翻译中n-gram出现的次数,并与参考翻译中的n-gram出现次数进行比较。对于每个n-gram,计算其精确度(precision)。

  2. 修剪(Clipping):如果机器翻译中的n-gram出现次数超过参考翻译中的最大出现次数,将其修剪至该最大值。

  3. 加权平均:对于不同的n-gram精确度,计算它们的几何平均值,并对结果取自然对数。

  4. 句子长度惩罚(Brevity Penalty, BP):如果机器翻译的长度小于参考翻译的长度,将施加一个惩罚以避免过短的翻译。

计算公式:

BLEU = BP ⋅ exp ⁡ ( ∑ n = 1 N w n log ⁡ p n ) \text{BLEU} = \text{BP} \cdot \exp\left(\sum_{n=1}^{N} w_n \log p_n\right) BLEU=BPexp(n=1Nwnlogpn)

其中:

  • p n p_n pn 是第n个n-gram的精确度。
  • w n w_n wn 是第n个n-gram的权重,通常取为 1 / N 1/N 1/N,使得所有n-gram权重之和为1。
  • BP \text{BP} BP 是句子长度惩罚,计算方式为:

BP = { 1 如果机器翻译的长度 > 参考翻译的长度 exp ⁡ ( 1 − 参考翻译的长度 机器翻译的长度 ) 其他情况 \text{BP} = \begin{cases} 1 & \text{如果机器翻译的长度} > \text{参考翻译的长度} \\ \exp\left(1 - \frac{\text{参考翻译的长度}}{\text{机器翻译的长度}}\right) & \text{其他情况} \end{cases} BP={1exp(1机器翻译的长度参考翻译的长度)如果机器翻译的长度>参考翻译的长度其他情况

举例:

本例中机器翻译(MT)与参考翻译(Ref)不完全匹配,并且将计算最多包括2-gram的BLEU分数。

假设机器翻译(MT)为:“the black cat sat on the mat”,参考翻译(Ref)为:“the cat sat on the mat”。我们计算1-gram和2-gram的BLEU分数(即N=2)。

  1. 对于1-gram:

    • MT中的词:“the”, “black”, “cat”, “sat”, “on”, “the”, “mat”
    • Ref中的词:“the”, “cat”, “sat”, “on”, “the”, “mat”
    • MT中每个词的出现次数与Ref中相同或更多的词有:“the” (2次), “cat” (1次), “sat” (1次), “on” (1次), “mat” (1次)
    • 因此,1-gram精确度 p 1 = 6 7 p_1 = \frac{6}{7} p1=76(因为MT中有7个词,其中6个词匹配到了Ref)
  2. 对于2-gram:

    • MT中的2-gram:“the black”, “black cat”, “cat sat”, “sat on”, “on the”, “the mat”
    • Ref中的2-gram:“the cat”, “cat sat”, “sat on”, “on the mat”
    • MT中每个2-gram的出现次数与Ref中相同或更多的2-gram有:“cat sat” (1次), “sat on” (1次), “on the” (1次)
    • 因此,2-gram精确度 p 2 = 3 6 p_2 = \frac{3}{6} p2=63(因为MT中有6个2-gram,其中3个匹配到了Ref)
  3. 长度惩罚(BP):

    • MT的长度为7,Ref的长度为6。
    • 因为MT的长度大于Ref的长度,所以没有长度惩罚, BP = 1 \text{BP} = 1 BP=1
  4. 加权平均:

    • 假设我们给1-gram和2-gram相同的权重,即 w 1 = w 2 = 0.5 w_1 = w_2 = 0.5 w1=w2=0.5
    • 加权平均为 exp ⁡ ( 0.5 ⋅ log ⁡ p 1 + 0.5 ⋅ log ⁡ p 2 ) \exp(0.5 \cdot \log p_1 + 0.5 \cdot \log p_2) exp(0.5logp1+0.5logp2)

现在我们可以计算BLEU分数:

BLEU = BP ⋅ exp ⁡ ( 0.5 ⋅ log ⁡ 6 7 + 0.5 ⋅ log ⁡ 3 6 ) \text{BLEU} = \text{BP} \cdot \exp\left(0.5 \cdot \log \frac{6}{7} + 0.5 \cdot \log \frac{3}{6}\right) BLEU=BPexp(0.5log76+0.5log63)

计算具体数值:

BLEU = 1 ⋅ exp ⁡ ( 0.5 ⋅ log ⁡ 6 7 + 0.5 ⋅ log ⁡ 1 2 ) \text{BLEU} = 1 \cdot \exp\left(0.5 \cdot \log \frac{6}{7} + 0.5 \cdot \log \frac{1}{2}\right) BLEU=1exp(0.5log76+0.5log21)
BLEU ≈ exp ⁡ ( − 0.42365 ) ≈ 0.65468 \text{BLEU} \approx \exp\left(-0.42365\right) \approx 0.65468 BLEUexp(0.42365)0.65468
因此,BLEU分数大约为0.65468。这个分数反映了机器翻译与参考翻译在1-gram和2-gram层面上的部分匹配程度。在实际应用中,BLEU分数通常会乘以100,因此这个分数可能会表示为65.468。

Non-autoregressive(NAT)

常用于语音合成领域,因为可以:输出长度2->语速2
在这里插入图片描述


http://www.ppmy.cn/news/1264127.html

相关文章

自下而上-存储全栈(TiDB/RockDB/SPDK/fuse/ceph/NVMe/ext4)存储技术专家成长路线

数字化时代的到来带来了大规模数据的产生&#xff0c;各行各业都面临着数据爆炸的挑战。 随着云计算、物联网、人工智能等新兴技术的发展&#xff0c;对存储技术的需求也越来越多样化。不同应用场景对存储的容量、性能、可靠性和成本等方面都有不同的要求。具备存储技术知识和技…

MTU TCP-MSS(转载)

MTU MTU 最大传输单元&#xff08;Maximum Transmission Unit&#xff0c;MTU&#xff09;用来通知对方所能接受数据服务单元的最大尺寸&#xff0c;说明发送方能够接受的有效载荷大小。 是包或帧的最大长度&#xff0c;一般以字节记。如果MTU过大&#xff0c;在碰到路由器时…

【Java+MySQL】前后端连接小白教程

目录 &#x1f36d;【IntelliJ IDEA】操作 &#x1f36d;1. 连接MySQL数据库 &#x1f308;1.1 错误解决 &#x1f36d;2. 操作MySQL数据库 &#x1f308;2.1 双击查看表数据 &#x1f308;2.2 编写SQL脚本 &#x1f36d;【IntelliJ IDEA】 IntelliJ IDEA是由JetBrains公司…

量子芯片技术:未来的计算革命

量子芯片技术&#xff1a;未来的计算革命 一、引言 随着科技的不断发展&#xff0c;人类正在进入一个全新的技术时代&#xff0c;即量子时代。量子芯片技术作为这个时代的重要代表&#xff0c;正逐渐改变我们对计算和信息处理的理解。本文将深入探讨量子芯片技术的基本原理、…

虚拟局域网(VLAN)解析(Virtual Local Area Network)(用于在不受物理位置限制的情况下将设备划分到同一网络或不同网络)

文章目录 虚拟局域网&#xff08;VLAN&#xff09;解析1. VLAN简介2. VLAN工作原理3. VLAN类型1. 静态VLAN2. 动态VLAN 4. VLAN优点提高安全性降低网络拥堵更简单的管理 5. 如何配置VLAN1. 进入全局配置模式2. 创建VLAN并命名3. 将端口分配给VLAN4. 验证VLAN配置 6. 常见问题与…

讲解把一个文件夹里面的内容复制到另一个文件夹中的操作

&#x1f38a;专栏【Java小练习】 &#x1f354;喜欢的诗句&#xff1a;天行健&#xff0c;君子以自强不息。 &#x1f386;音乐分享【如愿】 &#x1f384;欢迎并且感谢大家指出小吉的问题&#x1f970; 文章目录 &#x1f354;需求⭐思路✨代码✨效果 &#x1f384;如果要复制…

分类信息发布小程序效果如何

信息发布系统连接信息供需双方&#xff0c;打造信息聚合平台&#xff0c;用户可获取和发布需求信息、参与互动交流&#xff0c;适用于同城、社区交流、客户互动、业务员/经纪人发布信息场景。 制作分类信息小程序后&#xff0c;商家后台设置信息项&#xff0c;发布者填写内容发…

数据结构算法-希尔排序算法

引言 在一个普通的下午&#xff0c;小明和小森决定一起玩“谁是老板”的扑克牌游戏。这次他们玩的可不仅仅是娱乐&#xff0c;更是要用扑克牌来决定谁是真正的“大老板”。 然而&#xff0c;小明的牌就像刚从乱麻中取出来的那样&#xff0c;毫无头绪。小森的牌也像是被小丑掷…