注意力之双线性模型注意力

article/2025/10/29 15:43:21

本文主要针对两篇论文:双线性注意力网络模型和深度模块化注意力进行总结,加上自己对其的理解。若有不足,还望指出。
论文地址:
双线性注意力网络
深度模块化注意力
项目地址:
双线性注意力网络
深度模块化注意力

0. 写在前面

首先我们要知道什么是注意力机制和什么是双线性模型

0.1 注意力机制

注意力一词来源与我们自身的视觉系统,现实生活中,我们观察事物倾向于将信息集中进行分析而忽略掉图像中的无关信息。同样,在计算机视觉研究领域中,也存在类似情况,例如VQA任务,可能只有图像中的个别对象与我们的答案有关,同样,在问题中可能只有个别个单词与我们的图像有关。注意力机制就将这种关系进行了整合,允许模型动态的去关注输入的特定部分,从而有效的提高模型的效率。

它的一个重要假设就是:学习得到的注意力权重体现了当前需输出的数据与输入序列的某些位置的相关性。权重越大,相关性越高。
如图:对图像字幕任务中生成的文本有显著影响的相关图像区域(高注意权重)
在这里插入图片描述

0.2 堆叠式注意力机制(Stacked Attention)

堆叠注意力就是一种多层的注意力,通过多步推理定位与问题相关的图像区域进行答案预测。具体步骤如下:

  • 第一步:使用问题向量(q1)来查询第一视觉注意层的图像向量(v1),将问题图像和检索到的图像向量(与问题相关的图像区域)结合形成查询向量(u1),
  • 第二步:用第一步得到的查询向量u1继续来查询第二视觉注意层的图像向量v2,将第一视觉注意层的查询向量和与其相关的图像区域的图像向量结合形成新的查询向量u2。
    由此,较高级别的注意层,将更关注图像中与答案相关的区域。
    在这里插入图片描述
    在这里插入图片描述

0.3 分层注意力机制(Hierarchical Attention Model)HAM

分层注意力机制也是一种多层注意力机制,它是对输入序列进行多次抽象,这样使得低层抽象的上下文向量成为下一次抽象的查询状态。一个典型应用就是对文本进行结构化分层进行抽取。
文本是由不同的句子组合而成的,而每个句子又包含不同的单词,HAM能够对文章这种自然的层次化结构进行抽取,具体如下:

  • 第一步:就是对文章中的每个句子建议一个注意力模型,这个注意力模型输入的是每个句子的基本单词,从而得到句子的特征表示。
  • 第二步:将句子的特征表示输入到后续的注意力模型中来构建整段文本的特征表示,最后得到的特征就是文本特征输入到分类器中进行最终的预测。

0.4 分层共同注意力(Hierarchical Co-Attention )

分层共同注意力是在分层注意力上的基础上加了共同,与之不同的是,分层注意力只通过问题去关注图像,此模型在问题和图像之间具有自然的对称性,即图像可引导问题注意,问题可引导图像注意。
在问题特征处理上采用分层,首先将处理单词特征,再将单词特征作为输入处理短语特征,再将短语特征作为输出句子特征,最后用句子特征进行答案预测。

0.5 双线性模型

双线性模型也有称为双线性池化,主要用于特征融合。
如果特征x和特征y来自两个特征提取器(例如VQA任务中,问题特征和图像特征),则被称为多模双线性池化(MBP),
如果来自同一个则交同源双线性池化(HBP)或者二阶池化。

原始的Bilinear Pooling存在融合后的特征维数过高的问题融合后的特征维数=特征x与特征y的维数乘积,一些论文作者尝试用PCA(主成分分析)进行降维,有的采用Tucker分解等

  • 双线性池化

基于Bilinear CNN Models for Fine-grained Visual Recognition

在这里插入图片描述

它的双线性模型B由四个部分组成 B = ( f A , f B , P , C ) B=(f_A,f_B,P,C) B=(fA,fB,P,C), f A 和 f B f_A和f_B fAfB是特征函数,P是池化函数,C是分类函数,公式如下:

