self-attention的公式为
attention(Q,K,V)=Softmax(QKdk)Vattention(Q,K,V)=Softmax( \frac{QK}{\sqrt{d_{k}}})Vattention(Q,K,V)=Softmax(dk​​QK​)V

个人理解,除以dk\sqrt{d_{k}}dk​​的原因有两点:
dkd_{k}dk​是词向量/隐藏层的维度
1、首先要除以一个数,防止输入softmax的值过大,导致偏导数趋近于0;
2、选择根号d_k是因为可以使得q*k的结果满足期望为0,方差为1的分布,类似于归一化

公式分析,首先假设q和k都是服从期望为0,方差为1的独立的随机变量。
Assume:X=qiX=q_{i}X=qi​,Y=kiY=k_{i}Y=ki​,那么:
1、E(XY)=E(X)E(Y)=0∗0=0E(XY)=E(X)E(Y)=0*0=0E(XY)=E(X)E(Y)=0∗0=0
2、D(XY)=E(X2Y2)−[E(XY)]2D(XY)=E(X^{2}Y^{2})-[E(XY)]^{2}D(XY)=E(X2Y2)−[E(XY)]2
      =E(X2)E(Y2)−[E(X)E(Y)]2=E(X^{2})E(Y^{2})-[E(X)E(Y)]^{2}=E(X2)E(Y2)−[E(X)E(Y)]2
      =E(X2−02)E(Y2−02)−[E(X)E(Y)]2=E(X^{2}-0^{2})E(Y^{2}-0^{2})-[E(X)E(Y)]^{2}=E(X2−02)E(Y2−02)−[E(X)E(Y)]2
      =E(X2−[E(X)]2)E(Y2−[E(Y)]2)−[E(X)E(Y)]2=E(X^{2}-[E(X)]^{2})E(Y^{2}-[E(Y)]^{2})-[E(X)E(Y)]^{2}=E(X2−[E(X)]2)E(Y2−[E(Y)]2)−[E(X)E(Y)]2
      =[E(X2)−[E(X)]2][E(Y2)−[E(Y)]2]−[E(X)E(Y)]2=[E(X^{2})-[E(X)]^{2}][E(Y^{2})-[E(Y)]^{2}]-[E(X)E(Y)]^{2}=[E(X2)−[E(X)]2][E(Y2)−[E(Y)]2]−[E(X)E(Y)]2
      =D(X)D(Y)−[E(X)E(Y)]2=D(X)D(Y)-[E(X)E(Y)]^{2}=D(X)D(Y)−[E(X)E(Y)]2
      =1∗1−0∗0=1*1-0*0=1∗1−0∗0
      =1=1=1
3、D(QKdk)=dk(dk)2=1D(\frac{QK}{\sqrt{d_{k}}})=\frac{d_{k}}{(\sqrt{d_{k}})^{2}}=1D(dk​​QK​)=(dk​​)2dk​​=1
需要注意的是,D(QK)=D(∑i=0dkqiki)=dk∗1=dkD(QK)=D(\sum_{i=0}^{d_{k}}q_{i}k_{i})=d_{k}*1=d_{k}D(QK)=D(∑i=0dk​​qi​ki​)=dk​∗1=dk​

