首页 > 其他分享 >注意力机制及Transformer概述

注意力机制及Transformer概述

时间:2024-11-27 16:58:20浏览次数:10  
标签:mathbb Transformer right mathbf text textbf 概述 Softmax 注意力

1.   \textbf{1. } 1. 注意力机制

1️⃣生物学中的注意力提示

类型含义基础
非自主提示( Bottom-up \text{Bottom-up} Bottom-up)自然而然地注意到环境中显眼的物体物体的突出性
自主性提示( Top-down \text{Top-down} Top-down)由自我意识主关推动的对于某事物的注意自主性提示

2️⃣注意力机制的要素

  1. Query/Key/Value \text{Query/Key/Value} Query/Key/Value架构
    image-20241111223857435

    Item \textbf{Item} Item相当于含义
    Value \text{Value} Value感官输入实际输入的信息(感官)
    Key \text{Key} Key非自主提示每个输入感官都有的非自住性提示 ( Value ↔ 一一对应 Key ) (\text{Value}\xleftrightarrow{一一对应}\text{Key}) (Value一一对应 ​Key)
    Query \text{Query} Query自主性提示引导注意力机制聚焦于最相关的感官输入
  2. 注意力汇聚函数: f ( x ) = ∑ i = 1 n α ( x , x i ) × y i \displaystyle{}f(x)\text{=}\sum_{i=1}^n \alpha(x,x_i) \text{×} y_i f(x)=i=1∑n​α(x,xi​)×yi​

    汇聚示例输出注意力评分函数
    平均汇聚 f ( x ) = ∑ i = 1 n 1 n y i f(x)\text{=}\displaystyle{} \sum_{i=1}^n \cfrac{1}{n}y_i f(x)=i=1∑n​n1​yi​ N/A \text{N/A} N/A
    非参数汇聚 f ( x ) = ∑ i = 1 n Softmax ( − 1 2 ( x − x i ) 2 ) y i f(x)\text{=}\displaystyle{}\sum_{i=1}^n \text{Softmax}\left(-\cfrac{1}{2}\left(x-x_i\right)^2 \right) y_i f(x)=i=1∑n​Softmax(−21​(x−xi​)2)yi​ − 1 2 ( x − x i ) 2 -\cfrac{1}{2}\left(x-x_i\right)^2 −21​(x−xi​)2
    参数汇聚 f ( x ) = ∑ i = 1 n Softmax ( − 1 2 ( ( x − x i ) w ) 2 ) y i f(x)\text{=}\displaystyle{}\sum_{i=1}^n \text{Softmax}\left(-\cfrac{1}{2}\left(\left(x-x_i\right) w\right)^2\right) y_i f(x)=i=1∑n​Softmax(−21​((x−xi​)w)2)yi​ − 1 2 ( ( x − x i ) w ) 2 -\cfrac{1}{2}\left(\left(x-x_i\right) w\right)^2 −21​((x−xi​)w)2
    • x / k i x/k_i x/ki​接近 →Softmax \text{→}\text{Softmax} →Softmax(权)值变大 → v i \text{→}v_i →vi​对结果贡献变大(获得更多注意力)

