深度学习——注意力机制、自注意力机制

news2024/9/20 20:23:49

什么是注意力机制?

1.注意力机制的概念:

我们在听到一句话的时候,会不自觉的捕获关键信息,这种能力叫做注意力。

比如:“我吃了100个包子”
有的人会注意“我”,有的人会注意“100个”。

那么对于机器来说,我们输入一项媒体信息,希望机器去注意某些关键信息,比如图片上的目标等,
能够实现这一功能的方法就是注意力机制,具体怎么实现请继续看。

2.注意力机制的核心问题

注意力机制的核心重点就是让网络关注到它更需要关注的地方

当我们进行深度学习训练时,我们想要让它注意到我们希望它关注的信息,而不是什么都去获取什么都注意,我们会希望让网络去自适应注意,让深度学习的卷积网络去自适应注意物体是注意力机制的的核心问题之一。

3.注意力机制的形式

通常来讲,基本的注意力机制分为通道注意力机制,空间注意力机制,混合注意力机制。

注意力机制的图示解析

在这里插入图片描述
对于一个图像媒体信息,我们可以将其分为多个特征层(通道),一个特征层(通道)都包含这个图像的部分信息。
1.通道注意力机制
顾名思义,我们是对于整个图像的某几个特征层(通道)特别注意,并没有特别地挑选出图像的某些区域,把这几个通道拿出来进行池化等操作,能够利于网络获取特征信息。

2.空间注意力机制
同样的顾名思义,我们对于图像中的某些区域特别注意,并且把这种区域的所有特征层都拿出来处理。

注意力机制的实现

如下图所示,注意力机制的本质是通过“查询”来生成一组能够重新作用于原图的权值,具体实现步骤有:
1.采用某种方法获取查询矩阵Q,然后获得查询图像返回的键值矩阵K,根据点积相乘获得一个“相似度“矩阵。
2.相似度矩阵中的各个数值经过运算,得出Q与K对应的的一组值,代表了Q和K的各项相关性得分,随后将得分进行缩放之后,采用softmax()归一化。
3.归一化之后得到“概率”向量a,用a和原本的权值矩阵v相乘得到可以作用于原图像的新的权值矩阵,完成注意力操作。

在这里插入图片描述

一些需要注意的点:(引自博客:【Transformer 相关理论深入理解】注意力机制、自注意力机制、多头注意力机制、位置编码)

为什么softmax前要缩放?为什么是除以维度的根号?
1.缩放是因为softmax归一化是有问题的,当缩放前的某个元素非常大的时候,softmax会把大部分的概率分给这个大的元素,这就会产生一个类似one-hot的向量,softmax反向传播会导致梯度消失。所以在softmax前缩放,缓解这种问题。
2.除以维度的根号因为我们希望输入softmax的数据是均值为0,方差为1。

为什么不能用Key和Key自乘得到相似度,而要新建一个Q?
如果Key自乘得到相似度,这个时候得到的其实是一个对称矩阵,相当于把Key投影到同一个空间中,泛化能力弱。

自注意力机制

自注意力机制和注意力机制的唯一区别就是QKV的来源。

在注意力机制中,Q,K,V不要求同源,只需K和V有一定关联即可。而自注意力机制要求Q,K,V同源,也就是说自注意力机制要获取自身内部的元素关联。

实现过程
1.通过共享参数Wq,Wk和Wz

之后的步骤便和注意力机制一样

如图所示,Thinking Machines这句话。
在这里插入图片描述

一开始,X1和X2是两个单词的特征矩阵,获取各自的Q,K,V之后,对于thinking来说,他会令q1和(k1,k2)卷积,然后得到一个得分,最后得出一个权值v,然后对于值z,它包含了thinking和thinking的联系还有thinking和machines的联系。

z向量(矩阵)本质上还是x,只不过是经过了重新得分后的v的作用,新的向量(矩阵)z包含了thinking和其他每一个词之间的关系。

