当前位置:网站首页>注意力机制的详细理解
注意力机制的详细理解
2022-08-03 17:40:00 【如意的小家】
一、线性Attention的探索:Attention必须有个Softmax吗?
前几天笔者读到了论文 Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention [1] ,了解到了线性化 Attention (Linear Attention)这个探索点,继而阅读了一些相关文献,有一些不错的收获,最后将自己对线性化 Attention 的理解汇总在此文中.
Attention
相关解读可以参考笔者的一文读懂「Attention is All You Need」| 附代码实现,以及它的一些改进工作也可以参考突破瓶颈,打造更强大的 Transformer [3]、Google 新作 Synthesizer:我们还不够了解自注意力,这里就不多深入介绍了。
1.1 摘掉Softmax
读者也许想不到,制约 Attention 性能的关键因素,其实是定义里边的 Softmax!事实上,简单地推导一下就可以得到这个结论。
注:关于矩阵乘法算法复杂度的计算
1).矩阵乘法
对于矩阵A(n×m),B(m×n), 这里A(n×m)表示A是n行乘m列的矩阵。
如果A×B,那么复杂度为O(n×m×n),即O(n^2×m) 。进一步思考,为什么呢,直接代码解释:
for(i=0;i<n;i++){
//A矩阵中的n
for(j=0;j<m;j++){
//A矩阵中的m 或者B矩阵中的m ,一样的
for(k=0;k<n;k++){
//B矩阵中的n
C[i][j]= C[i][j]+A[i][k]*B[k][j];
}
}
}
一个for循环是O(n),这里是三个for循环,所以为O(n×m×n)。(ps:个人感觉还是看代码比较好理解,后面三个矩阵乘法时,就会更加体会到)
对于矩阵A(m×n),B(n×m)和C(m×n), 这里A(m×n)表示A是m行乘n列的矩阵。(PS:这里记号和前面不同,主要方便和知乎截图符号一致)
- A×B,那么复杂度为O(m×n×m),即O(m^2×n) 。
- D(m×m)=A×B运算完后在和C运算。
- D×C,那么复杂度为O(m×m×n),即O(m^2×n) 。
为了方面理解,笔者直接上代码,这样清楚一点。
int A(m*n),
int B(n*m)
int C(m*n)
int D(m*m)
int E(m*n)
//先计算D=A*B
for(i=0;i<m;i++){
//A矩阵中的m
for(j=0;j<n;j++){
//A矩阵中的n 或者B矩阵中的n ,一样的
for(k=0;k<m;k++){
//B矩阵中的m
D[i][j]= D[i][j]+A[i][k]*B[k][j];
}
}
}
//在计算E=D*C
for(i=0;i<m;i++){
//D矩阵中的m
for(j=0;j<m;j++){
//D矩阵中的m 或者C矩阵中的m ,一样的
for(k=0;k<n;k++){
//C矩阵中的n
E[i][j]= E[i][j]+A[i][k]*B[k][j];
}
}
}
边栏推荐
猜你喜欢
yaml数据格式
一键进入华为云会议,长期免费值得所有开发团队有一套【华为云至简致远】
【指针初解】
论文解读(JKnet)《Representation Learning on Graphs with Jumping Knowledge Networks》
EMQX Newsletter 2022-07|EMQX 5.0 正式发布、EMQX Cloud 新增 2 个数据库集成
【300+精选大厂面试题持续分享】大数据运维尖刀面试题专栏(十一)
完整的搭建内网穿透ngrok详细教程(有图有真相)
域名抢注“卷”到了表情包?ENS逆势上涨的新推力
Execution plan of mysql
新“妖股”13个交易日暴涨320倍,市值3100亿美元超阿里
随机推荐
并查集模板及思想
【300+精选大厂面试题持续分享】大数据运维尖刀面试题专栏(十一)
并发高的情况下,试试用ThreadLocalRandom来生成随机数
Weekly recommended short video: In order to fill the gap of learning resources, the author specially wrote a book?
六、用户身份认证
我们为何看好投资 DAO?
Crack: WebKitX ActiveX and WebKitX VHX
JVS低代码移动端接入方案
php之相似文章标题similar_text()函数使用
uniapp 切换 history 路由模
383. Ransom Note
广告电商系统开发之会员系统板块
003_Kubernetes核心技术
多表查询最值
双指针/滑动窗口问题
目标检测-YOLOv3理论讲解
【Deliberately practice the view of the back tube】deliberately practice
关于 Intel 在 micro-vm 快速启动的探索及实例演示 | 第 36-38 期
云图说丨初识华为云微服务引擎CSE
Digital IC Handwriting - MCMM, WNS and TNS