机器学习2021-Transformer
Transformer
sequence-to-sequence model,输入和输出的长度没有固定关系
应用:
- Speech Recognition
- Machine Translation
- Speech Translation
- Text-to-Speech
- chatbot,question+context—>seq2seq—>answer
- syntactic parsing(文法剖析)
- muti-label classification:同个东西可以属于多个classes,机器自己决定output sequence的长度
- Object Detection(框出图片中的物件)
实现:
- Input sequence—>Encoder—>Decoder—>output sequence
Encoder:
给一排向量,输出一排向量
RNN,CNN都可以做到,但Transformer’s Encoder是self-attention
内部架构:
结构:
这里的Add&Norm指的是Residual+Layer Normalization
因为self-attention是不包含位置信息的,所以要另外增加一个positional encoding
Input Embedding的作用是将离散的符号转换为可以用于模型处理的连续数值向量
multi-head attention 是对 self-attention 的扩展和增强,使得模型能够捕捉到不同类型的特征和关系
里面有n个Block
Block里又有多层layer,做self-attention
self-attetion的输出会和输入做一个residual connection
再做一个layer normalization,对同一个feature同一个example的不同dimension去计算μ和σ
Decoder:Autoregressive(AT)
例子:语音识别
- 结构:
- 接收Encoder和向量输入,产生一个概率的distribution,再取max
- 内部结构中的self-attetion—>masked self-attention,因为Decoder是逐个产生输出的,不是一次性的输入,所以需要masked
- 增加END这一特殊符号来表示输出停止
- NAT:
- 如何决定NAT的输出长度?
- 用另外一个predictor进行预测
- 输出一个非常长的结果,不看END后的内容
- 优势:是parallel的,速度快,并且可以控制输出长度
- 劣势:效果不如AT
- 如何决定NAT的输出长度?
Encoder-Decoder:
Cross-Attention:
原始情况:把Encoder最后一层输出交给Decoder作为输入。实际上,也可以把Encoder的中间层输出当作Decoder的输入。
作用:Decoder在生成每个输出时参考Encoder的输出序列(输入序列的编码信息),从而结合两个不同序列的信息生成更准确的输出
举例说明:在机器翻译任务中:
- Encoder 对源语言(例如:“I love apples”)进行编码,得到每个词的向量表示。
- Decoder 在生成目标语言时,例如在生成“我爱苹果”中的“苹果”时,Decoder不仅会参考之前生成的词“我爱”,还会通过cross attention查阅Encoder对“apples”的编码,从而生成对应的目标词“苹果”。
Training:
- Teacher force: using the ground truth as input
- 输出做minimize cross entropy
Tips:
- Copy Machanism:
- Decoder不需要完全创造输出,可以从输入里复制部分内容作为输出
- 例如chat-bot,摘要
- Guided Attention:
- 通常通过加入一个额外的损失项来实现,这个损失项迫使模型的注意力权重矩阵朝着一个目标结构分布
- 增强对齐能力,应用于机器翻译或语音合成
- Beam Search:
- 核心思想是在每一步生成时,保留固定数量的最有希望的候选路径。然后,继续在这些候选路径的基础上生成下一个单词。
- 可以避免因局部决策错误导致生成整体质量下降的问题。
- 应用:机器翻译,文本生成,语音识别
- Sampling:
- 在序列生成任务中,模型通常会为每个生成步骤输出一个概率分布(如词汇表中每个单词的概率)。Sampling的过程就是根据这个概率分布进行随机采样,而不是总是选择最可能的(即最高概率)的输出。
- 避免模型太确定,生成多样化的输出
- 应用:对话生成,文本生成,开放域生成任务
- Optimizing Evaluation Metrics(优化评估指标):
- 评估指标衡量的是生成序列与参考序列之间的相似度或准确性,但它们往往是离散的,不可微分,不能直接用于模型的损失函数计算。评估指标如 BLEU 和 ROUGE 更关注生成的语义准确性和句子的连贯性。
- 所以往往采取RL(强化学习)来优化指标
- Scheduled Sampling
- 在模型训练期间,模型总是使用真实的目标序列作为输入,但在推理阶段,模型必须依赖自己生成的输出作为后续步骤的输入。这种训练和测试的不一致叫做:Exposure bias。
- 核心思想是在训练过程中,逐渐将模型自身生成的输出与真实的目标序列混合,作为下一步的输入。从而,模型可以更好地适应推理阶段的生成方式,缓解Exposure bias。
机器学习2021-Transformer
http://example.com/2024/10/27/机器学习入门/机器学习2021-Transformer/