而我们也可以用更长一点的话来使用自注意力机制,可见经过自注意力机制后,its这个单词包含了和law还有application这两个单词的相似度。这样我们再查询its这个单词的特征向量时也可以获得他和其他单词的相似度。
在这里插入图片描述
如果不做自注意力机制,its词向量就是单纯的its词向量,没有任何附加信息。而做了自注意力信息,its就有了law和application这层意思,可以包含law的信息,挖掘潜在意思,翻译起来就更加准确。

明日:常见注意力机制模型介绍,软硬注意力机制有什么差别,YOLO模型介绍。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/821849.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL处理客户端请求

文章目录 一、连接管理二、解析与优化1、查询缓存2、语法解析3、查询优化 简单来说 MySQL 主要分为 Server 层和存储引擎层: Server 层:主要包括连接器、查询缓存、分析器、优化器、执行器等,所有跨存储引擎的功能都在这一层实现&#xff0c…

【Shell】Shell编程之文本处理器——awk

sed可以对文本内容进行增删改查 主要使用的是改和查;查使用grep,正则表达式使用grep -E更好 awk是文本三剑客中最强大的文本工具; awk也是按行进行操作;对行操作完之后可以根据指定命令来取列 awk的分隔符:默认为 &…

Linux第七章之gdb与makefile使用

一、Linux调试器-gdb使用 1.1背景 程序的发布方式有两种,debug模式和release模式Linux gcc/g出来的二进制程序,默认是release模式要使用gdb调试,必须在源代码生成二进制程序的时候, 加上-g 选项[重要] 1.2开始使用 …

爬虫原理详解及requests抓包工具用法介绍

文章目录 一、什么是爬虫?二、爬虫的分类三、网址的构成四、爬虫的基本步骤五、动态页面和静态页面六、伪装请求头七、requests库介绍1. 概念:2. 安装方式(使用镜像源):3. 基本使用:4. response对象对应的方…

一起学算法(数组篇)

1.概念: 1.顺序存储 顺序存储结构,是指用一段地址连续的存储单元来依次存储结构,如图所示,每个蓝色方块都对应了数组中的一个数据,数据有类型,例如:32位整型int、单精度浮点型float、双精度浮点…

你知道HTTP与HTTPS有什么区别吗?

作者:Insist-- 个人主页:insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注 目录 一、什么是HTTP? 二、什么是HTTPS? 三、HTTPS 的工作原理 1、客户端发起 HTTPS 请求 2、服务端的配置 3、…

如何设计一个Android端高性能日志监控系统

开发中客户端经常遇到一些线上问题, 无法复现, 但是又的的确确存在; 当线上反馈的时候无从下手; 主要是因为并不知道用户所处的环境,以及所做的操作顺序或者程序运行的顺序; 在排查问题和复现问题上占用了很大的成本; 如果debug时的log日志如果线上也能查看就好了; 基于此, 我们…

5.类型推论,类型断言,类型兼容性

目录 1 类型推论 2 类型断言 2.1 类型推论所带来的问题 2.2 基本使用 2.3 不断言会出现的问题 2.4 断言的另一种写法 2.5 查看DOM元素的类型 3 类型兼容性 3.1 类兼容性 3.2 接口兼容性 3.2.1 接口之间的兼容性 3.2.2 接口与类之间的兼容性 3.3 函数…

C++ 类的静态成员

在结构化程序设计中程序模块的基本单位是函数,因此模块间对内存中数据的共享是通过函数与和函数之间的数据共享来实现的,其中包括两个途径——参数传递和全局变量。 面向对象的程序设计方法兼顾数据的共享和保护,将数据与操作数据的函数封装…

解决运行flutter doctor --android-licenses时报错

问题描述: 配置flutter环境时,会使用flutter doctor命令来检查运行flutter的相关依赖是否配好。能看到还差 Android license status unknown.未解决。 C:\Users\ipkiss.wu>flutter doctor Flutter assets will be downloaded from https://storage.…

