几篇不错的注意力机制文献

2024-04-25 03:38

本文主要是介绍几篇不错的注意力机制文献,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

注意力机制

几篇不错的注意力文献
  • 在计算机视觉领域,注意力机制有各种不同形式的实现,可以大致分为soft attention和hard attention[1]。Soft attention的典型例子是stn[3],Residual Attention Network[5]和Two-level Attention[2],这种注意力机制是可微的,可以通过反向传播训练。而Hard attention 需要预测关注的区域,通常使用强化学习来训练,例子见[1]中列举的参考文献。

  • [2]中集成了三种类型的attention: 提供候选patch的bottom-up, 依据object筛选相关patch的object-level top-down和定位区分性部件的part-level top-down。

  • [5]这篇文章写得很不错,值得细读。提出了一种Residual attention network,是attention module的堆叠。在每个module中均使用bottom-up top-down结构(参考Stacked hourglass networks[7])。The bottom-up top-down structure mimics the fast feedforward and feedback attention process。利用残差机制使得网络深度可以进一步扩展。网络结构如下图:
    ![Alt text](./1539087067712.pn

  • [6]提出了SENet,这个模型获得了ImageNet 2017竞赛 Image Classification任务的冠军。可以看做是channel维度的attention (gating),参见作者本人的分享:CVPR | ImageNet冠军模型SE-Net详解!
    SE block如下图:
    Alt text

  • [4]提出了一种Deep Attention Selective Network (dasNet)。在训练完成后,通过强化学习(Separable Natural Evolution Strategies)来动态改变attention。具体来说,attention调整的是每个conv filter的权重(和SENet一样有木有,都是channel维度)。policy是一个neural network,RL部分的算法如下:

Alt text

  • 其中每次while循环代表一次SNES迭代,M表示训练好的CNN,u和Sigma是policy参数对应的分布超参,p是采样p个policy参数,n是随机抽取n张图片。具体看文章,算法解释的很清楚。

  • 最后人体姿态估计[8]等领域也有一些很有趣的文章,后面有必要再细看。值得一提的是,本文介绍的大多数attention (gating) 技巧都可以直接加入现有的网络架构,通过合理设计初始化和训练步骤也可以利用现有网络的预训练参数。这大大扩展了这些技巧的适用范围。

Zhao B, Wu X, Feng J, et al. Diversified visual attention networks
for fine-grained object classification[J]. arXiv preprint
arXiv:1606.08572, 2016.
Xiao T, Xu Y, Yang K, et al. The application of two-level attention models in deep convolutional neural network for fine-grained image classification[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2015: 842-850.
Jaderberg M, Simonyan K, Zisserman A. Spatial transformer networks[C]//Advances in Neural Information Processing Systems. 2015: 2017-2025.
Stollenga M F, Masci J, Gomez F, et al. Deep networks with internal selective attention through feedback connections[C]//Advances in Neural Information Processing Systems. 2014: 3545-3553.
Wang F, Jiang M, Qian C, et al. Residual Attention Network for Image Classification[J]. arXiv preprint arXiv:1704.06904, 2017.
Hu J, Shen L, Sun G. Squeeze-and-Excitation Networks[J]. arXiv preprint arXiv:1709.01507, 2017.
Newell A, Yang K, Deng J. Stacked hourglass networks for human pose estimation[C]//European Conference on Computer Vision. Springer International Publishing, 2016: 483-499.
Chu X, Yang W, Ouyang W, et al. Multi-context attention for human pose estimation[J]. arXiv preprint arXiv:1702.07432, 2017.


作者:Wayne2019
来源:CSDN
原文:https://blog.csdn.net/Wayne2019/article/details/78488142?utm_source=copy
版权声明:本文为博主原创文章,转载请附上博文链接!

Attention机制的理解
  1. 学习权重分布:输入数据或特征图上的不同部分对应的专注度不同
  • 这个加权可以是保留所有分量均做加权(即soft attention);也可以是在分布中以某种采样策略选取部分分量(即hard attention),此时常用RL来做。
  • 这个加权可以作用在原图上,也就是《Recurrent Model of Visual Attention》(RAM)和《Multiple Object Recognition with Visual Attention》(DRAM);也可以作用在特征图上,如后续的好多文章(例如image caption中的《 Show, Attend and Tell: Neural Image Caption Generation with Visual Attention》)。
  • 这个加权可以作用在空间尺度上,给不同空间区域加权;也可以作用在channel尺度上,给不同通道特征加权;甚至特征图上每个元素加权。
  • 这个加权还可以作用在不同时刻历史特征上,如Machine Translation。
  1. 任务聚焦:通过将任务分解,设计不同的网络结构(或分支)专注于不同的子任务,重新分配网络的学习能力,从而降低原始任务的难度,使网络更加容易训练。
Attention机制应用相关文献
方式一:学习权重分布
  1. (精细分类)Jianlong Fu, Heliang Zheng, Tao Mei (Microsoft Research), Look Closer to See Better: Recurrent Attention Convolutional Neural Network for Fine-grained Image Recognition, CVPR2017
    在关注的每一个目标尺度上,都采用一个分类的网络和一个产生attention proposal 的网络(APN)。本文最有趣的就是这个APN。这个APN由两个全连接层构成,输出3个参数表示方框的位置,接下来的尺度的分类网络只在这个新产生的方框图像中提特征进行分类。怎么训练呢?本文定义了一个叫做rank Loss,用这个loss来训练APN,并强迫finer的尺度得到的分类结果要比上一个尺度的好,从而使APN更提取出更有利于精细分类的目标局部出来。通过交替迭代训练,APN将越来越聚焦目标上的细微的有区分性的部分。当然这里有一个问题,那就是精细尺度只能聚焦到最显著的部位(如鸟头),但其他部分(如羽毛、鸟爪)就关注不到了。
    Alt text
    Alt text
  2. (图像分类)Fei Wang, etc. (SenseTime Group Limited). Residual Attention Network for Image Classification,CVPR2017
    本文是在分类网络中,增加了Attention module。这个模块是由两支组成,一支是传统的卷积操作,另一支是两个下采样加两个上采样的操作,目的是获取更大的感受野,充当attention map。因为是分类问题,所以高层信息更加重要,这里通过attention map提高底层特征的感受野,突出对分类更有利的特征。相当于变相地增大的网络的深度。

Alt text
3. (图像分割)Liang-Chieh Chen,etc. (UCLA) Attention to Scale: Scale-aware Semantic Image Segmentation, CVPPR2016(权重可视化效果有点意思)
通过对输入图片的尺度进行放缩,构造多尺度。传统的方法是使用average-pooling或max-pooling对不同尺度的特征进行融合,而本文通过构造Attention model(由两个卷积层构成)从而自动地去学不同尺度的权重,进行融合(效果提升1到2个点吧,不同的数据集不一样)。从论文中的权重可视化的结果,能发现大尺寸输入上,对应网络关注于small-scale objects,而在稍微小一点的尺寸输入上,网络就关注于middle-scale,小尺寸输入则关注background contextual information。可视化效果感觉非常有意思。
Alt text
4. (Image Caption看图说话)Kelvin Xu,etc. Show, Attend and Tell: Neural Image Caption Generation with Visual Attention,ICML2015
大意是对一个图像进行描述时,生成不同的单词时,其重点关注的图像位置是不同的,可视化效果不错。
Alt text

方式二:任务聚焦/解耦
  1. (Instance Segmentation)Kaiming He, etc. Mask R-CNN
    Kaiming大神在Mask R-CNN中,将segment branch的损失函数由softmax loss换成了binary sigmoid loss。即是,将分类和分割任务进行解耦,当box branch已经分好类时,segment branch 就不用再关注类别,只需要关注分割,从而使网络更加容易训练。具体到训练中,假设分狗、猫、马三类,segment branch会得到3个mask,当训练样本是狗类,那么这个类别的loss才会被反传,猫类和马类对应的mask都不用管。也就是说,生成狗mask的那部分网络连接(卷积核)只需要聚焦于狗类的样本,然后将属于狗的像素目标凸显出来出来,训练其他类别时不会对这些连接权重进行更新。通过这个任务解耦,分割的结果得到了很大的提升(5%-7%)。Kaiming大神在文中也指出,当只输出一个mask时,分割结果只是略差,从而进一步说明了将分类和分割解耦的作用

  2. (图像分割)Lin etc. Fully Convolutional Network with Task Partitioning for Inshore Ship Detection in Optical Remote Sensing Images
    针对靠岸舰船,本文通过任务解耦的方法来处理。因为高层特征表达能力强,分类更准,但定位不准;底层低位准,但分类不准。为了应对这一问题,本文利用一个深层网络得到一个粗糙的分割结果图(船头/船尾、船身、海洋和陆地分别是一类)即Attention Map;利用一个浅层网络得到船头/船尾预测图,位置比较准,但是有很多虚景。训练中,使用Attention Map对浅层网络的loss进行引导,只反传在粗的船头/船尾位置上的loss,其他地方的loss不反传。相当于,深层的网络能得到一个船头/船尾的大概位置,然后浅层网络只需要关注这些大概位置,然后预测出精细的位置,图像中的其他部分(如船身、海洋和陆地)都不关注,从而降低了学习的难度。

Alt text

参考资料

知乎问题:目前主流的attention方法都有哪些?
知乎问题:Attention based model 是什么,它解决了什么问题?
知乎专栏总结:计算机视觉中的注意力机制
CSDN博客总结:Attention Model(mechanism) 的 套路
CSDN专栏:从2017年顶会论文看 Attention Model
CSDN专栏:模型汇总24 - 深度学习中Attention Mechanism详细介绍:原理、分类及应用


作者:WeisongZhao
来源:CSDN
原文:https://blog.csdn.net/weixin_41923961/article/details/81516589?utm_source=copy
版权声明:本文为博主原创文章,转载请附上博文链接!

这篇关于几篇不错的注意力机制文献的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/933609

相关文章

Spring使用@Retryable实现自动重试机制

《Spring使用@Retryable实现自动重试机制》在微服务架构中,服务之间的调用可能会因为一些暂时性的错误而失败,例如网络波动、数据库连接超时或第三方服务不可用等,在本文中,我们将介绍如何在Sp... 目录引言1. 什么是 @Retryable?2. 如何在 Spring 中使用 @Retryable

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。

【Tools】大模型中的自注意力机制

摇来摇去摇碎点点的金黄 伸手牵来一片梦的霞光 南方的小巷推开多情的门窗 年轻和我们歌唱 摇来摇去摇着温柔的阳光 轻轻托起一件梦的衣裳 古老的都市每天都改变模样                      🎵 方芳《摇太阳》 自注意力机制(Self-Attention)是一种在Transformer等大模型中经常使用的注意力机制。该机制通过对输入序列中的每个元素计算与其他元素之间的相似性,

如何通俗理解注意力机制?

1、注意力机制(Attention Mechanism)是机器学习和深度学习中一种模拟人类注意力的方法,用于提高模型在处理大量信息时的效率和效果。通俗地理解,它就像是在一堆信息中找到最重要的部分,把注意力集中在这些关键点上,从而更好地完成任务。以下是几个简单的比喻来帮助理解注意力机制: 2、寻找重点:想象一下,你在阅读一篇文章的时候,有些段落特别重要,你会特别注意这些段落,反复阅读,而对其他部分

【Tools】大模型中的注意力机制

摇来摇去摇碎点点的金黄 伸手牵来一片梦的霞光 南方的小巷推开多情的门窗 年轻和我们歌唱 摇来摇去摇着温柔的阳光 轻轻托起一件梦的衣裳 古老的都市每天都改变模样                      🎵 方芳《摇太阳》 在大模型中,注意力机制是一种重要的技术,它被广泛应用于自然语言处理领域,特别是在机器翻译和语言模型中。 注意力机制的基本思想是通过计算输入序列中各个位置的权重,以确

FreeRTOS内部机制学习03(事件组内部机制)

文章目录 事件组使用的场景事件组的核心以及Set事件API做的事情事件组的特殊之处事件组为什么不关闭中断xEventGroupSetBitsFromISR内部是怎么做的? 事件组使用的场景 学校组织秋游,组长在等待: 张三:我到了 李四:我到了 王五:我到了 组长说:好,大家都到齐了,出发! 秋游回来第二天就要提交一篇心得报告,组长在焦急等待:张三、李四、王五谁先写好就交谁的

UVM:callback机制的意义和用法

1. 作用         Callback机制在UVM验证平台,最大用处就是为了提高验证平台的可重用性。在不创建复杂的OOP层次结构前提下,针对组件中的某些行为,在其之前后之后,内置一些函数,增加或者修改UVM组件的操作,增加新的功能,从而实现一个环境多个用例。此外还可以通过Callback机制构建异常的测试用例。 2. 使用步骤         (1)在UVM组件中内嵌callback函

Smarty模板引擎工作机制(一)

深入浅出Smarty模板引擎工作机制,我们将对比使用smarty模板引擎和没使用smarty模板引擎的两种开发方式的区别,并动手开发一个自己的模板引擎,以便加深对smarty模板引擎工作机制的理解。 在没有使用Smarty模板引擎的情况下,我们都是将PHP程序和网页模板合在一起编辑的,好比下面的源代码: <?php$title="深处浅出之Smarty模板引擎工作机制";$content=