深度学习| 注意力机制

注意力机制

  • 为什么需要注意力机制
    • Seq2Seq问题
    • Transfomer
  • Attention注意力机制
  • 分类
    • 软硬注意力
    • 注意力域

为什么需要注意力机制

这个可以从NLP的Seq2Seq问题来慢慢理解。

Seq2Seq问题

Seq2Seq(Sequence to Sequence):早期很多模型中,样本特征维度通常都是一致的。但是在机器翻译中,输入和输出的长度都是不固定的,例如输入英文“school”会输出中文“学校”,输入一个单词却输出两个汉字。如何解决这种输入输出特征维度可变的情况,并可以把一个序列直接转换到另一个序列,这就是Seq2Seq要解决的问题。

经典的Seq2Seq模型:使用的是两个循环神经网络(Recurrent Neural Network,RNN),下面是其的Encoder-Decoder结构图。编码器将输入序列转换为一个固定长度的向量表示,解码器将该向量转换为长度不固定的输出序列。

在这里插入图片描述

Encoder部分是一个多输入单输出的RNN结构,把词向量x依次输入到Encoder,隐藏神经元A输入是由当前输入x和上一个隐藏神经元的输出组成,最后输出最后一个隐藏神经元的输出作为Decoder的输入。这样的Encoder结构可以模拟人类的阅读顺序去读取序列化数据,只保留最后一个隐藏状态,相当于将把整个序列浓缩在了一起。

Decoder结构和Encoder结构几乎是一样的,不同的地方在于输入的x是前面的结果。如果是训练阶段那么输入的x就是前面输出的label(标准答案),如果是测试阶段那么输入的 x ∗ x^* x就是前面输出的结果。这样Decoder结构也可以模拟人类说话的顺序,输出不同长度的序列。
在这里插入图片描述
存在的问题:当使用RNN处理长文本序列的时候,会出现两个问题。首先,第一个问题就是其顺序结构导致无法捕捉长序列上下文信息。Decoder做预测非常依赖于Encoder最后的输出,但是如果句子过长,Encoder最后的输出状态会忘记前面的句子内容,也就是信息丢失。第二个问题就是并行处理序列困难。因为RNN的内部循环结构,所以只能顺序处理序列,无法对序列整体进行并行计算。

补充:Seq2Seq是一个端到端(end-to-end)的网络模型,所谓的端到端神经网络是指能够直接从原始数据中提取特征并输出最终结果的模型,不需要显式地进行手动特征提取或分步骤处理。

Transfomer

Transfomer:Transfomer的核心就是Attention注意力机制,在RNN的Encoder-Decoder基础上加入了注意力机制,能实现长序列的并行处理,从而来解决前面提到RNN的两个问题。

为什么能解决RNN处理长文本序列的问题:加入Attention注意力机制后的Seq2Seq模型,不会忘记原始输入句子信息,而且Decoder也能够知道句子中哪些词比较重要,但是会增加额外的计算量。

应用:除了前面提到的自然语言处理(Natural Language Processing,NLP),Transfomer还在计算机视觉(Computer Vision,CV)中也有所应用。卷积神经网络(Convolutional Neural Network,CNN)作为计算机视觉领域中一个热门的研究方向,非常擅长特征提取,但是其更关注局部的信息。CNN的核心是卷积,而Transformer的核心是自注意力机制。自注意力机制允许模型从图像中任意位置获取信息,更好地处理长距离依赖关系。而CNN则需要在多层卷积之后,才能将图片中距离比较远的像素点关联起来。

Attention注意力机制

Attention介绍:就是模仿人的注意力机制设计,人看到一个东西,会把注意力放在需要关注的地方,把其它无关的信息过滤掉。下面的图是人类看到图片注意力热力图。
在这里插入图片描述

Attention原理:在Seq2Seq模型介绍的时候,会发现Encoder只会把最后一个隐藏状态输出,对于前面隐藏状态全部都舍弃了,而Attention做得就是把舍弃掉的隐藏信息给利用起来。在Seq2Seq举的翻译例子中,把“Hellow world”翻译为“哈喽世界”,“Hellow”对“哈”、“喽”、“世”和“界”每个字的贡献都是一致,但是实际上“Hellow”应该对“哈”和“喽”的贡献要多些,而对“世”和“界”的贡献要少些。如何分配这些贡献程度并得到合适的向量传递给Decoder,这就是Attention要实现的,主要是用在Encoder部分。

Attention机制
Attention机制的核心就是QKV。

Q(Query):Query包含了读者的问题的信息。
K(Key):Key与Value相关联,Key是原始信息所对应的关键性信息,相当于对原始信息做了某种转换得到的词向量。
V(Value):Value理解为原始捕捉到的信息,不受到任何注意力的干扰。

计算步骤:

  • Query和Key进行相似度计算,得到Attention Score。
  • 对Attention Score进行Softmax归一化,得到权值矩阵,相当于每个贡献程度。
  • 权重矩阵与Value进行加权求和计算。

看过一个比较好的比喻,可以把Attention过程比作我们在浏览器搜索文章的过程。
Value相当于浏览器里面所有的文章,Key相当于每个文章对应的标题,标题是从文章张提炼的,而Query相当于我们输入到浏览器中的问题。Attention搜索过后,就会对每个文章和问题匹配度进行一个得分,来对原来的文章筛查。
总结QKV:Query相当于问题,Value相当于一组答案,Key相当于该答案所对应问题的关键字

分类

软硬注意力

软注意力(Soft Attention):加权图像的每个像素。 高相关性区域乘以较大的权重,而低相关性区域标记为较小的权重。注意力模块相对于输入是可微的,所以通过标准的反向传播方法进行训练。
大多数软注意力模块都不会改变输出尺寸,从而可以很灵活的插入到卷积网络的各个部分。但会增加训练参数,从而导致计算成本有所提高。

硬注意力(Hard Attention):一次选择一个图像的一个区域作为注意力,设成1,其他设为0。通常是不可微的,硬注意力相对软注意力更难训练,不能反向传播,但是可以借助如强化学习的手段去学习。

注意力域

注意力机制中的模型结构分为三大注意力域来分析。
主要是:空间域(spatial domain),通道域(channel domain),混合域(mixed domain)。

  • 空间域:将图片中的的空间域信息做对应的空间变换,从而能将关键的信息提取出来。对空间进行掩码的生成,进行打分,代表是Spatial Attention Module。
  • 通道域:类似于给每个通道上的信号都增加一个权重,来代表该通道与关键信息的相关度的话,这个权重越大,则表示相关度越高。对通道生成掩码mask,进行打分,代表是SEnet, Channel Attention Module。
  • 混合域:空间域的注意力是忽略了通道域中的信息,将每个通道中的图片特征同等处理,这种做法会将空间域变换方法局限在原始图片特征提取阶段,应用在神经网络层其他层的可解释性不强。代表主要是BAM(Bottleneck Attention Module)和CBAM(Convolutional Block Attention Module)。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux逻辑方式合并物理磁盘

在日常生活中,我们总是遇到一个文件太大,以至于我们的两个磁盘都装不下,这时我们就需要将两块物理磁盘逻辑化的连接在一起,把物理磁盘使用逻辑化的方法合并在一起,形成卷组,使得磁盘空间可以公用&#xff1…

Leetcode—1672. 最富有客户的资产总量【简单】

2024每日刷题&#xff08;120&#xff09; Leetcode—1672. 最富有客户的资产总量 实现代码 class Solution { public:int maximumWealth(vector<vector<int>>& accounts) {int ans 0;for(vector<vector<int>>::iterator it accounts.begin();…

西门子PLC常见疑难解答在这都能找到(含PLC无线通讯实例)

问&#xff1a;在WINCC中可以创建多少个消息类型&#xff1f; 答&#xff1a;WINCC中最多可以创建16个消息类型。 问&#xff1a;博途WINCC与经典版WINCC兼容嘛&#xff1f; 答&#xff1a;经典wincc和博图wincc Professional版本都不兼容 不能安装到一起的哦&#xff01; …

探讨mfc100u.dll丢失的解决方法,修复mfc100u.dll有效方法解析

mfc100u.dll丢失是一个比较常见的情况&#xff0c;由于你电脑的各种操作&#xff0c;是有可能引起dll文件的缺失的&#xff0c;而mfc100u.dll就是其中的一个重要的dll文件&#xff0c;它的确实严重的话是会导致程序打不开&#xff0c;系统错误的。今天我们就来给大家科普一下mf…

命令执行漏洞【2】vulhub远程命令执行漏洞复现

1.vulhub安装启动靶场环境 &#xff08;1&#xff09;s2-061开启靶场 &#xff08;2&#xff09;s2-059开启靶场 2.漏洞复现 &#xff08;1&#xff09;s2-061漏洞复现 github获取漏洞利用工具 开始利用 &#xff08;2&#xff09;s2-059漏洞复现 在linux特有临时目录/tmp下…

968.监控二叉树 树上最小支配集

法一: 动态规划 一个被支配的节点只会有三种状态 1.它本身有摄像头 2.他没有摄像头, 但是它的父节点有摄像头 3.他没有摄像头, 但是它的子节点有摄像头 我们 dfs(node,state) 记录在node节点时(以node为根的子树),状态为state下的所有最小摄像头 // 本身有摄像头就看左右孩子…

投影连接Samba服务

目录 0.创建【Samba服务】 1.下载・安装一个能连接【Samba服务】的播放器 2.配置语言 3.配置服务器连接 0.创建【Samba服务】 Linux&#xff08;Ubuntu&#xff09;中创建【samba】服务&#xff0c;用于和Windows系统之间共享文件_ubuntu samba-CSDN博客 1.下载・安装一…

《深入理解mybatis原理》 MyBatis的架构设计以及实例分析

