标题还是得有的,Attention机制的理解

结合李宏毅老师课程记录个人对Self attention的理解。

Attention机制

个人理解注意力机制是一种特殊的全连接层,其中一共有若干个(多头)Wq,Wk,Wv三个矩阵作为注意力参数(每一个矩阵大小都是n特征维数的平方)

1 Self-attention

请添加图片描述

以a1得到b1为例讲解注意力机制:

  1. a1通过叉乘Wq得到q1,即为query
  2. 【a1, a2, a3, …】通过点乘Wk得到【k1, k2, k3, …】,即为各个ankey
  3. 【a1, a2, a3, …】通过点乘Wv得到【v1, v2, v3, …】,即为各个anvalue
  4. 将q1(即 a1的query)点乘各个kn(即an的key),通常会再经过一个SoftMax层,最终得到a’1,n(即a1对anAttention Score);
  5. 最后一步用a1的注意力分数叉各个value,求和得到b1,公式如下:
    b 1 = ∑ i α 1 , i ′ v i \boldsymbol{b}^{\mathbf{1}}=\sum_{i} \alpha_{1, i}^{\prime} \boldsymbol{v}^{\boldsymbol{i}} b1=iα1,ivi

2 Multi-head Self-attention

::: tip
多头注意力机制其实和注意力机制相似,通过设定多个Wq,Wk,Wv矩阵以捕获不同的关系(学习不同类型的注意力),因此最终可以得到多个bi,可以通过一个新的矩阵W0将【bi,1,bi,2,bi,3, …】整合成一个包含多个注意力信息的输出bi

3 Positional Encoding

Positional Encoding:https://arxiv.org/abs/2003.09229

Transformer:https://arxiv.org/abs/1706.03762

BERT:https://arxiv.org/abs/1810.04805

4 Cross attention

Cross attention同时也是Transformer中decoder所采用的架构,一个序列作为输入的Q,定义了输出的序列长度,另一个序列提供输入的K&V。

4 补充:SoftMax 以及 Cross Entropy

Soft:并非强硬地输出最大值

Max:求最大值

通过SoftMax不再唯一的确定某一个最大值,而是为每个输出分类的结果都赋予一个概率值,表示属于每个类别的可能性,计算公式如下:

其中为第i个节点的输出值,C为输出节点的个数,即分类的类别个数。通过Softmax函数就可以将多分类的输出值转换为范围在[0, 1]和为1的概率分布。

$$
\operatorname{Softmax}\left(z_{i}\right)=\frac{e{z_{i}}}{\sum_{c=1}{C} e^{e_{c}}},

$$

当使用Softmax函数作为输出节点的激活函数的时候,一般使用交叉熵作为损失函数。

L = − ∑ c = 1 C y c log ⁡ ( p c ) L=-\sum_{c=1}^{C} y_{c} \log \left(p_{c}\right) L=c=1Cyclog(pc)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值