机器学习(李宏毅)——self-Attention

发布于:2025-02-16 ⋅ 阅读:(35) ⋅ 点赞:(0)

一、前言

本文章作为学习2023年《李宏毅机器学习课程》的笔记,感谢台湾大学李宏毅教授的课程,respect!!!

二、大纲

  • 何为self-Attention?
  • 原理剖析
  • self-Attention VS CNN、RNN、GNN

三、何为self-Attention?

2014年就提出,但发扬光大是在2017年的Transformer 论文《Attention Is All You Need》。广泛应用在seq2seq模型中,这里就不得不举几个seq2seq的应用场景。

  • seq2seq(sequence to sequence)
    顾名思义就是输入是序列,输出也是序列,简言之输入是一排向量,输出是另外一排向量,例如:

在这里插入图片描述

四、原理剖析

  • 划重点:self-attention的精髓就是考虑上下文语义信息。

那如何考虑上下文语义信息呢? 对,就是计算相关性。
在这里插入图片描述
例如输入是一个句子,那就不单单考虑一个词了,而是和句子中不同位置的词语计算相关性,对应输出得分。

那如何计算相关性呢?
那就有百百中做法,现在举两种常见方法:
在这里插入图片描述
1、Dot-product
设有两个矩阵Wq和Wk,输入经过它们得到输出,再做点乘能够计算成输入的相关性a,具体这两个矩阵长啥样就是我们要训练出来的。

2、Additive
设有两个矩阵Wq和Wk,输入经过它们得到输出,然后相加并送入激活函数tanh,再经过W得到输出a。

感觉抽象的话,就只需要记住这步操作就是要把计算相关性的矩阵参数学出来,这是目的。

知道怎么计算了,那就实做一下。
在这里插入图片描述
说明: 要计算a1和a2、a3、a4的相关性,那就采用上述的dot-product方法两两计算,再送入softmax。q常称为query,k称为key。

接下来,再找一个v矩阵,可以理解v这个矩阵是输入的资讯,根据q和k内积的相关性得分来抽取资讯。
在这里插入图片描述
位置咨询(Positional Encoding)
在这里插入图片描述
位置资讯就是在输入时候加入e,是人为设置的。

以上就是self-attention的原理了。

小结
self-attention就是找三个矩阵q、k、v,前两个用于计算相关性,后一个的资讯信息。一言以蔽之就是根据相关性把资讯抽出来。优点是平行计算,加快速度。

变种(Multi-head Self-attention)

  • multi-head Self-attention
    就是q,k,v可以分成多个,相互独立进行运算
    在这里插入图片描述

五、self-Attention 对比

self-Attention VS CNN
self-attention 应用在目标检测、CNN上,CNN的感受野考虑的是周围8个像素的资讯,self-attention则计算整图并动态生成感受野,其实就是挑选与当前像素相关的像素。
在这里插入图片描述

self-Attention VS RNN
RNN一步步往下,并不是并行化,而self-attention并行给出输出,一次到位速度取胜。
在这里插入图片描述

self-Attention VS GNN
因为图有边相接,所以self-attention与哪个节点有关可以直接表达出来。
在这里插入图片描述

六、小结

至此,self-attention的技术介绍完毕,整体理解运算过程,记住q,k,v三个主要的矩阵,重点应用于seq2seq模型,尤其是现在爆红的chatGPT也是用的Transformer,而transformer的核心就是self-attention。


网站公告

今日签到

点亮在社区的每一天
去签到