《深入理解mybatis原理》 MyBatis的架构设计以及实例分析 MyBatis是目前非常流行的ORM框架&#xff0c;它的功能很强大&#xff0c;然而其实现却比较简单、优雅。本文主要讲述MyBatis的架构设计思路&#xff0c;并且讨论MyBatis的几个核心部件&#xff0c;然后结合一个select查…

Matlab进阶绘图第51期—带填充等高线的三维特征渲染散点图

带填充等高线的三维特征渲染散点图是填充等高线图与特征渲染三维散点图的组合。 其中&#xff0c;填充等高线图与特征渲染的三维散点图的颜色用于表示同一个特征。 由于填充等高线图无遮挡但不直观&#xff0c;特征渲染的三维散点图直观但有遮挡&#xff0c;而将二者组合&…

【C++杂货铺】二叉搜索树

目录 &#x1f308;前言&#x1f308; &#x1f4c1; 二叉搜索树的概念 &#x1f4c1; 二叉搜索树的操作 &#x1f4c2; 二叉搜索树的查找 &#x1f4c2; 二叉搜索树的插入 &#x1f4c2; 二叉搜书树的删除 &#x1f4c1; 二叉搜索树的应用 &#x1f4c1; 二叉搜索树的…

vue3 h5模板

vue3的h5模板 基于vue3tsvantrem的h5模板 觉得帮到你了就给个start

【win10移动热点,提示正在获取ip地址...】

检查 Wired AutoConfig/ WLAN AutoConfig 服务运行 电脑→管理→服务和应用程序→服务&#xff1a;AutoConfig 有线网络无线网卡 1.开启wifi热点&#xff0c;自动生成“本地连接*10”&#xff1b; 2.配置Wired LAN网络共享 仅无线网卡 1. 开启wifi热点&#xff0c;自动生…

自学Python爬虫js逆向(二)chrome浏览器开发者工具的使用

js逆向中很多工作需要使用浏览器中的开发者工具&#xff0c;所以这里以chrome为例&#xff0c;先把开发者工具的使用总结一下&#xff0c;后面用到的时候可以回来查询。 Google Chrome浏览器的开发者工具是前端开发者的利器&#xff0c;它不仅提供了丰富的功能用于开发、调试和…

电动公共交通车充电站设置储能电站方案

相比于传统燃油公交车&#xff0c;电动公交车以电代油&#xff0c;具有零排放、低噪音、低能耗等优势。随着电池、车载电机等相关技术的不断发展&#xff0c;电动公交车在国内乃至全世界范围内逐步推广应用。动力电池是电动公交车的重要部件之一&#xff0c;其寿命及性能影响着…

解密推理部署工程师的必备技能,面试题库分析

推理部署工程师面试题库 1. 描述一下SM的结构&#xff1f; 英伟达 GPU 架构&#xff1a;* 计算核心&#xff1a;INT32、FP32、FP64 CUDA 核心&#xff0c;Tensor 核心&#xff0c;超低延迟负载/存储。* 调度和存储器&#xff1a;Warp 调度器注册文件&#xff0c;共享存储器&am…

逻辑回归模型与GBDT+LR——特征工程模型化的开端

随着信息技术和互联网的发展&#xff0c; 我们已经步入了一个信息过载的时代&#xff0c;这个时代&#xff0c;无论是信息消费者还是信息生产者都遇到了很大的挑战&#xff1a; 信息消费者&#xff1a;如何从大量的信息中找到自己感兴趣的信息&#xff1f;信息生产者&#xff…

主题乐园私域精细化运营

主题乐园私域精细化运营是指在细分用户群体的基础上&#xff0c;通过个性化、精准的运营方式&#xff0c;为用户提供定制化服务和体验。以下是一些常见的主题乐园私域精细化运营玩法&#xff1a; 会员制度和会员专属服务&#xff1a;建立完善的会员制度&#xff0c;为会员提供专…

碳实践 | 一文读懂LCA产品生命周期环境影响评价

一、产品生命周期评价定义 生命周期评价&#xff1a;生命周期评价&#xff08;Life Cycle Assessment&#xff0c;简称LCA&#xff09;是一种量化评价方法。它涵盖了产品的整个生命周期——从自然资源开采到原材料加工、产品制造、分销、使用&#xff0c;直至最终废弃处置或回…

mongodb使用debezium

前置 服务器上需要安装jdk11 jdk下载地址 kafka安装 官网下载地址 安装教程 debezium 安装 运行 Debezium 连接器需要 Java 11 或更高版本 Debezium 并不是一个独立的软件&#xff0c;而是很多个 Kafka 连接器的总称。这些 Kafka 连接器分别对应不同的数据库&#xff0c;…

使用Cesium ion将 Sketchfab 3D 模型添加到您的GIS应用中

您现在可以将 Sketchfab 中的 3D 模型导入 Cesium ion 中以创建 3D 块&#xff0c;从而更轻松地为地理空间体验创建上下文和内容。 Sketchfab 是 Epic Games 的一部分&#xff0c;也是使用最广泛的 3D 资产市场之一。自 2012 年推出以来&#xff0c;已有超过 1000 万用户使用 …
最新文章