神经网络 自注意力机制 Q K V 理解 self attention

自注意力机制,本句单词和本句其他单词的关系

公式                     

  为了简单假定       Q矩阵 K矩阵一样

                    Q                                                   K转置                                      Q*K转置

可以这么理解 Q 与K转置相乘,就是各个向量的内积,再除以内积的QK的模

cos=(ab的内积)/(|a||b|) ,实际是各向量的夹角。

d_{k}=3*3 K的维度的平方,3个单词。

softmax应用在每行计算方法为e^{14}/(e^{14}+e^{10}+e^{9}

首先变成单位向量,模为1,内积就是夹角的余弦。图中明显,never向量 与 never向量的余弦值为1,向量完全共线。

知乎看到图片觉得不错。但是总觉得有问题。应该执行单位化,不然无法计算出相关性,

我的源码如下:

#-------------------------------------------

import torch
import torch.nn.functional as F 

t11=torch.tensor([[1.0,3,2],[1,1,3],[1,2,1]])  #有3个向量

t22=torch.tensor([[1.0,3,2],[1,1,3],[1,2,1]])

t11=F.normalize(t11) #默认dim=1  按行向量单位化
t22=F.normalize(t22)

print(torch.mm(t11 , t22.T))  #mm = matrix multi  矩阵乘法

#------------------------------------------------------------------------

执行结果为:

tensor([[1.0000, 0.8058, 0.9820],   
        [0.8058, 1.0000, 0.7385],
        [0.9820, 0.7385, 1.0000]])

# 红色的1.00 表示 t11 第一个向量 t22第一个向量完全相关,本质是向量夹角为0,内积为1(都是单位向量)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值