【机器学习】关于注意力模型(Attention-model)的理解和应用

article/2025/10/29 15:31:18

注意力模型是近年来在序列处理领域新提出的机器学习方法,在语言翻译等领域取得了不错的效果。要想了解注意力模型,那么必须对现在的机器学习各领域有一定的了解,而且要了解encoder-decoder基本思想。

首先可以大致的概括下目前的机器学习尤其是深度学习的各个领域。图像方面,CNN当之无愧是绝对的主力,并且在各大公司的研究下仍然在发力。NLP(自然语言处理)方面,RNN型的网络仍然占多数,但是自从Facebook用CNN搭建的翻译模型超越谷歌的Seq2Seq以后,CNN已经开始蚕食RNN的领域。序列数据的处理不再是RNN类网络一家独大。

Attention-Model是Seq2Seq的一种,所谓的sequence就是指序列数据,序列数据处理一般有Seq2Label模型,如心电图分类、情感分析等。和Seq2Seq模型,如语言翻译和序列预测。

Encoder-Decoder

Attention-model是在编码-解码模型的基础上改进而来,所以在了解Attention-model前需要了解Encoder-Decoder的基本原理。

由上图可以清楚的看出,该结构由两部分组成,前面是由编码器处理输入信号,最后输出一个包含着序列信息的vector。解码器的输入是自身的input然后加上前面编码器输出的编码信息。

编码器和解码器的网络可以选择任意的结构,但是在NLP中选择RNN类网络的居多,如常用的LSTM和GRU等。

以语言翻译为例,前面编码器的输入是想要翻译的语言序列。经过编码器后产生一个代表着输入语句的语义编码C,然后解码器使用语义编码C、编码器的输出和一个起始符作为输入,共同完成解码工作。

我们可以看出该结构有一个明显的短板,即语义编码C是固定长度的。如果前面的序列比较长,那么语义编码C中包含的信息大部分都是关于序列后段的,前段的信息很可能已经被替换掉或者覆盖掉。因此序列越长这个问题就会越明显。

Attention-model

为了克服普通的Encoder-Decoder结构的缺陷,一种新的模型被提出。其主要思想是选择编码过程中重要的部分来作为编码的输入。根据量化的思想,主要做法就是对编码阶段的每个输出增加一个权重(用softmax获得),而且这个权重是根据编码过程中的隐含状态计算得到的,这样每一个序列都有一个不同的语义编码,由此决定序列中每一个部分的重要性。这样就可以很好的避免普通Encoder-Decoder模型的短板。

上图就是Attention模型中语义编码Ct的示意图,h是序列中向量的隐含状态,a是由计算得到的权重,分别乘以对应的h后求和就可以得到该序列的语义编码,a数值大的部分代表该部分的向量比较重要。

编码部分就是一个双向的RNN,目前使用GRU的居多,每个向量不再是产生一个隐含状态,而是产生一个由前向和后向的隐含状态的拼接。里面包含着向量的前后联系。

应用

Attention-model主要是在翻译领域应用较多,即解码部分也是一个序列对序列的输出,那么我们怎么用Attention来处理分类任务呢。在情感分析的文章中,有作者是将语义编码视作一个高度概括的向量,然后直接用作分类。但我个人认为用一个单层的GRU来处理下编码信息然后再做分类可能会更完整。总之Attention模型在处理序列的任务中取得了不错的效果,而且其改进的空间也非常大。


http://chatgpt.dhexx.cn/article/9BB9JeWJ.shtml

相关文章

一文读懂计算机视觉中的注意力机制原理及其模型发展

作者&编辑 | 言有三 来源 | AI有道(ID:yanyousan_ai) 导读:Attention机制在近几年来在图像,自然语言处理等领域中都取得了重要的突破,被证明有益于提高模型的性能。Attention机制本身也是符合人脑和人眼的感知机制…

注意力模型(Attention Model)理解和实现

1. 直观感受和理解注意力模型 在我们视野中的物体只有少部分被我们关注到,在某一时刻我们眼睛的焦点只聚焦在某些物体上面,而不是视野中的全部物体,这是我们大脑的一个重要功能,能够使得我们有效过滤掉眼睛所获取的大量无用的视觉…

注意力模型(Attention Model)

八月的第一天,苏神yyds! 来源:Coursera吴恩达深度学习课程 在注意力模型直观理解中我们看到注意力模型如何让一个神经网络只注意到一部分的输入句子。当它在生成句子的时候,更像人类翻译。让我们把这些想法转化成确切的式子&…

VOC 数据集格式的生成

VOC 数据集格式的生成 准备好以下文件 images里放置图片 labels里面放置标签 注:前面两行必须是 ignore 和 background labelme2voc.py 里放入以下代码 #!/usr/bin/env pythonfrom __future__ import print_functionimport argparse import glob import os impo…

voc数据集对有标签的数据集数据增强

voc数据集对有标签的数据集数据增强 安装依赖库和imgaug库Bounding Boxes实现读取原影像bounding boxes坐标生成变换序列bounding box 变化后坐标计算 使用示例数据准备设置文件路径设置增强次数设置增强参数修改xml文件中filename和path输出 完整代码 安装依赖库和imgaug库 在…

