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

【王树森】Transformer模型(2/2): 从Attention层到Transformer网络(个人向笔记)

Single Head Self-Attention

上节课讲到的属于单头注意力:
在这里插入图片描述


Multi-Head Self-Attention

  • 使用 l l l 个单头注意力层堆叠成一个多头注意力层,注意它们之间不共享参数
  • 一个单头注意力有 3 个参数矩阵,所以多头注意力有 3 l 3l 3l 个参数矩阵
  • 我们把多个单头注意力的输出做concatenation,就能得到多头注意力的输出
    在这里插入图片描述

Multi-Head Attention

和上面讲到的类似,我们把单头注意力堆叠起来,就能得到一个多头注意力
在这里插入图片描述


Stacked Self-Attention Layers

  • 在上面的多头自注意力层上的输出再接一个全连接层,对于每个输出的全连接层共享参数,将它们和 W U W_U WU 进行计算后丢到一个激活函数ReLU里面
    在这里插入图片描述
  • 在此基础上可以网上堆多头自注意力层,这个的道理和多层RNN是一样的:
    在这里插入图片描述
  • Transformer一个Block的encoder的输入和输出都是一个 512 × m 512×m 512×m 的矩阵,其中 512 512 512 是向量的维度, m m m 是向量的个数,用符号可以这样表示,其中 X \boldsymbol{X} X 表示矩阵: X ∈ R 512 × m \boldsymbol{X} \in \mathbb{R}^{512×m} XR512×m
    在这里插入图片描述
  • 这样我们就可以把Block堆叠起来,Block之间不共享参数,Transformer里面一共堆叠了6个Block
    在这里插入图片描述

Blocked Attention Layers

  • decoder需要先堆叠一个Self-Attention层:
    在这里插入图片描述
  • 之后堆叠一个多头注意力层
    在这里插入图片描述
  • 最后对所有的输出都映射到 s s s 向量:
    在这里插入图片描述
  • 对于decoder的一个Block是这样的:其中需要输入两个序列,都是512维的向量,长度分别为 m m m t t t ,如果是英译德的话,那么 m m m 就是英语单词的数量, t t t 就是已经生成的德语单词的数量:
    在这里插入图片描述
  • 堆叠decoder层:图的左边是刚刚堆叠的encoder层,右边是堆叠的decoder层,其中decoder层接受两个输入,一个输入来自encoder,一个输入来自 X X X 或自身decoder的输出,最后输出和输入 X X X 的维度一样
    在这里插入图片描述
  • 与RNN的Seq2Seq模型的输入大小完全一致,所以以前RNN的Seq2Seq模型能做的,Transformer也能做

Summary

把单头多个attention堆叠起来就能得到多头注意力,其中参数是独立的,不共享:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述在这里插入图片描述


http://www.kler.cn/a/286308.html

相关文章:

  • 具身智能体空间感知基础!ROBOSPATIAL:评测并增强2D和3D视觉语言模型空间理解水平
  • 我的AI工具箱Tauri+Django内容生产介绍和使用
  • 360嵌入式开发面试题及参考答案
  • 996引擎 - NPC-添加NPC引擎自带形象
  • 我的求职面经:(2)C++中空指针请使用nullptr不要使用NULL
  • DRF开发避坑指南01
  • Java智慧社区全能平台集成跑腿家政及本地生活服务商城系统小程序源码
  • MySQL事务处理详解:实现数据一致性与隔离性的艺术
  • 【分层强化学习】Option Critic 的 CartPole-v1 的简单实例
  • MATLAB 地面点构建三角网(83)
  • 事务代码中加synchronized锁引发的bug
  • 5.图论.题目2
  • MySQL索引分类
  • 23. 如何使用Collections.synchronizedList()方法来创建线程安全的集合?有哪些注意事项?
  • 浅析JavaScript 堆内存及其通过 Chrome DevTools 捕获堆快照的方法
  • SQL 注入之 Oracle 注入
  • springboot在线办公小程序论文源码调试讲解
  • 学习日志8.30--防火墙NAT
  • 【awk 】如何将一个文件按照同名字段进行合并?
  • 【MySQL进阶】索引性能分析
  • 解决reCaptcha v2 Invisible:识别和参数
  • 使用MySQL划分收货地址后将数据添加到原表中
  • MySQL:多表查询
  • python网络爬虫(三)——爬虫攻防
  • Question mutiple pdf‘s using openai, pinecone, langchain
  • [pytorch] --- pytorch基础之transforms