Transformer学习笔记——第一天

transformer学习笔记

Task01 引言

Seq2Seq模型概述

Seq2Seq模型是出入一个序列,输出一个序列。这种结构的输入序列和输出序列的长度是可变的。

image-20250210215809976

处理可变长度的序列时,使用Bos和Eos可以减少对填充的依赖,因为模型可以根据这些标识来识别序列的边界。

Seq2Seq模型在概念上还与通信原理有一定的相似性。都是先将信息编码为一个latent,再解码这个latent。

Seq2Seq的由来

在Seq2Seq出现之前,深度神经网络(DNN)擅长处理的固定长度的向量,如果长度变化的话,就会使用padding等操作,其目的是将序列数据转换为固定长度的格式,以便于输入到需要固定长度输入的神经网络中。

Padding操作在计算损失的时候需要特殊的操作忽略这些补零的元素,以免影响模型的训练效果。这通常使用Mask来实现。Mask可以指示哪些位置是补零的,以便在计算过程中忽略这些位置。

但是对于一些重要的问题,例如机器翻译、语音识别、对话系统等,我们事先不知道序列的长度,因为Seq2Seq应运而生。

Seq2Seq模型的评价
优势
  • 端到端学习: 该模型实现了从原始输入数据到期望输出序列的直接映射。
  • 处理可变长度序列
  • 信息压缩和标识:先通过Encoder编码将输入序列压缩为一个固定维度的上下文向量,再通过Decoder基于这个上下文向量进行解码操作以生成目标输出序列。
  • 可扩展性:该模型具有良好的模块化特性。
缺点
  • 上下文向量信息压缩:可能导致信息压缩和信息损失的问题,尤其是细颗粒细节的丢失
  • 短期记忆限制:由于RNN的固有特性,该模型难以有效捕获和传递长期依赖性
  • Exposure Bias:该模型在训练的时候,经常采用"teacher forcing"策略,即在每个时间步提供真实的输出作为解码器的输入。这会导致模型在测试时可能无法很好地适应其自身的错误输出。

Encoder-Decoder 模型

Seq2Seq和Encoder-Decoder的关系
  • Seq2Seq模型强调目的:不特指具体方法,而是以满足“输入序列、输出序列”的目的。
  • Encoder-Decoder模型强调方法
Encoder-Decoder的工作流程
Encoder

Encoder是一个RNN,由多个循环单元(LSTM或GRU)堆叠而成。每个单元通过以此处理序列中的一个元素生成一个上下文向量。这个上下文向量包含了输入序列的全部信息。

工作流程

  1. 词序列转换:输入文本通过embedding layer进行转换,将词映射到一个高维空间中的稠密向量。(word embedding)
  2. 序列处理:这些经过嵌入的向量序列被送到RNN结构中去处理。
  3. 生成上下文向量:生成context vector。
Decoder

解码器是接受Encoder输出的上下文向量并将其作为初始输入,并依次合成目标序列的各个元素。

工作流程

  1. 初始化参数

  2. 编码器输出

    1. 输入序列处理
    2. 隐藏状态更新
    3. 上下文向量生成:编码器的最后一个隐藏状态被用作上下文向量。这个向量是源序列的压缩表示,包含序列的全部或关键信息。
  3. 解码器的输入

    编码器在生成上下文向量后,解码器开始目标序列的合成过程。

    1. 初始隐藏状态
    2. 开始符号: 解码器需要一个触发信号来启动序列的生成,这一信号通常由特定的开始符号表示。
    3. 输入序列:解码器的输入是上一个时间步的输出
    4. 上下文向量:在每个时间步,解码器可能都会接收到一个上下文向量,它包含了整个源序列的信息。
    5. Attention Weights
Seq2Seq模型的训练过程
  1. 准备数据
    1. 数据预处理
    2. 批量处理
  2. 初始化模型参数
    1. 解码器RNN
    2. 输出层
  3. 编码器处理
  4. 解码器训练过程
    1. 初始化隐藏状态
    2. 时间步迭代
      1. 输入
      2. 解码器RNN
      3. 输出层
      4. 损失计算
  5. 反向传播和参数更新
    1. 计算梯度
    2. 参数更新
  6. 循环训练
    1. 多个epoch
  7. 评估和调优
    1. 验证集评估
    2. 超参数调优

通过这个过程,学生(解码器)学会了如何根据你提供的笔记(上下文向量)来复述故事(生成目标序列)。在实际训练中,教师强制(Teacher Forcing)等技巧可以帮助学生更快地学习,而梯度裁剪(Gradient Clipping)等技术可以防止他们在学习过程中过度自信或偏离正确的路径。

image-20250210220221968

Encoder-Decoder的应用
  • 文字-文字
  • 音频-文字
  • 图片-文字
Encoder-Decoder的缺陷

当信息输入太长的时候,会丢失一些信息。

Attention

Attention的发展历程

image-20250210220312525

Attention的 N N N中类型

从计算区域、所用信息、使用模型、权重计算方式和模型结构方面对Attention的形式进行归类。

image-20250210215854460

Attention解决信息丢失问题

Attention模型的特定是Encoder不再将整个输入序列编码为固定长度向量C,而是编码为一个向量序列。

image-20250210215902559

Attention的优点
  • 参数少
  • 速度快
  • 效果好
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值