【attention,d_k=64, d_model=256, d_v=64,】2021-03-22

结论

#1.在attention中q 和 k 的维度相同

在计算a1,i的时候

q1和ki做点乘积

模型中计算attention用的就是

Scaled Dot-Product Attention


#2  d_k=64 在计算attention的时候注意 d_k=64最好要能开根号,16,25,36,49,64,81(在模型训练的时候梯度会更加明显)

为什么要除以根号d(点积,会随着维度的增加而增加,用根号d来平衡)




#3 softmax

当 dim=0 时,是对每一维度相同位置的数值进行softmax运算;

当 dim=1 时,是对某一维度的列进行softmax运算;

当 dim=2 或 -1 时,是对某一维度的行进行softmax运算;(模型中的dim=2)

a1,i      输入是256存在    8个头每个头的维度是64

计算出来的a1,i经过一个softmax(按行运算),然后乘以d_v=64






输入的维度为线性转化之后的维度,d_model=256

此处的输入向量应该是词嵌入空间里的词向量(第一层)


1.d_k=64, d_model=256, d_v=64,(k和v选取可以开根号的数值,模型训练的时候梯度会更加明显)

li

输入一个256维度的词向量,d_k=64,d_v=64,n_head 8,64*8=512 (q和k的维度相同)

query”,(8头即为64*8,q1,q2,q3,q4,q5,q6,q7,q8,8个矩阵)(q要match其他人)

“key”,(to be matched)

“value”(被提取)

1.x1*q1=wq1

2.q1对k1做attention(得到a1,1,q1,k2=a1,2)

用的是ScaledDotProductAttention

是什么向量呢?有什么用呢(有助于计算attention得分)



训练的参数是这三个权重矩阵


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容