【李宏毅机器学习】注意力机制

输出

我们会遇到不同的任务,针对输出的不一样,我们对任务进行划分

给多少输出多少

【李宏毅机器学习】注意力机制_第1张图片

给一堆向量,输出一个label,比如说情感分析

【李宏毅机器学习】注意力机制_第2张图片

还有一种任务是由机器决定的要输出多少个label,seq2seq的任务就是这种,翻译也是

【李宏毅机器学习】注意力机制_第3张图片

Sequence Labeling

如果要考虑时序信息,每次可以选取前后固定长度的信息输入到fc层,但是运算量很大需要的参数也很多

新的方法能考虑整个input sequence

【李宏毅机器学习】注意力机制_第4张图片

fc专注处理某一个位置的信息,self-attention来考虑整个sequence的信息

模型细节

【李宏毅机器学习】注意力机制_第5张图片

每个b都是考虑整个sequence来产生的

那么是如何产生的?

我们需要找到一些相关的向量来帮助决定 a 1 a^1 a1,用 α \alpha α来表示相关的重要性

【李宏毅机器学习】注意力机制_第6张图片

那么怎么决定 α \alpha α呢,有两种方式

【李宏毅机器学习】注意力机制_第7张图片

a 1 a^1 a1分别与其他的向量分别进行计算相关性

【李宏毅机器学习】注意力机制_第8张图片

一般而言,也会跟自己计算相关性

【李宏毅机器学习】注意力机制_第9张图片

然后接一个softmax

【李宏毅机器学习】注意力机制_第10张图片

根据attention的分数,也就是计算出来的每一个 α \alpha α值来抽取重要的信息

【李宏毅机器学习】注意力机制_第11张图片

转换为矩阵运算形式:

【李宏毅机器学习】注意力机制_第12张图片

【李宏毅机器学习】注意力机制_第13张图片

【李宏毅机器学习】注意力机制_第14张图片

【李宏毅机器学习】注意力机制_第15张图片

多头注意力

多头注意力是自注意力的一个进阶的版本

多头注意力的关键在于Q是有不同的多个进行询问的,这样带来的好处与卷积也比较类似,我们采用不同的Q来负责不同种类的相关性

计算方式上,与自注意力机制比较类似,每个计算过程中 只关注对应的(比如计算1的时候只把1拿出来)

【李宏毅机器学习】注意力机制_第16张图片

【李宏毅机器学习】注意力机制_第17张图片

位置编码

有时位置的距离也比较重要,我们需要存储位置的信息

【李宏毅机器学习】注意力机制_第18张图片

For Image

横着来看做一个vector,众多vector作为输入,输入进model

【李宏毅机器学习】注意力机制_第19张图片

你可能感兴趣的:(动手学习深度学习,机器学习,人工智能)