学习笔记-----Self-Attention自注意力机制

学习来源:全网最通俗易懂的 Self-Attention自注意力机制 讲解_self attention机制_越来越胖的GuanRunwei的博客-CSDN博客

变形金刚——Transformer入门刨析详解_哪有灬平凡?的博客-CSDN博客

Attention Function:

                                              

一、Softmax部分 

                

是一个矩阵乘以它的转置,矩阵本身的运算是第一行乘第一列,第一行乘第二列......,第二行乘第一列,第二行乘第二列......,......。因此,一个矩阵乘以它的转置矩阵时,转置后的第一列就是转置前的第一行,这就是在计算第一个向量与自己的内积,第一行与第二个行向量的内积,第一个行向量与第三个行向量的内积

内积:

 

 内积的含义就是一个向量在另一个向量上的投影,当两个相同向量做内积时,即\vec{a}\cdot \vec{b}cos \theta,即|a||b|\cos \theta,即|a||b|\cdot 1,即|a||a|,也就等于|a|的平方。

假设 \large X = [x_1^T; x_2^T; x_3^T],其中\large X为一个二维矩阵,\large x_i^T为一个行向量(很多教材默认是列向量,但为了方便读者理解,我还是写成行向量)。对应下面的图,\large x_1^T对应“早”字。

 下图模拟了一个运算过程,即X乘X的转置。

 

 投影值越大表示两个向量的相关性越高。

矩阵\large XX^T是一个方阵,我们以行向量的角度理解,里面保存了每个向量和自己与其他向量进行内积运算的结果。

至此,我们理解了公式\large Softmax(XX^T)X中,\large XX^T的意义。我们进一步,Softmax的意义何在呢?请看下图:

Softmax的含义就是归一化

 Softmax之后,这些数字的和为1,attention的核心机制就是加权求和,而权重就是这些归一化之后的数字,“早”这个字的权重分配0.4,“上”分配0.4,“好”分配0.2。

二、

 \large Softmax(XX^T)X的一个行向量举例。这个行向量与\large X的一个列向量相乘,得到一个新的行向量,且这个行向量与x的维度相同。在新的向量中,每一个维度的数值都是由三个词向量在这一维度的数值加权求和得来的,这个新的行向量就是"早"字词向量经过注意力机制加权求和之后的表示。

三、Q  K  V矩阵 

许多文章里所谓的Q K V矩阵、查询向量之类的字眼,其来源都是\large X与矩阵的乘积,本质上都是\large X的线性变换。那么为什么不直接使用\large X而要对其进行线性变换呢?

当然是为了提升模型的拟合能力,矩阵\large W都是可以训练的,起到一个缓冲的效果。

四、\large \sqrt{d_k}的意义

 假设 \large Q, K 都服从均值为0,方差为1的标准高斯分布,那么\large A^T = Q^TK中元素的均值为0,方差为d。当d变得很大时,中的元素的方差也会变得很大,如果中的元素方差很大,那么的分布会趋于陡峭(分布方差大,分布集中在绝对值大的区域)。总结一下就是的分布会和d有关。因此中每个元素除以后,方差又变为了1。这使得的分布的陡峭程度和d成功解耦,从而使得Transformer在训练过程中的梯度值保持稳定。

五、self attention模型(从链接二的原文中截取)

在李宏毅的2020机器学习笔记中,有一个关于注意力机制(Attention)的部分。这部分内容主要介绍了生成模型(Generation)、注意力(Attention)、生成的技巧(Tips for Generation)以及指针网络(Pointer Network)。在生成模型中,主要讲述了如何生成一个有结构的对象。接下来介绍了注意力机制,包括一些有趣的技术,比如图片生成句子等。在生成的技巧部分,提到了一些新的技术以及可能遇到的问题和偏差,并给出了相应的解决方案。最后,稍微提到了强化学习。其中还提到了在输出"machine"这个单词时,只需要关注"机器"这个部分,而不必考虑输入中的"学习"这个部分。这样可以得到更好的结果。另外,还提到了关于产生"ei"的方法,其中有研究应用了连续动态模型自注意力(Self-attention)来学习位置编码的方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [2020李宏毅机器学习笔记-Condition Generation by RNN&Attention](https://blog.csdn.net/zn961018/article/details/117593813)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [李宏毅机器学习学习笔记Self-attention](https://blog.csdn.net/weixin_44455827/article/details/128094176)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值