self-attention为什么要除以根号d_k相关推荐

  1. 将z的第二列除以根号三MATLAB,matlab中如何用牛顿法求根号2的近似值

    如何用matlab求出图中各条直线的斜率 1.瞬时斜率:求导.方法:d(k)=(u(k)-u(k-1))/T(k);d(0)=0;其中d就是瞬时斜率2.平均斜率:求拟合.方法:p=polyfit(x, ...

  2. 庖丁解牛Transformer原理

    近年来Transformer不管是在NLP.CV.推荐等领域都有比较大的应用,短短4年左右的时间Attention Is All You Need 文章的引用量接近3万,其实Transformer原先 ...

  3. Transformer 看这一篇就够了

    之前我在这篇语言模型(五)-- Seq2Seq.Attention.Transformer学习笔记中说过要对Transformer来一个抠细节的笔记,今天它来了.由于大部分内容在上文中已有过系统地介绍 ...

  4. Transformer入门(一)——结构

    文章目录 前言 一.Transformer的产生和基础思想  1.1 Transformer的Motivation  1.2 Transformer的原始框架  1.3 关于Decoder的补充说明 ...

  5. NLP算法岗——秋招被虐经历

    作者 | Chevalier 整理 | NewBeeNLP 面试锦囊之面经分享系列,持续更新中  后台回复『面试』加入讨论组交流噢  简历背景:1个腾讯实习,4个比赛.2个项目,1篇CCF-A二作.1 ...

  6. Transformer代码详解: attention-is-all-you-need-pytorch

    Transformer代码详解: attention-is-all-you-need-pytorch 前言 Transformer代码详解-pytorch版 Transformer模型结构 各模块结构 ...

  7. “Attention is All You Need 翻译

    <p><img src="output_0_0.png" alt="png"></p> "Attention is ...

  8. 机器学习笔记: attention

    1 回顾: 使用RNN的Seq2Seq encoder最后的输出,我们生成两个向量,初始的decoder状态s0和文本向量c.然后进行decoder操作 但是问题在于,如果输入的sequence很长的 ...

  9. 《Attention Is All You Need》

    目录 摘要(Abstract) 1.介绍(Introduction) 2.背景(Background) 2.1 WMT翻译数据集 2.2 编码器-解码器(seq2seq) 2.2.1 编码器 2.2. ...

最新文章

  1. VFS文件系统结构分析 与socket
  2. 你需要了解的纯原生JS实现带有功能的前端购物车
  3. Leaflet中使用Leaflet.Polyline.SnakeAnim插件实现水流模拟效果
  4. WordPress插入图片无法居中的解决方法
  5. mongoose查找若存在,则什么都不做,若不存在,则插入
  6. 基于python的分布式扫描器_基于python的服务器监测系统的设计
  7. Oracle用户角色权限管理
  8. oracle的odbc源配置文件,odbc数据源配置oracle odbc driver configuration教程
  9. 超精华的unity2d同屏显示9千人,看完还怕学不会?
  10. 系统运维安全管理办法_7.系统运维安全管理规定
  11. python数据挖掘项目——航空公司客户价值分析(详解)
  12. html css 写百度页面,Html+CSS练习(百度注册页面)--div布局实现
  13. New Phy: 中科院城环所朱永官等综述全球变化对叶际微生物组的影响
  14. 流量不清零、可转赠,对运营商未必是坏事
  15. CabloyJS微信模块、企业微信模块已出齐
  16. flash html游戏开发,flash游戏制作|Flash AS3.0教你射击类游戏的制作_好特教程
  17. 微信小程序-全局数据共享
  18. 使用 Nginx 如何部署 web 项目
  19. 抓rtmp推流地址_如何获取第三方推流地址?
  20. 二级c语言考试系统安卓,无忧考吧二级c语言考试系统下载_无忧考吧二级c语言考试系统官方下载-太平洋下载中心...

热门文章

  1. 全宇宙最全的bash 脚本常见用法总结!
  2. 互联网跟移动互联网_互联网如何说话
  3. 神经网络语音分离必读论文、代码、教程、公开数据集整理分享
  4. lvds接口屏线安装图解_lvds液晶屏幕接口详细讲解
  5. python canopen_CAN与CANOPEN在电机控制中的应用
  6. Android端 WebP图片压缩与传输的一点探索
  7. 24小时切换简易时钟-51单片机
  8. 计算机毕业设计=基于微信小程序的停车场管理系统
  9. 前端框架Layui学习五:弹出层和数据表格
  10. 使用pyecharts绘制中国历代都城的分布图