当前位置: 首页 > news >正文

【机器学习基础】Transformer学习

Transformer学习

  • 一、输入
    • 1. Word Embedding
    • 2. Positional Encoding
      • Positional Encoding的计算方法
  • 二、自注意力机制
  • 二、Add & Norm层
    • 1. Add 代表残差连接(Residual Connection)
    • 2. Norm= Normalization归一化
  • 三、FeedForward层
  • 其他资料

一、输入

第一步:获取输入句子的每一个单词的表示向量 X,X由单词的 Embedding(Embedding就是从原始数据提取出来的Feature) 和单词位置的 Embedding 相加得到
(词向量和位置编码相加,得到输入的Embedding )
在这里插入图片描述
一个编码器接收向量列表作为输入,接着将向量列表中的向量传递到自注意力层进行处理,对每个单词都输出一个向量传递到前馈神经网络中,将输出结果传递给下一个编码器

1. Word Embedding

  • 将每个单词都变成特定维度的embedding(向量),Transformer中词向量使用512位
  • 词嵌入只发生在最底层的编码其中,上面的编码器的输入都是之前编码器的输出
  • 向量的列表大小是可以设置的,超参数一般是训练集中最长句子的长度
  • 每一个词经过Self-Attention后,都会生成对应的向量Z1/Z2/Z3,这些向量会输入到Feed Forward中完成数字序列的编码,就是Word Embedding

在这里插入图片描述

2. Positional Encoding

  • Positional Encoding存在意义:串联结构RNN中当前步骤的计算总会依赖上一个时间步的计算,这其中隐含了一个时序信号的过程,Transformer中并没有时序信息,因此要手动添加时序信息,让其知道当前的单次在整个句子中的位置
  • 位置编码的维度和Word Embedding相同,在TR中也是512位,通过和Word Embedding相加才得到具有时序信号的Embedding

在这里插入图片描述

Positional Encoding的计算方法

  • TR中使用的Positional Encoding是sin和cos三角函数
  • pos是当前词在句子中的范围,取值范围是0-当前句子长度
    i是位置编码维度,取值范围是0-dmodel/2(dmodel是事先定义好的,TR中是512位)
  • 偶数维度sin函数计算,奇数维度cos函数计算
  • 对于不同维度三角函数周期不同,随着维度i变大,周期也变大
  • 通过这种方式得到的位置编码对于句子中的每个单词来说是独一无二的
  • 使用的相对位置编码,不是绝对位置编码
  • TR中使用这种位置编码的优势是,它能够扩展到未知的序列长度。pos的取值

http://www.mrgr.cn/news/45364.html

相关文章:

  • 微信图片的超能力:5大隐秘功能揭秘,让你成为信息处理大师
  • antd-tree的半选回显,不联动父类节点,非严格模式下也可以
  • vector 的使用详解
  • 如何使用 vSphere Client 给虚拟机扩容
  • LeetCode-12. 整数转罗马数字【哈希表 数学 字符串】
  • 双向链表基本操作实现--建议做题时画图 切不可死记
  • qiankun(乾坤)解决父子应用样式的影响和策略
  • ②EtherNet/IP转ModbusTCP, EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关
  • 2024下半年国内EI学术会议有哪些
  • 数据库SQL 某字段按首字母排序_sql按首字母排序
  • unix系统中的system函数
  • Spring Cloud微服务详解
  • EDA脚本应用领域及使用特点
  • 实战千问2大模型第四天——Qwen2-VL-7B(多模态)lora微调训练和测试
  • python画图|显式和隐式接口The explicit and the implicit interfaces
  • can 总线入门———can简介硬件电路
  • Redis面试篇1
  • 也来猜猜 o1 实现方法
  • OpenCV高级图形用户界面(3)关闭由 OpenCV 创建的指定窗口函数destroyWindow()的使用
  • PCL-点云质心识别