由注意力机制中scaled sqrt(dk)操作联想到期望与方差的本质推导
在注意力机制文章Attention Is All You Need中,作者在计算dot-product attention时,引入了一个scaled因子,即
之所以引入scaled因子,是让数据符合0均值、方差1的分布。因为qkT内积操作后,数据期望为0、方差为dk,那么softmax梯度会消失。
接下来就开始解释原因。
引入期望、方差的定义
1、期望
期望计算的是样本的均值,描述一个随机变量的集中位置或者平均位置。
2、方差
方差计算的是随机变量与期望的偏离程度,描述的是预测值与真实值之间的波动情况。方差越大,数据波动越大,越不均匀
。(埋伏笔,这会对softmax有影响)
3、公式
自己写了一个推导过程,如下:
记住:期望就是在x上套了个壳,没那么复杂,就是乘以概率p
官方证明如下,当你理解了套壳
之后,官方证明也容易看懂了
那既然会套壳
,接下来这个你是不是也能证明了
4、那么QKT 的方差和期望怎么计算呢?
我们知道,Q和K都是由同一个隐藏层上通过不同的权重矩阵得到的,所以Q和K里的每一个向量都是相互独立。假设Q,K是5×200的大小矩阵,即包含200维的5个向量qi ,ki。i是从1到5。
参考我们上面3小节推导的公式。
因为Q,K是独立分布的,那么E[qi]=E[ki]=0
又因为协方差为0,所以E[qiki]=E[qi]E[ki]=0
因此,QKT的期望
是
因为Q,K是独立分布的,那么D[qi]=D[ki]=1
D[qi]=E(qi2)-(E[qi])2=E(qi2)=1,同理E(ki2)=1
D[qiki]=E[(qiki)2]-(E(qiki))2=E[(qiki)2]=E[(qi)2(ki)2]=E(qi2)E(ki2)=1
因此,QKT的方差
是
5、scaled的好处
既然QKT的方差不为1,那么我们就除以dk的开方。为什么是开方呢?因为方差计算公式中有个平方操作,表达式除以dk开方,方差就是除以dk。所以scaled操作得到的数据分布是期望为0,方差为1。
`那为什么方差dk时候,softmax不好呢?
softmax的公式如下(参考链接:https://zhuanlan.zhihu.com/p/279142777)
梯度为
所以,当随着dk变大时,方差波动越大,假如q1比其他值都大很多,那么softmax的值趋近于0.无论是j=i,或者j不等于i。softmax是一个概率输出,输出每一个类别的概率值。当某一个值比重很大,那么它输出概率很高,接近于1,反向梯度越接近于0。梯度为0,则反向传播无法更新权重参数,模型训练受影响。
由注意力机制中scaled sqrt(dk)操作联想到期望与方差的本质推导相关推荐
- 【深度好文】ICLR 2022 | cosFormer:重新思考注意力机制中的Softmax
关注公众号,发现CV技术之美 导读:Transformer在自然语言处理.计算机视觉和音频处理方面取得了巨大成功.作为其核心组成部分之一,Softmax Attention模块能够捕捉长距离的依赖关系 ...
- 通俗理解注意力机制中的Q、K和V表示的具体含义
https://www.jianshu.com/p/7a61533fd73b 通俗理解讲解一 以翻译为例 source:我 是 中国人 target: I am Chinese 比如翻译目标单词为 I ...
- 注意力机制中的Q、K和V的意义
以翻译为例: source:我 是 中国人 target: I am Chinese 比如翻译目标单词为 I 的时候,Q为I 而source中的 "我" "是&qu ...
- Attention机制中 Q、K、V分别从哪里来?
在深度学习中,尤其是自然语言处理领域,Attention 机制已经成为一种非常重要的方法.它的核心思想是根据输入序列中的每个元素与当前元素的相关性来分配不同的权重,从而实现对输入序列的动态聚焦.在 A ...
- mysql数据刷盘_MySQL InnoDB 日志管理机制中的MTR和日志刷盘
1.MTR(mini-transaction) 在MySQL的 InnoDB日志管理机制中,有一个很重要的概念就是MTR.MTR是InnoDB存储擎中一个很重要的用来保证物理写的完整性和持久性的机制. ...
- Neutrino追问AMA第20期 | Ultrain 郭睿:在RPoS共识机制中,核心是随机数和 BFT 算法
在4月10日晚举行第的19期 Neutrino 追问 AMA中 ,我们邀请到了 Ultrain 联合创始人& CEO 郭睿.在社群交流中,郭睿表示,创新的共识机制随机可信证明机制(R-PoS) ...
- java 反射 getclass_JAVA反射机制中getClass和class对比分析
搜索热词 java有两个获得类名的方法getClass()和class(),这两个方法看似一样,实则不然.这两个方法涉及到了java中的反射. 所谓反射,可以理解为在运行时期获取对象类型信息的操作.传 ...
- aba问题mysql_解决CAS机制中ABA问题的AtomicStampedReference详解
AtomicStampedReference是一个带有时间戳的对象引用,能很好的解决CAS机制中的ABA问题,这篇文章将通过案例对其介绍分析. 一.ABA问题 ABA问题是CAS机制中出现的一个问题, ...
- 打开outlook2010里面的链接显示 “由于本机的限制,该操作已被取消。请与系统管理员联系。”解决方法...
由于本机的限制,该操作已被取消.请与系统管理员联系 今天打开outlook2010邮件里面的链接时,报错出现"由于本机的限制,该操作已被取消.请与系统管理员联系" 由于我的win7 ...
最新文章
- php下webservice使用总结
- IOS开发 ARC forbids explicit message send of 'autorelease'错误解决办法
- MONO Design创建电信3D机房
- 【Demo 0085】导出EXE文件资源
- boost::noncopyable用法的测试程序
- php简单实用的操作文件工具类(创建、移动、复制、删除)
- 面试基操:MQ怎么保障消息可靠性?
- SpringBoot入门——使用Swagger构建Restful API文档
- Hadoop学习之旅
- 高职院校汽车相关专业AEB测试套件及自动驾驶相关传感器介绍
- 算法:5、绝对差值和
- 动名词到底什么时候才用? ———— 英语菜鸟最后的倔强!
- PHP+Javascript实现拖动滑块完成拼图验证码
- LIMEWIRE公司COO(首席运营官)Greg Bildson访谈
- java比特率转换,amr转换mp3所需的编码器、比特率、节录率、声音频道分别是什么?...
- 知乎大V推荐!如何在面试中通过工厂模式来给自己加分?圆我大厂梦!
- nginx实现https转发
- 【2023最新版】超详细NMAP安装保姆级教程,Nmap的介绍、功能并进行网络扫描,收藏这一篇就够了
- 效率低,协同难,看数字化如何加速客服行业转型丨创新场景50
- Jvm-Sandbox-Repeater的部署