• 【动手深度学习-笔记】注意力机制(一)注意力机制框架


    生物学中的注意力提示

    非自主性提示:
    在没有主观意识的干预下,眼睛会不自觉地注意到环境中比较突出和显眼的物体。
    比如我们自然会注意到一堆黑球中的一个白球,马路上最酷的跑车等。

    自主性提示:
    在主观意识的干预下,眼睛带有一定目的性地(可以是模糊的也可以是很具体的目的)注意环境中的某些物体。
    比如你想喝水,你就会更加关注水杯、饮水机等物体(哪怕这些东西在平时并不起眼),对电视机等其他物体的关注度就会有所减弱。

    注意力机制框架

    如果只使用非自主性提示,我们可以使用简单的参数化全连接层,甚至是非参数化的Max Pooling或者Average Pooling来实现。
    但如果要包含自主性提示,简单使用全连接或者池化就实现不了了。
    所以,“是否包含自主性提示”将注意力机制与全连接层或池化层区别开来。

    注意力机制框架包含三个部分:
    查询(query): 自主性提示信息
    键(key): 非自主性提示信息
    值(value): 感官输入
    在注意力机制的背景下,给定任何查询,注意力机制通过注意力汇聚(attention pooling) 将选择引导至感官输入,这些感官输入被称为值。
    在这里插入图片描述
    更通俗的解释,每个值都与一个键配对, 在无自主性提示信息的情况下,键自然地映射到值。而引入查询(自主性提示信息)后,系统将会考虑查询和每个键之间的关联性或者相似度(即注意力分数,后面会讲),通过注意力汇聚,引导键值形成更优的映射。
    所谓”更优的映射“具有以下特点:如果一个键越是接近给定的查询, 那么分配给这个键对应值的注意力权重就会越大, 也就”获得了更多的注意力“。

    注意力汇聚:Nadaraya-Watson 核回归

    非参数注意力汇聚

    Nadaraya和Watson提出了一个注意力汇聚的方法,根据输入的位置对输出 y i y_i yi进行加权:
    f ( x ) = ∑ i = 1 n K ( x − x i ) ∑ j = 1 n K ( x − x j ) y i , (1) f(x) = \sum_{i=1}^n \frac{K(x - x_i)}{\sum_{j=1}^n K(x - x_j)} y_i,\tag{1} f(x)=i=1nj=1nK(xxj)K(xxi)yi,(1)
    其中 K K K是核(kernel),暂且不深入讨论其细节。

    从注意力机制框架的角度,我们可以将上式重写为一个更加通用的注意力汇聚(attention pooling)公式:
    f ( x ) = ∑ i = 1 n α ( x , x i ) y i , (2) f(x) = \sum_{i=1}^n \alpha(x, x_i) y_i,\tag{2} f(x)=i=1nα(x,xi)yi,(2)
    其中 x x x是查询, ( x i , y i ) (x_i,y_i) (xi,yi)是键值对。 α ( x , x i ) \alpha(x, x_i) α(x,xi)就是注意力权重(attention weight)。

    如果我们使用的核函数为高斯核:
    K ( u ) = 1 2 π exp ⁡ ( − u 2 2 ) . (3) K(u) = \frac{1}{\sqrt{2\pi}} \exp(-\frac{u^2}{2}).\tag{3} K(u)=2π 1exp(2u2).(3)
    带入 ( 1 ) (1) (1)得到:
    f ( x ) = ∑ i = 1 n α ( x , x i ) y i = ∑ i = 1 n exp ⁡ ( − 1 2 ( x − x i ) 2 ) ∑ j = 1 n exp ⁡ ( − 1 2 ( x − x j ) 2 ) y i = ∑ i = 1 n s o f t m a x ( − 1 2 ( x − x i ) 2 ) y i . (4) f(x)=ni=1α(x,xi)yi=ni=1exp(12(xxi)2)nj=1exp(12(xxj)2)yi=ni=1softmax(12(xxi)2)yi.\tag{4} f(x)=i=1nα(x,xi)yi=i=1nj=1nexp(21(xxj)2)exp(21(xxi)2)yi=i=1nsoftmax(21(xxi)2)yi.(4)

    带参数注意力汇聚

    如果想让注意力汇聚可学习,也比较好修改,将注意力权重乘上可学习参数即可,注意和 ( 4 ) (4) (4)对比:
    f ( x ) = ∑ i = 1 n α ( x , x i ) y i = ∑ i = 1 n exp ⁡ ( − 1 2 ( ( x − x i ) w ) 2 ) ∑ j = 1 n exp ⁡ ( − 1 2 ( ( x − x j ) w ) 2 ) y i = ∑ i = 1 n s o f t m a x ( − 1 2 ( ( x − x i ) w ) 2 ) y i . (5) f(x)=ni=1α(x,xi)yi=ni=1exp(12((xxi)w)2)nj=1exp(12((xxj)w)2)yi=ni=1softmax(12((xxi)w)2)yi. \tag{5} f(x)=i=1nα(x,xi)yi=i=1nj=1nexp(21((xxj)w)2)exp(21((xxi)w)2)yi=i=1nsoftmax(21((xxi)w)2)yi.(5)

    进一步

    【动手深度学习-笔记】注意力机制(二)注意力评分函数

  • 相关阅读:
    腾讯待办将停止运营,智能待办提醒APP哪个好?
    Dockerfile定制Ubuntu的docker镜像
    【面试经典150 | 双指针】判断子序列
    .NET 8 的 green thread 异步模型被搁置了
    2024.3.11 - DAY05_JAVA高级
    监控电脑的软件叫什么丨科普小知识
    app测试定位方式
    window 添加/删除系统右键菜单项
    IDEA安装JAVA_HOME报错、启动界面卡死的解决方案
    java-异常
  • 原文地址:https://blog.csdn.net/qq_41129489/article/details/126682431