菜鸟笔记
提升您的技术认知

自注意力机制(self-ag真人游戏

b站视频-李宏毅机器学习2021-自注意力机制

1.要解决的问题

当把输入看成一个向量,输出是数值或者类别。但是如果遇到更复杂的问题呢?

假设输入是多个向量,而且数目不固定,要怎么处理呢?

总结-自注意力机制要解决的问题是:当神经网络的输入是多个大小不一样的向量,并且可能因为不同向量之间有一定的关系,而在训练时却无法充分发挥这些关系,导致模型训练结果较差。

(1)输入vector set as input —向量集输入举例

例1 文字处理

假设输入是一句英语,显然每个单词的长短不一,并且每个词汇对应一个向量,所以输入是多个长短不一的向量。

如何将词汇表示成向量?

如下图所示,第一种方式可以利用one-hot encoding,但是这种方式下每一个词之间没有关系。第二种方式是word enbedding,很显然这种方式下类别相同的词聚集在一起。

共同点:一个词对应一个向量,即一句话对应一个向量集。

例2 一段声音也可以是一个向量集

(2)那么输出是什么

三种可能性

  • 每一个向量都有一个标签

举例 

  • 一整个向量集的输入对应一个标签

 

举例

  • 机器自己决定输出标签的个数 

 

2、引出自注意力机制

主要讲的是上述第一种情况,每一个输入向量对应一个标签,这种情况又叫做sequence labeling

问题1:前提-该句中有两个saw怎么判断它们的词性。引出有没有可能让fc考虑上下文?

答:fc可以考虑一个window

问题2:如果某个任务需要考虑整个序列?

答:如果让一个window包括整个序列,但是这会让fc参数非常多,变得很复杂。

 这时,自注意力机制应运而生。可以考虑一整个序列

3、怎么运作(即怎么产生b1)

1、根据a1找到跟它相关的,每一个向量跟a1之间的关联程度用α来表示。

怎么计算α呢--常用方法dot-product

两个向量作为输入,直接输出α,具体是输入的两个向量分别乘不同的矩阵,得到q,k,然后进行点乘即可得到α

 

 怎么套用到self-attention呢

 计算出a1和每一个向量的关联性之后,别忘了计算和自己的关联性。要做一个softmax,也可以用别的函数,比如relu

 得到α‘(1,1)这些之后,要根据α‘来抽取重要的信息

怎么抽取?每一个向量乘以一个新的w(v)得到新的向量.......。

 以此类推可以得到b2/b3/b4,要注意的是b1到b4不是依次产生的,是同时计算得到

  

网站地图