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

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

相关文章

Nginx之upstream被动式重试机制的实现

《Nginx之upstream被动式重试机制的实现》本文主要介绍了Nginx之upstream被动式重试机制的实现,可以通过proxy_next_upstream来自定义配置,具有一定的参考价值,感兴... 目录默认错误选择定义错误指令配置proxy_next_upstreamproxy_next_upst

Spring排序机制之接口与注解的使用方法

《Spring排序机制之接口与注解的使用方法》本文介绍了Spring中多种排序机制,包括Ordered接口、PriorityOrdered接口、@Order注解和@Priority注解,提供了详细示例... 目录一、Spring 排序的需求场景二、Spring 中的排序机制1、Ordered 接口2、Pri

MySQL 缓存机制与架构解析(最新推荐)

《MySQL缓存机制与架构解析(最新推荐)》本文详细介绍了MySQL的缓存机制和整体架构,包括一级缓存(InnoDBBufferPool)和二级缓存(QueryCache),文章还探讨了SQL... 目录一、mysql缓存机制概述二、MySQL整体架构三、SQL查询执行全流程四、MySQL 8.0为何移除查

一文详解Java Condition的await和signal等待通知机制

《一文详解JavaCondition的await和signal等待通知机制》这篇文章主要为大家详细介绍了JavaCondition的await和signal等待通知机制的相关知识,文中的示例代码讲... 目录1. Condition的核心方法2. 使用场景与优势3. 使用流程与规范基本模板生产者-消费者示例

一文带你理解Python中import机制与importlib的妙用

《一文带你理解Python中import机制与importlib的妙用》在Python编程的世界里,import语句是开发者最常用的工具之一,它就像一把钥匙,打开了通往各种功能和库的大门,下面就跟随小... 目录一、python import机制概述1.1 import语句的基本用法1.2 模块缓存机制1.

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制

Redis缓存问题与缓存更新机制详解

《Redis缓存问题与缓存更新机制详解》本文主要介绍了缓存问题及其解决方案,包括缓存穿透、缓存击穿、缓存雪崩等问题的成因以及相应的预防和解决方法,同时,还详细探讨了缓存更新机制,包括不同情况下的缓存更... 目录一、缓存问题1.1 缓存穿透1.1.1 问题来源1.1.2 解决方案1.2 缓存击穿1.2.1

Java如何通过反射机制获取数据类对象的属性及方法

《Java如何通过反射机制获取数据类对象的属性及方法》文章介绍了如何使用Java反射机制获取类对象的所有属性及其对应的get、set方法,以及如何通过反射机制实现类对象的实例化,感兴趣的朋友跟随小编一... 目录一、通过反射机制获取类对象的所有属性以及相应的get、set方法1.遍历类对象的所有属性2.获取

MySQL中的锁和MVCC机制解读

《MySQL中的锁和MVCC机制解读》MySQL事务、锁和MVCC机制是确保数据库操作原子性、一致性和隔离性的关键,事务必须遵循ACID原则,锁的类型包括表级锁、行级锁和意向锁,MVCC通过非锁定读和... 目录mysql的锁和MVCC机制事务的概念与ACID特性锁的类型及其工作机制锁的粒度与性能影响多版本

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

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