目标检测:PASCAL VOC 数据集简介

一、简介 PASCAL VOC 挑战赛主要有 Object Classification 、Object Detection、Object Segmentation、Human Layout、Action Classification 这几类子任务 PASCAL 主页 与 排行榜PASCAL VOC 2007 挑战赛主页 、PASCAL VOC 2012 挑战赛主页 、PASCAL VOC Evaluation Server PA…

VOC数据集介绍以及读取(目标检测object detection)

VOC(Visual Object Classes)数据集是一个广泛使用的计算机视觉数据集,主要用于目标检测、图像分割和图像分类等任务。VOC数据集最初由英国牛津大学的计算机视觉小组创建,并在PASCAL VOC挑战赛中使用。 VOC数据集包含各种不同类别…

Pascal VOC 数据集介绍

介绍Pascal VOC数据集: Challenge and tasks, 只介绍Detection与Segmentation相关内容。数据格式衡量方式voc2007, voc2012 Challenge and tasks 给定自然图片, 从中识别出特定物体。 待识别的物体有20类: personbird, cat, c…

VOC和COCO数据集

一.Pascal VOC(Pascal Visual Object Classes) Pascal VOC网址:http://host.robots.ox.ac.uk/pascal/VOC/ 查看各位大牛算法的排名的Leaderboards:http://host.robots.ox.ac.uk:8080/leaderboard/main_bootstrap.php 训练/验证数…

VOC数据集

VOC数据集 VOC数据集 tar格式VOC数据集的下载(使用迅雷加快下载速度)VOC 2007Annotations:包含了xml文件,描述了图片的各种信息,特别是目标的位置坐标ImageSets:主要关注Main文件夹的内容,里面的…

深度学习 — VOC数据集 处理工具类

文章目录 深度学习 — VOC 数据集 & 处理工具类一、数据集简介二、数据集内容1. Annotations1) VOC 数据集类别统计2) VOC 标注文件解析 2. ImageSets1) VOC数据集划分 3. JPEGImages4. SegmentationClass5. SegmentationObject 三 VOC 数据集工具类四、参考资料 转载请注明…

讲解目标检测数据集--------VOC数据集和COCO数据集的使用

仅供学习参考,如有不足,敬请指正 一:VOC数据集 VOC官方网站: http://host.robots.ox.ac.uk/pascal/VOC/ 一般情况下,大家使用2007和2012比较多 voc2007数据集地址: http://host.robots.ox.ac.uk/pasc…

VOC数据集解析 VOC2007解析

VOC数据是 PASCAL VOC Challenge 用到的数据集,官网:http://host.robots.ox.ac.uk/pascal/VOC/ 备注:VOC数据集常用的均值为:mean_RGB(122.67891434, 116.66876762, 104.00698793) pytorch上通用的数据集的归一化指标为&#x…

VOC2007数据集

官方下载地址: https://pjreddie.com/projects/pascal-voc-dataset-mirror/ 下面以voc2017为例 下载训练和验证集: http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar 下载测试集: http://host.robots.ox.ac.uk…

voc数据集格式详解

计算机视觉经常会用到voc数据集 以如下数据集为例 http://www.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/semantic_contours/benchmark.tgz Annotations 包含着xml文件,就是利用roLabelImg进行标注 JPEGImages 里面就是原始的图片 train.txt和va…

PASCAL VOC数据集分析

PASCAL VOC数据集分析 PASCAL VOC为图像识别和分类提供了一整套标准化的优秀的数据集,从2005年到2012年每年都会举行一场图像识别challenge。 本文主要分析PASCAL VOC数据集中和图像中物体识别相关的内容。 在这里采用PASCAL VOC2012作为例子。下载地址为&#xff…

VOC数据集详解

VOC数据集可以用于目标检测、目标分割。 该文件夹下有三个子文件。分别为:ImageSets,JPEGImages,SegmentationClass JPEGImages该文件夹下一般放置原图; SegmentationClass存放标签文件; 该分割结果图是一个灰度图,例如属于飞机部…

VOC数据集介绍及构建自己的VOC格式目标检测数据集

文章目录 1、安装标注工具1.1 ubuntu linux 系统1.2 windows系统 2、labelimg使用方法3、标注结果文件说明3.1 Pascal VOC数据集介绍3.2 Pascal VOC格式3.3 YOLO格式说明 4、标注图片和结果文件整理4.1 Pascal VOC数据组织结构4.2 自定义数据集整理为Pascal VOC格式4.3 Pascal …

VOC数据集制作

VOC数据集制作 1 获取数据1.1 获取图片1.2 图片大小重置1.3 图片重命名 2 标记图片3 按照PascalVOC数据集的格式整理自己的数据4 划分训练集和测试集 1 获取数据 1.1 获取图片 对于数据的获取,可以是图片形式,也可以是视频形式,但最终将转化…

VOC数据集介绍

1、VOC数据集下载 ubuntu系统下打开终端输入命令即可下载 wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar wget http://host.robots.ox.ac.uk/pascal/VOC/…