3️⃣注意力评分函数:对于 q ∈ R q / k i ∈ R k / v i ∈ R v \mathbf{q} \text{∈} \mathbb{R}^q/\mathbf{k}_i \text{∈} \mathbb{R}^k/\mathbf{v}_i \text{∈} \mathbb{R}^v q∈Rq/ki​∈Rk/vi​∈Rv有
image-20241112005116348

  1. 数学模型:
    • 评分函数: a ( q , k i ) ∈ R a(\mathbf{q}, \mathbf{k}_i)\text{∈} \mathbb{R} a(q,ki​)∈R
    • 权值函数: α ( q , k i ) = Softmax ⁡ ( a ( q , k i ) ) = e a ( q , k i ) ∑ j = 1 n e a ( q , k i ) ∈ R \displaystyle{}\alpha\left(\mathbf{q}, \mathbf{k}_i\right)\text{=}\operatorname{Softmax}\left(a\left(\mathbf{q}, \mathbf{k}_i\right)\right)\text{=}\cfrac{e^{a(\mathbf{q}, \mathbf{k}_i)}}{\displaystyle{}\sum_{j\text{=}1}^n e^{a(\mathbf{q}, \mathbf{k}_i)}} \text{∈} \mathbb{R} α(q,ki​)=Softmax(a(q,ki​))=j=1∑n​ea(q,ki​)ea(q,ki​)​∈R,其中 ∑ i = 1 n α ( q , k i ) = 1 \displaystyle{}\sum_{i=1}^{n}\alpha\left(\mathbf{q}, \mathbf{k}_i\right)\text{=}1 i=1∑n​α(q,ki​)=1
    • 汇聚函数: f ( q , ( k 1 , v 1 ) , … , ( k n , v n ) ) = ∑ i = 1 n α ( q , k i ) v i ∈ R v \displaystyle{}f\left(\mathbf{q},\left(\mathbf{k}_1, \mathbf{v}_1\right), \ldots,\left(\mathbf{k}_n, \mathbf{v}_n\right)\right)\text{=}\sum_{i\text{=}1}^n \alpha\left(\mathbf{q}, \mathbf{k}_i\right) \mathbf{v}_i \text{∈} \mathbb{R}^v f(q,(k1​,v1​),…,(kn​,vn​))=i=1∑n​α(q,ki​)vi​∈Rv
  2. 关于 Softmax \text{Softmax} Softmax:
    • 本质:本质上得到的是概率分布 → 与 v i 相乘 v i \xrightarrow{与\textbf{v}_i相乘}\textbf{v}_i 与vi​相乘 ​vi​的加权平均
    • 掩码:由于 Softmax(-∞)=0 \text{Softmax(-∞)=0} Softmax(-∞)=0,故可 Softmax ( A ) → A → 部分位设为-∞ 忽略不必要元素 ( 如无用词元 ) A ′ Softmax ( A ′ ) \text{Softmax}(\textbf{A})\xrightarrow{\large\textbf{A}\xrightarrow[部分位设为\text{-∞}]{忽略不必要元素(如无用词元)}\textbf{A}^{\prime}}\text{Softmax}(\textbf{A}^{\prime}) Softmax(A)A忽略不必要元素(如无用词元) 部分位设为-∞​A′ ​Softmax(A′)
  3. 缩放点积:可高效计算的评分函数
    • 单查询:对 q ∈ R d \mathbf{q}\text{∈}\mathbb{R}^d q∈Rd和 k ∈ R d \mathbf{k}\text{∈}\mathbb{R}^d k∈Rd(注意二者维度要相同),有 a ( q , k ) = q ⊤ k d ∈ R a(\mathbf{q}, \mathbf{k})\text{=}\cfrac{\mathbf{q}^{\top} \mathbf{k} }{\sqrt{d}}\text{∈} \mathbb{R} a(q,k)=d ​q⊤k​∈R
    • 批查询:对 n n n个查询 Q ∈ R n × d \mathbf{Q}\text{∈}\mathbb{R}^{n\text{×}d} Q∈Rn×d和 m m m个键值对 { K ∈ R m × d V ∈ R m × v → \begin{cases}\mathbf{K}\text{∈}\mathbb{R}^{m\text{×}d}\\\\\mathbf{V}\text{∈}\mathbb{R}^{m\text{×}v}\end{cases}\text{→} ⎩ ⎧​K∈Rm×dV∈Rm×v​→有 Softmax ( Q K ⊤ d ) V ∈ R n × v \text{Softmax}\left(\cfrac{\mathbf{Q K}^{\top}}{\sqrt{d}}\right) \mathbf{V} \text{∈} \mathbb{R}^{n \text{×} v} Softmax(d ​QK⊤​)V∈Rn×v

2.   Transformer \textbf{2. Transformer} 2. Transformer注意力: 编码 → 输入 \xrightarrow{输入} 输入 ​自注意力 → 组合 \xrightarrow{组合} 组合 ​多头

1️⃣位置编码

  1. 流程:对含 n n n个词元的 d d d维嵌入 X ∈ R n × d → 位置嵌入矩阵 P ∈ R n × d X + P \textbf{X}\text{∈}\mathbb{R}^{n\text{×}d}\xrightarrow[位置嵌入矩阵]{\textbf{P}\text{∈}\mathbb{R}^{n\text{×}d}}\textbf{X}\text{+}\textbf{P} X∈Rn×dP∈Rn×d 位置嵌入矩阵​X+P,且 { p i , 2 j = sin ⁡ ( i 1000 0 2 j / d ) p i , 2 j + 1 = cos ⁡ ( i 1000 0 2 j / d ) \begin{cases}p_{i, 2 j}\text{=}\sin \left(\cfrac{i}{10000^{2 j / d}}\right)\\\\p_{i, 2 j+1}\text{=}\cos \left(\cfrac{i}{10000^{2 j / d}}\right)\end{cases} ⎩ ⎧​pi,2j​=sin(100002j/di​)pi,2j+1​=cos(100002j/di​)​
  2. 意义:捕获绝对位置信息 + \text{+} +学习相对位置信息

2️⃣自注意力机制

  1. 自注意力结构: QKV \textbf{QKV} QKV皆由词嵌入得到
    image-20241112154934891

    • 词嵌入:输入序列 X ∈ R n × d x → ( 位置 ) 嵌入 A ∈ R n × d a \textbf{X}\text{∈}\mathbb{R}^{n\text{×}d_x}\xrightarrow{(位置)嵌入}\textbf{A}\text{∈}\mathbb{R}^{n\text{×}d_a} X∈Rn×dx​(位置)嵌入 ​A∈Rn×da​
    • 线性变换: [ Q ∈ R n × d q K ∈ R n × d k V ∈ R n × d v ] = [ A W q A W k A W v ] 其中 { W q ∈ R d a × d q W k ∈ R d a × d k W v ∈ R d a × d v →皆为可学习参数 \begin{bmatrix} \textbf{Q}\text{∈}\mathbb{R}^{n\text{×}d_q}\\\textbf{K}\text{∈}\mathbb{R}^{n\text{×}d_k}\\\textbf{V}\text{∈}\mathbb{R}^{n\text{×}d_v} \end{bmatrix}\text{=}\begin{bmatrix} \textbf{A}\textbf{W}^{q}\\\textbf{A}\textbf{W}^{k}\\\textbf{A}\textbf{W}^{v} \end{bmatrix}其中\begin{cases}\textbf{W}^{q}\text{∈}\mathbb{R}^{d_a\text{×}d_q}\\\textbf{W}^{k}\text{∈}\mathbb{R}^{d_a\text{×}d_k}\\\textbf{W}^{v}\text{∈}\mathbb{R}^{d_a\text{×}d_v}\end{cases}\text{→}皆为可学习参数 ​Q∈Rn×dq​K∈Rn×dk​V∈Rn×dv​​ ​= ​AWqAWkAWv​ ​其中⎩ ⎧​Wq∈Rda​×dq​Wk∈Rda​×dk​Wv∈Rda​×dv​​→皆为可学习参数
    • 计算注意力:注意力分布 A =Softmax ( Q K ⊤ d k ) ∈ R n × n → 加权求和 与 V 线性变换 \mathcal{A}\text{=}\text{Softmax}\left(\cfrac{\mathbf{Q K}^{\top}}{\sqrt{d_k}}\right)\text{∈} \mathbb{R}^{n \text{×} n}\xrightarrow[加权求和]{与\textbf{V}线性变换} A=Softmax(dk​ ​QK⊤​)∈Rn×n与V线性变换 加权求和​输出 A ^ = A V ∈ R n × d v \hat{\mathcal{A}}\text{=}\mathcal{A}\mathbf{V} \text{∈} \mathbb{R}^{n \text{×} d_v} A^=AV∈Rn×dv​
  2. 比较: CNN/RNN/ \text{CNN/RNN/} CNN/RNN/自注意力机制

    模型结构备注
    CNN \text{CNN} CNNimage-20241112161734677一次只能感知到一个卷积核大小范围(此处为 3 \text{3} 3)
    RNN \text{RNN} RNNimage-20241112161742174对于输入序列是顺序重复(串行)处理,无法并行
    自注意力image-20241112161749492每个词可感知到其它任何词 → \text{→} →可并行处理

3️⃣多头注意力机制

  1. 结构:多个注意力头连结然后线性变换
    image-20241112031935327
    • 头汇聚:输出 ← 全连接层 W o [ h 1 ⋮ h h ] ← 线性变换 ( 连结 ) 可学习参数 W o ∈ R p o h i = f ( W i ( q ) q , W i ( k ) k , W i ( v ) v ) ∈ R p v \xleftarrow{全连接层}\mathbf{W}_o\left[\begin{array}{c} \mathbf{h}_1 \\ \vdots \\ \mathbf{h}_h \end{array}\right]\xleftarrow[线性变换(连结)]{可学习参数\mathbf{W}_o\text{∈}\mathbb{R}^{p_o}}\mathbf{h}_i\text{=}f\left(\mathbf{W}_i^{(q)} \mathbf{q}, \mathbf{W}_i^{(k)} \mathbf{k}, \mathbf{W}_i^{(v)} \mathbf{v}\right)\text{∈}\mathbb{R}^{p_v} 全连接层 ​Wo​ ​h1​⋮hh​​ ​可学习参数Wo​∈Rpo​ 线性变换(连结)​hi​=f(Wi(q)​q,Wi(k)​k,Wi(v)​v)∈Rpv​
    • 注意头: h i = f ( W i ( q ) q , W i ( k ) k , W i ( v ) v ) ∈ R p v ← 汇聚函数 f { W i ( q ) q ← 全连接层 可学习参数 W i ( q ) ∈ R p q × d q q W i ( k ) k ← 全连接层 可学习参数 W i ( k ) ∈ R p k × d k k W i ( v ) v ← 全连接层 可学习参数 W i ( v ) ∈ R p v × d v v \mathbf{h}_i\text{=}f\left(\mathbf{W}_i^{(q)} \mathbf{q}, \mathbf{W}_i^{(k)} \mathbf{k}, \mathbf{W}_i^{(v)} \mathbf{v}\right)\text{∈}\mathbb{R}^{p_v}\xleftarrow{汇聚函数f}\begin{cases} \mathbf{W}_i^{(q)}\mathbf{q}\xleftarrow[全连接层]{可学习参数\mathbf{W}_i^{(q)}\text{∈}\mathbb{R}^{p_q\text{×}d_q}}\mathbf{q}\\\\ \mathbf{W}_i^{(k)}\mathbf{k}\xleftarrow[全连接层]{可学习参数\mathbf{W}_i^{(k)}\text{∈}\mathbb{R}^{p_k\text{×}d_k}}\mathbf{k}\\\\ \mathbf{W}_i^{(v)}\mathbf{v}\xleftarrow[全连接层]{可学习参数\mathbf{W}_i^{(v)}\text{∈}\mathbb{R}^{p_v\text{×}d_v}}\mathbf{v} \end{cases} hi​=f(Wi(q)​q,Wi(k)​k,Wi(v)​v)∈Rpv​汇聚函数f ​⎩ ⎧​Wi(q)​q可学习参数Wi(q)​∈Rpq​×dq​ 全连接层​qWi(k)​k可学习参数Wi(k)​∈Rpk​×dk​ 全连接层​kWi(v)​v可学习参数Wi(v)​∈Rpv​×dv​ 全连接层​v​
  2. 意义:每个头关注输入的不同部分 → \text{→} →表示比简单加权平均值更复杂的函数

3.   Transformer \textbf{3. }\textbf{Transformer} 3. Transformer架构

transformer

1️⃣编码器与解码器

  1. 编码器:
    • 层结构: n × n\text{×} n×(多头自注意力层 + \text{+} +前馈网络层)
    • 残差连接: Multihead( X ) / Forward( X ) + X → \text{Multihead(}\textbf{X})/\text{Forward(}\textbf{X})\text{+}\textbf{X}\text{→} Multihead(X)/Forward(X)+X→输入 Add-Norm \text{Add-Norm} Add-Norm,目的在于防止梯度消失
  2. 解码器:
    • 层结构: n × n\text{×} n×(多头自注意力层 + \text{+} +编码解码注意力中间层 + \text{+} +前馈网络层)
    • 中间层: Q \textbf{Q} Q来自解码层, KV \textbf{KV} KV来自编码层
    • 掩码:使得解码器只能考虑所在位置之前的位置,从而实现了自回归

2️⃣其它结构

  1. 基于位置的前馈网络:就是一个两层的 MLP \text{MLP} MLP,将词元位置的隐藏表示 → 转化 \xrightarrow{转化} 转化 ​同维度新向量
  2. 加法和规范化组件:完成残差连接与层归一化(均值 =0 \text{=0} =0/方差 =1 \text{=1} =1)

标签:mathbb,Transformer,right,mathbf,text,textbf,概述,Softmax,注意力
From: https://blog.csdn.net/qq_64091900/article/details/144035750

相关文章

  • transformer口语化解析
    Transformer是一种基于自注意力机制的深度神经网络模型,常用于处理序列到序列的任务,例如机器翻译、文本摘要、问答系统等。它由Encoder和Decoder两个主要部分组成,每个部分包含多个相同的Block。Transformer结构图Transformer结构importtorchimporttorch.nn......
  • (即插即用模块-Attention部分) 二十、(2021) GAA 门控轴向注意力
    文章目录1、GatedAxial-Attention2、代码实现paper:MedicalTransformer:GatedAxial-AttentionforMedicalImageSegmentationCode:https://github.com/jeya-maria-jose/Medical-Transformer1、GatedAxial-Attention论文首先分析了ViTs在训练小规模数据......
  • 深入理解注意力机制(Attention Mechanism)
            在深度学习中,“注意力机制(AttentionMechanism)”是近年来的一个重要突破。它最初被提出用于处理自然语言处理(NLP)任务,但如今已经广泛应用于计算机视觉、强化学习和其他领域。注意力机制赋予模型一种“选择性”,使其能够专注于输入数据的某些重要部分,模拟了人类注......
  • 自动驾驶之心全套首个基于Transformer的分割检测 视觉大模型视频课程
    网课学习的好处有哪些1、学生学习自主性强:资料地址https://pan.baidu.com/s/1GIsMJ9BGgjgbJCrsVNDi6A?pwd=2q49当学生在面对电脑时,会有一种自己未来掌握在自己手中的感觉,所有的操作完全由自己掌控,真正发挥学习的主观能动性。2、学生非限性学习:网络学习的学生不受年龄的限制,同......
  • DETR:End-to-End Object Detection with Transformers
    【DETR论文精读【论文精读】-哔哩哔哩】https://b23.tv/Iy9k4O2 摘要:将目标检测看作一个集合预测的问题任务:给定一张图片,预测一组框,每个框需要得到坐标信息和包含的物体类别信息,将框可以视为集合,不同图片所对应的框不同,则所对应的集合就不同去除:NMS、生成anchor创新:......
  • 计算机基础知识概述
    《计算机基础知识概述》计算机是我们日常生活和工作中不可或缺的工具,了解一些计算机的基础知识,能让我们更好地使用它。一、计算机硬件组成计算机硬件主要包括中央处理器(CPU)、内存、硬盘、输入设备和输出设备等。1.CPU是计算机的核心,负责执行指令和处理数据。2.内存用于......
  • YOLOv8改进:CSWinTransformer交叉形窗口网络在目标检测中的应用与优化【YOLOv8】
    本专栏专为AI视觉领域的爱好者和从业者打造。涵盖分类、检测、分割、追踪等多项技术,带你从入门到精通!后续更有实战项目,助你轻松应对面试挑战!立即订阅,开启你的YOLOv8之旅!专栏订阅地址:https://blog.csdn.net/mrdeam/category_12804295.html文章目录YOLOv8改进:CSWinTransf......
  • Transformer为什么能处理不同长度的句子?T:输入的文字或英文单词量决定了T的长度,当不
    目录Transformer为什么能处理不同长度的句子?T:输入的文字或英文单词量决定了T的长度,当不足最大数时间进行补空;A:词嵌入维度/多头数文心一言最大是5809汉字一、自注意力机制(Self-AttentionMechanism)二、位置编码(PositionalEncoding)QWeights,KWeights,VWeights矩......
  • 03-06、SpringCloud第六章,升级篇,升级概述与Rest微服务案例构建
    SpringCloud第六章,升级篇,升级概述与Rest微服务案例构建一、Springcloud升级之后的变动发现springcloud升级之后,原来的各个框架都有所变化。二、Rest微服务构建案例工程以订单模块做一个微服务通用案例、Consumer消费者[order]通过rest调用Provider生产者[payment]提供......
  • 深度学习——Transformer
    本文详细介绍面试过程中可能遇到的Transformer知识点。文章目录初识Transformer1.编码器-解码器架构解码器的额外结构2.自注意力机制(Self-AttentionMechanism)解码器中的注意力机制的2点特殊3.位置编码(PositionalEncoding)4.前馈神经网络(Feed-ForwardNeural......