动手学习深度学习(22)注意力机制(attention pooling)

茴香豆 Lv5

卷积、全连接、池化层都只考虑不随意线索

注意力机制则显示的考虑随意线索

  • 随意线索被称之为查询(query)
  • 每个输入是一个值(value)和不随意线索(key)的对
  • 通过注意力池化层来有偏向性的选择某些输入

非参注意力池化层(非参数注意力汇聚)

  • 给定数据 (x_i,y_i), i = 1,...,n

  • 平均池化是最简单的方案: f(x) = \frac{1}{n} \sum_iy_i

  • 更好的方案是60年代提出来的Nadaraya-Watson核回归

    f(x) = \sum_{i=1}^{n} \frac{K(x-x_i)}{\sum_{j=1}^{n}K(x-x_j)}y_i

Nadaraya-Watson核回归

使用高斯核 K(u) = \frac{1}{\sqrt{2\pi}}exp(-\frac{u^2}{2})

那么有

f(x) = \sum_{i=1}^{n}\frac{exp(-\frac{1}{2}(x-x_i)^2)}{\sum_{j=1}^{n}exp(-\frac{1}{2}(x-x_j)^2)}y_i

= \sum_{i=1}^{n}softmax(-\frac{1}{2}(x-x_i)^2)y_i

参数化的注意力机制

  • 在之前的基础上引入可以学习的 w

f(x) = \sum_{i=1}^{n}softmax(-\frac{1}{2}((x-x_i)w)^2)y_i

注意力评分函数

  • 高斯核函数部分可以视为注意力评分函数,简称评分函数(scoring function),然后把这个函数的输出结果输入到softmax函数中运算。
  • 通过上述步骤。将得到与key对应的value的概率分布(即注意力权重)

两种常见的分数计算:(重要)

  • 将query和key合并起来进入一个单输出隐藏层的MLP(加性)
  • 直接将query和key做内积(点积)
  • Title: 动手学习深度学习(22)注意力机制(attention pooling)
  • Author: 茴香豆
  • Created at : 2022-12-15 13:19:28
  • Updated at : 2023-02-15 19:12:10
  • Link: https://hxiangdou.github.io/2022/12/15/DL_22/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments