注意力模型---Attention Model

article/2025/10/29 15:40:09

注意力模型---Attention Model

  • 1、Soft Attention Mode
    • 1.1 什么是Soft Attention Mode
    • 1.1 公式介绍
  • 2、四种注意力中的打分函数
    • 2.1 加性注意力(additive attention)
    • 2.2 点积注意力(multiplicative attention)与双线性注意力(MLB)
    • 2.3 缩放点积模型
  • 3、注意力变体
    • 3.1 硬性注意力机制
    • 3.2 自注意力(Self-Attention)
  • 4、Attention 带来的算法改进

1、Soft Attention Mode

1.1 什么是Soft Attention Mode

“Neural machine translation by jointly learning to align and translate”这篇论文提出了soft Attention Model,并将其应用到了机器翻译上面。所谓Soft意思是在求注意力分配概率分布的时候,对于输入句子X中任意一个单词都给出个概率,是个概率分布
在这里插入图片描述

1.1 公式介绍

下面介绍一下理论文中提到的公式

在原版的Seq2Seq和添加了attention机制的Seq2Seq相比,在公式上的差别就是在式子Si中的C有没有i。因为这个i就代表了是不是每一个时间步骤上添加不同的背景向量。

Global Attention Mode其实就是softAttention Mode。在Seq2Seq的Decoder的过程中,每一个时间步的Context vector需要计算Encoder中每一个单词的注意力权重,然后加权得到

Si代表每个Decoder的隐藏层输出
在这里插入图片描述

Ci表示的是背景向量,它可以由Encoder的隐藏层输出状态hj的加权平均数得出,其中状态所加的权就是注意力权重 ai

**注意力权重 ai**可以看出就是一个softmax,用来归一化隐藏层si-1Encoder的隐藏层输出状态hj对齐程度评估。

eij是一种对齐模式,也就是注意力函数,这当中有着很多的变体。下面来看看这四种变体都有什么。
在这里插入图片描述

2、四种注意力中的打分函数

2.1 加性注意力(additive attention)

加性注意力是最经典的注意力机制 (Bahdanau et al., 2015) ,它使用了全连接层来计算注意力的分配:

其中,Pi表示Decoder的隐藏层输出q表示Encoder所有的隐藏层输出V,W,U都是可以训练的参数
在这里插入图片描述
加性模型引入了可学习的参数,将向量 p p p和原始输入向量 q q q 映射到不同的向量空间后进行计算打分,显然相较于加性模型,点积模型具有更好的计算效率。

2.2 点积注意力(multiplicative attention)与双线性注意力(MLB)

乘法注意力(Multiplicative attention)(Luong et al., 2015) 通过计算以下函数而简化了注意力操作,是直接用Decoder的hidden state 点乘所有的Encoder的hidden state

其中,ht是decoder中前一个隐藏层输出的结果;hs是encoder中所有的hidden state组合成的矩阵。
在这里插入图片描述
上面第一个公式有一个缺陷, ht的行数和hs的行数必须是相等的,也就要使得encoder和decoder的隐藏层长度是一样的,这样的条件太苛刻了,当不相等的时候公式便不可行,所以采用在中间加上权重矩阵的做法。

2.3 缩放点积模型

注意力机制不仅能用来处理编码器或前面的隐藏层,它同样还能用来获得其他特征的分布,例如阅读理解任务中作为文本的词嵌入 (Kadlec et al., 2017)。然而,注意力机制并不直接适用于分类任务,因为这些任务并不需要情感分析(sentiment analysis)等额外的信息。在这些模型中,通常我们使用 LSTM 的最终隐藏状态或像最大池化和平均池化那样的聚合函数来表征句子。

其中 q q q是Decoder的隐藏层输出, h h h是encoder中所有的hidden state组合成的矩阵。 D D D为输入向量的维度。
在这里插入图片描述
当输入向量的维度比较高的时候,点积模型通常有比较大的方差,从而导致Softmax函数的梯度会比较小。因此,缩放点积模型通过除以一个平方根项来平滑分数数值,也相当于平滑最终的注意力分布,缓解这个问题。

3、注意力变体

3.1 硬性注意力机制

直接从输入句子里面找到某个特定的单词,然后把目标句子单词和这个单词对齐,而其它输入句子中的单词硬性地认为对齐概率为0,这就是Hard Attention Model的思想。Hard AM在图像里证明有用,但是在文本里面用处不大,因为这种单词一一对齐明显要求太高,如果对不齐对后续处理负面影响很大。

3.2 自注意力(Self-Attention)

关键值注意力 (Daniluk et al., 2017) 是最近出现的注意力变体机制,它将形式和函数分开,从而为注意力计算保持分离的向量。它同样在多种文本建模任务 (Liu & Lapata, 2017) 中发挥了很大的作用。

具体来说,关键值注意力将每一个隐藏向量 hi 分离为一个键值 ki 和一个向量 vi:[ki;vi]=hi
在这里插入图片描述
在这里插入图片描述

4、Attention 带来的算法改进

Attention机制为机器翻译任务带来了曙光,具体来说,它能够给机器翻译任务带来以下的好处

  1. Attention显著地提高了翻译算法的表现。它可以很好地使Decoder网络注意原文中的某些重要区域来得到更好的翻译。
  2. Attention解决了信息瓶颈问题。原先的Encoder-Decoder网络的中间状态只能存储有限的文本信息,现在它已经从繁重的记忆任务中解放出来了,它只需要完成如何分配注意力的任务即可。
  3. Attention减轻了梯度消失问题。Attention在网络后方到前方建立了连接的捷径,使得梯度可以更好的传递。
  4. Attention提供了一些可解释性。通过观察网络运行过程中产生的注意力的分布,我们可以知道网络在输出某句话时都把注意力集中在哪里;而且通过训练网络,我们还得到了一个免费的翻译词典(soft alignment)!还是如下图所示,尽管我们未曾明确地告诉网络两种语言之间的词汇对应关系,但是显然网络依然学习到了一个大体上是正确的词汇对应表。

http://chatgpt.dhexx.cn/article/2i3BTS0S.shtml

相关文章

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

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

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

作者&编辑 | 言有三 来源 | 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 获取图片 对于数据的获取,可以是图片形式,也可以是视频形式,但最终将转化…