一般注意力模型

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

文章目录

  • 一般注意力模型
    • 注意力输入
    • 注意力输出

在这里插入图片描述

一般注意力模型

描述一般注意力模型,首先要描述可以使用注意力的模型的一般特征。我们将这种模型称为任务模型,如图:

这个模型接受一个输入,执行指定的任务,然后产生所需的输出。例如,任务模型可以是一种语言模型,它以一段文本作为输入,并生成内容的摘要、情感的分类或逐字翻译成另一种语言的文本作为输出。或者,任务模型可以获取一张图像,并为该图像生成描述或分割。

任务模型由四个子模型组成:特征模型( feature model)、查询模型(query model)、注意力模型( attention model)和输出模型(output model)。

特征模型和查询模型,用于为注意力模型提供输入。注意力模型和输出模型用于产生输出。

注意力输入

假设任务模型以矩阵 X ∈ R d x × n x \boldsymbol{X}∈\mathbb{R}^{d_x×n_x} XRdx×nx为输入,其中 d x d_x dx表示输入向量的大小, n x n_x nx表示输入向量的数量。这个矩阵中的列可以表示句子中的词、图像中的像素、声音序列的特征或任何其他输入集合。

特征模型输入 X \boldsymbol{X} X,输出 n f n_f nf个特征向量 f 1 , … , f n f ∈ R d f \boldsymbol{f}_{1}, \ldots, \boldsymbol{f}_{n_{f}} \in \mathbb{R}^{d_{f}} f1,,fnfRdf。其中 d f d_f df表示特征向量的大小。特征模型可以是循环神经网络(RNN)、卷积神经网络(CNN)、一个简单的嵌入层、对原始数据进行线性变换,或者根本不进行变换等等。本质上,特征模型包含了所有将原始输入 X \boldsymbol{X} X转换为特征向量 f 1 , … , f n f ∈ R d f \boldsymbol{f}_{1}, \ldots, \boldsymbol{f}_{n_{f}} \in \mathbb{R}^{d_{f}} f1,,fnfRdf(用于输入注意力模型)的操作。

为了确定要重点注意哪些向量,注意力模型还需要查询向量 q ∈ R d q \boldsymbol{q}\in \mathbb{R}^{d_q} qRdq,其中 d q d_q dq表示查询向量的大小。查询向量由查询模型得到,通常是根据模型所需的输出类型设计。查询向量告诉注意力模型要注意哪些特征向量。

注意力输出

注意力模型由单个或多个的一般注意力模块(general attention modules)组成。下图给出了一般注意力模块的内部机制:

一般注意力模块的输入有查询向量 q ∈ R d q \boldsymbol{q}\in \mathbb{R}^{d_q} qRdq和由特征向量组成的矩阵 F = [ f 1 , … , f n f ] ∈ R d f × n f \boldsymbol{F}=[\boldsymbol{f}_{1}, \ldots, \boldsymbol{f}_{n_{f}}] \in \mathbb{R}^{d_{f}\times n_f} F=[f1,,fnf]Rdf×nf

首先,可以使用权重矩阵 W K ∈ R d k × d f \boldsymbol{W}_K∈\mathbb{R}^{d_k×d_f} WKRdk×df W V ∈ R d v × d f \boldsymbol{W}_V∈\mathbb{R}^{d_v×d_f} WVRdv×df F \boldsymbol{F} F进行线性变换:

得到键(Keys)矩阵 K = [ k 1 , … , k n f ] ∈ R d k × n f \boldsymbol{K}=\left[\boldsymbol{k}_{1}, \ldots, \boldsymbol{k}_{n_{f}}\right] \in \mathbb{R}^{d_{k} \times n_{f}} K=[k1,,knf]Rdk×nf和值(Values)矩阵 V = [ v 1 , … , v n f ] ∈ R d v × n f \boldsymbol{V}=\left[\boldsymbol{v}_{1}, \ldots, \boldsymbol{v}_{n_{f}}\right] \in \mathbb{R}^{d_{v} \times n_{f}} V=[v1,,vnf]Rdv×nf,其中 d k d_k dk d v d_v dv分别表示键向量( K \boldsymbol{K} K的列)和值向量( V \boldsymbol{V} V的列)的大小。

这两个权重矩阵可以是可训练的或者预先指定的。例如,可以选择将 W K \boldsymbol{W}_K WK W V \boldsymbol{W}_V WV都定义为单位矩阵,这将保留原始的特征向量。还有其他定义键和值的方法,例如用不同的 F \boldsymbol{F} F产生键和值,不过要保证 K \boldsymbol{K} K V \boldsymbol{V} V的列数相同。

注意力模块的目标是得到 V \boldsymbol{V} V中值向量的加权平均值。用于产生此输出的权重是通过注意力打分(attention scoring)和对齐(alignment )步骤获得的。

