(笔记)李宏毅机器学习——自注意力,多头自注意力

自注意力Self-attention

处理vactor sequence,考虑的是整个sequence的信息,并且输入多少个向量得到多少个label:

(笔记)李宏毅机器学习——自注意力,多头自注意力_第1张图片

首先是输入向量之间的相关度计算,视频中提到的方法如上,W是训练出来的矩阵。

(笔记)李宏毅机器学习——自注意力,多头自注意力_第2张图片

用上述方法计算出q,k值,从而整个输入序列向量与a1之间的相似度α。

(笔记)李宏毅机器学习——自注意力,多头自注意力_第3张图片

注意此处,输入向量a1也和自己计算相关度。得到输入向量之间的相关度后,使用一个sofmax进行了归一化处理得到注意力权重α,此处不使用softmax也可以,可以尝试使用其他激活函数看看效果。

(笔记)李宏毅机器学习——自注意力,多头自注意力_第4张图片

为了抽取sequence中重要的部分,再计算一个v值如图。v值和注意力权重α做乘法,求和得到b1,当与一个向量之间的α越大,得到的b1就越接近该向量的v值。

(笔记)李宏毅机器学习——自注意力,多头自注意力_第5张图片

b1-b4是同时生成的。

(笔记)李宏毅机器学习——自注意力,多头自注意力_第6张图片

从矩阵的角度理解Q,K,V生成过程。

(笔记)李宏毅机器学习——自注意力,多头自注意力_第7张图片

从矩阵角度理解注意力权重α的生成过程。

(笔记)李宏毅机器学习——自注意力,多头自注意力_第8张图片

矩阵角度理解self-ATT输出b1-b4过程。

多头自注意力 Multi-head self-attention

使用多个Q值,不同的Q值负责不同方面的相关度,一个Q值是一个head。多个Q值,对应有多个K值、V值。

(笔记)李宏毅机器学习——自注意力,多头自注意力_第9张图片

每个head的值由其对应的Q\K\V值产生,计算过程同self-att。

你可能感兴趣的:(深度学习,机器学习)