【MySQL】数据库的增删查改+备份与恢复

文章目录 一、创建数据库create二、数据库所使用的编码2.1 查询字符集和校验集2.2 指定编码创建数据库2.3 不同的校验集对比 三、删除数据库drop四、查看数据库show五、修改数据库alter六、数据库的备份与恢复6.1 备份 mysqldump6.2 恢复source6.3 仅备份几张表或备份多个数据库…

互联网宠物医院开发:宠物健康护航的新选择

随着人们对宠物的关注度逐渐提高,宠物医疗服务也得到了更多的关注和需求。而互联网宠物医院作为一种新兴的医疗服务形式,正以其独特的优势和便捷性受到越来越多宠物主人的青睐。   首先,互联网宠物医院的最大优势在于提供了便捷的服务。宠物…

寻找峰值——力扣162

文章目录 题目描述法一 寻找最大值法二 二分法 题目描述 法一 寻找最大值 int findPeakElement(vector<int>& nums){return max_element(nums.begin(), nums.end()) - nums.begin();}法二 二分法 int findPeakElement(vector<int>& nums) {int l 0, r n…

onnx模型的保存与使用

1 onnx模型的保存 在网络训练结束之后&#xff0c;通常会将模型的权重参数保存到.pth或.pt文件中&#xff0c;如果部署环境中有pytorch&#xff0c;那么直接新建一个模型类对象&#xff0c;然后导入权重参数即可&#xff0c;但如果部署环境中只有OpenCV&#xff0c;没有pytorc…

融合大数据、物联网和人工智能的智慧校园云平台源码 智慧学校源码

电子班牌系统用以展示各个班级的考勤信息、授课信息、精品课程、德育宣传、班级荣誉、校园电视台、考场信息、校园通知、班级风采&#xff0c;是智慧校园和智慧教室的对外呈现窗口&#xff0c;也是学校校园文化宣传和各种信息展示的重要载体。将大数据、物联网和人工智能等新兴…

27岁到来之际,我在阿里实现了年薪30W+的小目标

毕业快 5 年了&#xff0c;每当和人聊起自己的职场飞升之路&#xff0c;都不由得感激当初果断逃离舒适圈的自己。出身一所非 211、985 院校&#xff0c;毕业后入职了一家小型互联网公司&#xff0c;当着普普通通的初级测试工程师&#xff0c;工作期间虽然也时常遇到挑战&#x…

性能优化点

Arts and Sciences - Computer Science | myUSF 索引3层&#xff08;高度为3&#xff09;一般对于数据库地址千万级别的表 大于2000万的数据进行分库分表存储 JVM整体结构及内存模型 JVM调优&#xff1a;主要为减少FULL GC的执行次数或者减少FULL GC执行时间 Spring Boot程序…

在线文档管理工具都有什么值得推荐的?

在线文档管理工具是现代企业和个人必备的工具之一&#xff0c;它们可以帮助用户方便地创建、编辑、共享和管理文档。 几个值得推荐的在线文档管理工具&#xff1a; Google 文档&#xff1a;Google 文档是一款免费的在线文档工具&#xff0c;它提供了和 Microsoft Word 类似的…

微信公众号开发学习

申请测试号 地址 通过F12抓取体验接口权限表的HTML 解析HTML 引入pom <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><…

物联网|可变参数的使用技巧|不一样的点灯实验|访问外设的寄存器|操作寄存器实现点灯|硬件编程的基本流程-学习笔记(11)

文章目录 可变参数的使用技巧第三阶段-初级实验Lesson5:不一样的点灯实验---学习I/O的输出 ☆点灯的电路图分析1 一起看看点灯的电路图Tip1:另一种点灯的电路Tip1:如何访问外设的寄存器2 STM32F407中操作GPIO的方法 通过直接操作寄存器实现点灯实验Tip1:硬件编程的基本流程 2代…