查询向量 q \boldsymbol{q} q和键矩阵 K \boldsymbol{K} K用于计算注意力得分向量 e = [ e 1 , … , e n f ] ∈ R n f \boldsymbol{e}=\left[e_{1}, \ldots, e_{n_{f}}\right] \in \mathbb{R}^{n_{f}} e=[e1,,enf]Rnf。这是通过打分函数score()完成的:

查询 q \boldsymbol{q} q表示对信息的请求。注意得分 e l e_l el表示根据查询 q \boldsymbol{q} q,键向量 k l \boldsymbol{k}_l kl中包含的信息有多重要。表2给出了各种注意力打分函数。


注意力得分的范围通常在 [ 0 , 1 ] [0,1] [0,1]之外。因此,还需要通过对齐层归一化注意力分数,常用Softmax函数:

其中 a l ∈ R 1 a_l∈\mathbb{R}^1 alR1为第 l l l个值向量对应的注意力权值。

注意力权重为注意力模块提供了一个相当直观的解释。每个权重都直接表明每个特征向量相对于其他特征向量的重要性。

通过注意力权重向量 a = [ a 1 , … , a n f ] ∈ R n f \boldsymbol{a}=\left[a_{1}, \ldots, a_{n_{f}}\right] \in \mathbb{R}^{n_{f}} a=[a1,,anf]Rnf对值矩阵 V \boldsymbol{V} V各列进行加权平均,得到上下文向量(context vector) c ∈ R d v \boldsymbol{c}∈ \mathbb{R}^{d_v} cRdv

最后,上下文向量输入输出模型得到输出 y ^ \boldsymbol{\hat{y}} y^

这个输出模型将上下文向量转换为输出预测。例如,它可以是一个简单的softmax层,将上下文向量 c \boldsymbol{c} c作为输入:

其中 d y d_y dy是输出向量的大小, W c ∈ R d y × d v \boldsymbol{W}_c\in \mathbb{R}^{d_y\times d_v} WcRdy×dv b c ∈ R d y \boldsymbol{b}_c\in \mathbb{R}^{d_y} bcRdy是可训练参数。

参考:

[1] A General Survey on Attention Mechanisms in Deep Learning https://arxiv.org/pdf/2203.14263v1.pdf

文章预告


http://chatgpt.dhexx.cn/article/qgOimobL.shtml

相关文章

深度学习中的注意力机制模型及代码实现(SE Attention、CBAM Attention)

目录 常用的注意力机制模型 SE Attention CBAM Attention CBAM Attention 模型结构​ CBAM Attention 代码实现(Pytorch版): 注意力机制加到网络的哪里合适 常用的注意力机制模型 常用的注意力机制多为SE Attention和CBAM Attention。它…

深度学习笔记——Attention Model(注意力模型)学习总结

深度学习里的Attention model其实模拟的是人脑的注意力模型,举个例子来说,当我们观赏一幅画时,虽然我们可以看到整幅画的全貌,但是在我们深入仔细地观察时,其实眼睛聚焦的就只有很小的一块,这个时候人的大脑…

什么是注意力机制?

Attention机制在近几年来在图像,自然语言处理等领域中都取得了重要的突破,被证明有益于提高模型的性能。 Attention机制本身也是符合人脑和人眼的感知机制,这次我们主要以计算机视觉领域为例,讲述Attention机制的原理&#xff0c…

transformer 模型(self-attention自注意力)

transformer模型在《Attention is all you need》论文中提出 这篇论文主要亮点在于:1)不同于以往主流机器翻译使用基于RNN的seq2seq模型框架,该论文用attention机制代替了RNN搭建了整个模型框架。2)提出了多头注意力(…

深度学习中的注意力机制模型ECANet

目录 ECANet简介 ECA Module ECANet 性能对比 ECANet简介 Efficient Channel Attention Module 简称 ECA,2020年 Qilong Wang等人提出的一种 高效通道注意力(ECA)模块 ; 提出了一种 不降维的局部跨通道交互策略 ,有效避免了降维对于通道…

注意力模型直观理解(Attention Model Intuition)

来源:Coursera吴恩达深度学习课程 本周的课程我们都在使用这个编码解码的构架(a Encoder-Decoder architecture)来完成机器翻译。当你使用RNN读一个句子,于是另一个会输出一个句子。注意力模型(the Attention Model&a…

深度学习中的注意力机制

作者 | 张俊林 责编 | 何永灿 最近两年,注意力模型(Attention Model)被广泛使用在自然语言处理、图像识别及语音识别等各种不同类型的深度学习任务中,是深度学习技术中最值得关注与深入了解的核心技术之一。 本文以机器翻译为例&…

注意力模型---Attention Model

注意力模型---Attention Model 1、Soft Attention Mode1.1 什么是Soft Attention Mode1.1 公式介绍 2、四种注意力中的打分函数2.1 加性注意力(additive attention)2.2 点积注意力(multiplicative attention)与双线性注意力(MLB)2…

【机器学习】关于注意力模型(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 数据集工具类四、参考资料 转载请注明…