它的公式如下:
在这里插入图片描述
公式理解:就是将图像中的同一位置上的两个特征进行乘,然后得到矩阵B,再对矩阵B进行sum pooliing池化得到矩阵 ξ \xi ξ,再对 ξ \xi ξ向量化,得到双线性向量x,再对x进行归一化操作,得到融合后的特征z,再将z用于分类和预测。

  • 双线性模型

双线性模型指形如如下公式的操作:
在这里插入图片描述
忽视归一化操作,HBP特征如下表示:
在这里插入图片描述

把提取的特征送入全连接层再送入softmax层,公式等价是:
在这里插入图片描述
W j W_j Wj是全连接层的参数矩阵需要学习的, W j R W^R_j WjR是与之对应的,所以直接对 W j R W^R_j WjR进行学习。就是双线性模型与双线性池化差不多的原因。

  • MLB(Mutimodal Low-rank Bilinear Pooliing)多模态低秩双线性池化方法

此概念出自《Hadamard product for low-rank bilinear pooling》,核心是Hadamard积(按元素乘)来实现bilinear model。为了减少双线性矩阵W的秩,用低秩矩阵UV的乘积来近似,把上面公式写成如下:(低秩双线性模型)
在这里插入图片描述
如果需要扩大矩阵 U i 和 V i U_i和V_i UiVi,再采用了池化矩阵P(低秩双线性池化),控制输出即可
在这里插入图片描述

  • MCB(Multimodal Compact Bilinear Pooling)多模态紧凑型双线性池化
    MCB在VQA任务中处理的过程如下:
    在这里插入图片描述
    在这里插入图片描述

这里 Ψ \Psi Ψ是一个sketch函数(一种降维方式),在这里插入图片描述
在这里插入图片描述
MCB模块的工作:加了attention之后的框架如下:
在这里插入图片描述
这是一共用了两次的MCB模块,第一个融合了文本和图像的特征来提出图像的attention,第二个是将图像的attention特征与文本特征再一次融合,并将结构送入全连接网络,再送入softmax分类器得到答案。

1. 双线性注意力

作者指出,虽然协同注意力网络能够有选择的关注问题关键词和图像关键区域,但是却忽视了两者的交互带来的计算量。所以作者提出将协同注意力扩展为双线性注意力,如果问题中涉及多个关键词,那么就会对每个关键词使用视觉注意力来查找视觉关键区域。

因此作者提出双线性注意力网络,结构如下图:
在这里插入图片描述

公式如下:
两个多通道的输入X和Y,为了减少两个输入通道,引入双线性注意力图A,
在这里插入图片描述
其中A是一个双线性权重矩阵,上式还可以如下表示:
在这里插入图片描述
我们将双线性注意力网络函数表示如下:
在这里插入图片描述

双线性注意力模型图如下表示:
在这里插入图片描述
可以看出A中的每个元素都是经过低秩池化得到,
在这里插入图片描述
多重双线性池化注意力分布图由softmax输出图如下表示:
在这里插入图片描述


http://chatgpt.dhexx.cn/article/1mscOjTE.shtml

相关文章

注意力模型CBAM

论文:CBAM: Convolutional Block Attention Module Convolutional Block Attention Module (CBAM) 表示卷积模块的注意力机制模块。是一种结合了空间(spatial)和通道(channel)的注意力机制模块。相比于senet只关注通道…

注意力模块

目前主流的注意力机制可以分为以下三种:通道注意力、空间注意力以及自注意力(Self-attention) 通道域旨在显示的建模出不同通道之间的相关性,通过网络学习的方式来自动获取到每个特征通道的重要程度,最后再为每个通道…

注意力机制学习

注意力机制学习 学习于博客https://blog.csdn.net/weixin_44791964/article/details/121371986 1.Channel Attention 1.1 SeNet 对于输入进来的特征层,关注其每一个通道的权重,让网络关注它最需要关注的通道。【channel不变,h,w变】 代表…

一般注意力模型

文章目录 一般注意力模型注意力输入注意力输出 一般注意力模型 描述一般注意力模型,首先要描述可以使用注意力的模型的一般特征。我们将这种模型称为任务模型,如图: 这个模型接受一个输入,执行指定的任务,然后产生所…

深度学习中的注意力机制模型及代码实现(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数据集包含各种不同类别…