当前位置: 首页 > news >正文

注意力机制(attention)学习笔记

注意力机制可以大幅提高模型的准确性,如在RNN文本翻译中其会计算与所有状态的相关性,并得出权重,即他会考虑所有状态并给出最重要的关注,这也就是注意力命名的由来,与此同时,关注所有的状态也必定需要大量的计算。
seq2seq模型(其有两个RNN网络构成,分别为encode和decode),一种常用于实现文本翻译的模型,其结构如下
在这里插入图片描述
面对采用相同状态c导致的遗忘与无差别问题,我们提出了注意力机制。

在这里插入图片描述
如何计算这个权重呢,这是注意力机制刚刚提出时采用的方法。
在这里插入图片描述
目前较为流行的方式:
在这里插入图片描述
在这里插入图片描述
c0所得即为其加权平均
在加入注意力机制后如何更新状态。
在这里插入图片描述
注意力机制使其考虑先前的所有信息,从而解决了遗忘的问题,第一次的权重值是通过与s0计算相关性得到的,同样,后面s1也与前面的hi计算相关性,以此类推。
在这里插入图片描述
我们要想计算出ci,则需要计算m个权重值,对于一个由t个状态的解码信息,我们总共需要计算m*t此权重,这个时间复杂度即为m*t,这个计算量是很高的,attention考虑所有的情况,解决了遗忘的问题,但付出的代价也是昂贵的。
在这里插入图片描述
直观理解注意力机制,即decode每要生成一种状态,都要去关注encode中的所有状态,即每个状态间都有连接,而连线的粗细则反映两者的相关程度,如法语中的zone就是英语中的Area,通过这个权重他告诉decode更去关注encode中哪一个状态,这也是attention命名的由来。
在这里插入图片描述
在这里插入图片描述
关于注意力机制的总结:
对于seq2seq模型,encode只关注当前的状态,即s1只看s2,而注意力机制的加入让其考虑前面encode中所有的状态,这就解决了遗忘的问题,同时由于计算了相关权重,其能够让我们知道更去关注哪个状态。
缺点:
高时间复杂度,同时伴随着大量的计算。

Attention最开始时应用在了seq2seq模型中,但其并不局限于此,其可以用于任何RNN模型中。如LSTM
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这就是self-attention,这种不再局限于简单的seq2seq,而是可以应用到所有的RNN模型中去提升精确度。

相关文章:

  • Cocos3.x 对象池NodePool使用介绍和注意事项
  • 计算机二级WPS 选择题(模拟和解析二)
  • java计算机毕业设计基于安卓Android微信的儿童疫苗接种管理小程序uniApp
  • 什么是协程?
  • [配置] 安卓 | 将微信公众号文章保存到Notion
  • Docker启动mysql服务
  • 基于java安全管理系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
  • 为何基于树的模型在表格型数据中能优于深度学习?
  • 贪心+二分
  • Geoserver Windows 安装部署教程
  • haproxy,nginx,keepalived综合运用
  • 动态多目标优化算法:MOEA/D-FD求解FDA1、FDA2、FDA3、FDA4和FDA5(Matlab代码)
  • 【基于C的排序算法】插入排序之直接插入排序
  • Golang——从入门到放弃
  • 报告分享|数据变现,车企利润新增长点
  • 【笔记】你不知道的JS读书笔记——Promise
  • 345-反转字符串中的元音字母
  • go语言学习初探(一)
  • JavaWeb(学习笔记二)
  • Java基本数据类型之Number
  • Lsb图片隐写
  • python docx文档转html页面
  • Vue.js 移动端适配之 vw 解决方案
  • vue.js框架原理浅析
  • vue脚手架vue-cli
  • 从0实现一个tiny react(三)生命周期
  • 从PHP迁移至Golang - 基础篇
  • 代理模式
  • 简单基于spring的redis配置(单机和集群模式)
  • 近期前端发展计划
  • 前端路由实现-history
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 我从编程教室毕业
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 怎么将电脑中的声音录制成WAV格式
  • 终端用户监控:真实用户监控还是模拟监控?
  • Linux权限管理(week1_day5)--技术流ken
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 昨天1024程序员节,我故意写了个死循环~
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • #HarmonyOS:基础语法
  • #Spring-boot高级
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (windows2012共享文件夹和防火墙设置
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (九)信息融合方式简介
  • (十三)Flask之特殊装饰器详解
  • (算法二)滑动窗口
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • *1 计算机基础和操作系统基础及几大协议