计算机视觉中的注意力机制(VisualAttention)

计算机视觉中的注意机制(VisualAttention)
击上⽅“AI算法与图像处理”,选择加"星标"或“置顶”
重磅⼲货,第⼀时间送达
作者:Jim-Zhiwei
转载⾃:论⽂收割机
本⽂将会介绍计算机视觉中的注意⼒(visual attention)机制,本⽂为了扩⼤受众体以及增加⽂章的可读性,采⽤递进式的写作⽅式。第1部分的全部以及第2部分的⼤部分是没有专业障碍的,后续的部分是为了更深⼊地了解计算机视觉中的注意⼒机制。
1 前⾔
注意⼒(attention)其实是⼀个⾮常常见,但是⼜会被忽略的事实。⽐如天空⼀只鸟飞过去的时候,往往你的注意⼒会追随着鸟⼉,天空在你的视觉系统中,⾃然成为了⼀个背景(background)信息
⼀般<;注1>的神经⽹络识别物体,是通过⼤量的数据来训练出⼀个神经⽹络[1]。神经⽹络含有很多神经元,⽐如⼀个神经⽹络如果见过⼤量的⼿写数字,那么这个神经⽹络是能够识别出⼀个新的⼿写数字代表的数值的。
但是这样训练出的神经⽹络,对图⽚的全部特征其实是等价处理的。虽然神经⽹络学习到了图⽚的特征来进⾏分类,但是这些特征在神经⽹络“眼⾥”没有差异,神经⽹络并不会过多关注某个“区域”<;注2>。但是⼈类注意⼒是会集中在这张图⽚的⼀个区域内,⽽其他的信息受关注度会相应降低。
计算机视觉(computer vision)中的注意⼒机制(attention)的基本思想就是想让系统学会注意⼒——能够忽略⽆关信息⽽关注重点信息。为什么要忽略⽆关信息呢?
举个例⼦,⽣活中我们坐在咖啡店玩⼿机,如果注意⼒放在⾃⼰的⼿机上,基本上完全不知道外界在说什么东西,但是如果你恰好想听⼀个⼈说话,你眼睛离开⼿机,开始将注意⼒集中在那个⼈的声⾳上,你就能听清楚谈话的内容了。
视觉也是类似,你⼀扫⽽过,⼏乎很难注意到⼀些信息,但是如果你集中注意⼒看过去,事物的细节
会在你的脑海⾥形成印象。
神经⽹络也是如此,你不告诉它你想关注鸟⼉,那么整张图⽚的信息其实还是天空占的⽐例更⼤,所以它会认为这是⼀张有关天空的照⽚,⽽不是鸟⼉。
本⽂关注的领域是计算机视觉中的注意⼒机制,同时在⾃然语⾔处理(NLP)或者视觉问答系统(VQA)中也有对应的注意⼒机制,可以相关⽂章可以看。
2 注意⼒研究进展简介
粗略了解了注意⼒机制背后的思想,我们应该花时间去研究如何实现视觉系统的注意⼒机制。早期的注意⼒研究,是从⼤脑成像机制去分析,采⽤了⼀种winner-take-all [2]的机制来研究如何建模注意⼒,这⾥就不做过多分析。
在深度学习发展的今天,搭建能够具备注意⼒机制的神经⽹络则开始显得更加重要,⼀⽅⾯是这种神经⽹络能够⾃主学习注意⼒机制,另⼀⽅⾯则是注意⼒机制能够反过来帮助我们去理解神经⽹络看到的世界[3]。
近⼏年来,深度学习与视觉注意⼒机制结合的研究⼯作,⼤多数是集中于使⽤掩码(mask)来形成注意⼒机制。掩码的原理在于通过另⼀层新的权重,将图⽚数据中关键的特征标识出来,通过学习训练,
让深度神经⽹络学到每⼀张新图⽚中需要关注的区域,也就形成了注意⼒。
这种思想,进⽽演化成两种不同类型的注意⼒,⼀种是软注意⼒(soft attention),另⼀种则是强注意⼒<;注3>(hard attention)。
软注意⼒的关键点在于,这种注意⼒更关注区域[4]或者通道[5],⽽且软注意⼒是确定性的注意⼒,学习完成后直接可以通过⽹络⽣成,最关键的地⽅是软注意⼒是可微的,这是⼀个⾮常重要的地⽅。可以微分的注意⼒就可以通过神经⽹络算出梯度并且前向传播和后向反馈来学习得到注意⼒的权重[6]。
强注意⼒[7]与软注意⼒不同点在于,⾸先强注意⼒是更加关注点,也就是图像中的每个点都有可能延伸出注意⼒,同时强注意⼒是⼀个随机的预测过程,更强调动态变化。当然,最关键是强注意⼒是⼀个不可微的注意⼒,训练过程往往是通过增强学习(reinforcement learning)来完成的。
为了更清楚地介绍计算机视觉中的注意⼒机制,这篇⽂章将从注意⼒域(attention domain)的⾓度来分析⼏种注意⼒的实现⽅法。其中主要是三种注意⼒域,空间域(spatial domain),通道域(channel domain),混合域(mixed domain)。
还有另⼀种⽐较特殊的强注意⼒实现的注意⼒域,时间域(time domain),但是因为强注意⼒是使⽤reinforcement learning来实现的,训练起来有所不同,所以之后再详细分析。
3 软注意⼒的注意⼒域
这⼀章节,为了将问题能够更快的展现,我会介绍三篇⽂章,通过三篇⽂章中的注意⼒域的不同来介绍如何实现具有注意⼒机制的深度学习模型。每篇⽂章的介绍分为两个部分,⾸先从想法上来介绍模型的设计思路,然后深⼊了解模型结构(architecture)部分。
对于想通读了解attention模型的或者第⼀遍阅读本⽂的,可以直接跳过模型结构部分,只了解设计思路,之后细读的时候再仔细阅读模型结构部分。
3.1 空间域(Spatial Domain)
设计思路:
Spatial Transformer Networks(STN)模型[4]是15年NIPS上的⽂章,这篇⽂章通过注意⼒机制,将原始图⽚中的空间信息变换到另⼀个空间中并保留了关键信息。
这篇⽂章的思想⾮常巧妙,因为卷积神经⽹络中的池化层(pooling layer)直接⽤⼀些max pooling 或者average pooling 的⽅法,将图⽚信息压缩,减少运算量提升准确率。
但是这篇⽂章认为之前pooling的⽅法太过于暴⼒,直接将信息合并会导致关键信息⽆法识别出来,所
以提出了⼀个叫空间转换器(spatial transformer)的模块,将图⽚中的的空间域信息做对应的空间变换,从⽽能将关键的信息提取出来。
Unlike poolinglayers, where the receptive fields are fixed and local, the spatial transformermodule is a dynamic
mechanism that can actively spatially transform an image (or a feature map) by producing an appropriate
transformation for each inputsample.
空间转换器模型实验结果图
⽐如这个直观的实验图:
1. (a)列是原始的图⽚信息,其中第⼀个⼿写数字7没有做任何变换,第⼆个⼿写数字5,做了⼀定的旋转变化,⽽第三个⼿写数字6,加
上了⼀些噪声信号
一点二2. (b)列中的彩⾊边框是学习到的spatial transformer的框盒(bounding box),每⼀个框盒其实就是对应图⽚学习出来的⼀个
spatial transformer;
3. (c)列中是通过spatial transformer转换之后的特征图,可以看出7的关键区域被选择出来,5被旋转成为了正向的图⽚,6的噪声信
息没有被识别进⼊。
4. 最终可以通过这些转换后的特征图来预测出(d)列中⼿写数字的数值。
spatial transformer其实就是注意⼒机制的实现,因为训练出的spatial transformer能够出图⽚信息中需要被关注的区域,同时这个transformer⼜能够具有旋转、缩放变换的功能,这样图⽚局部的重要信息能够通过变换⽽被框盒提取出来。
模型结构:
这是空间变换⽹络(spatialtransformer network)中最重要的空间变换模块,这个模块可以作为新的层直接加⼊到原有的⽹络结构,⽐如ResNet中。来仔细研究这个模型的输⼊:高仙芝
神经⽹络训练中使⽤的数据类型都是张量(tensor),H是上⼀层tensor的⾼度(height),W是上⼀层tensor的宽度(width),⽽C代表tensor 的通道(channel),⽐如图⽚基本的三通道(RGB),或者是经过卷积层(convolutional layer)之后,不同卷积核(kernel)都会产⽣不同的通道信息。
之后这个输⼊进⼊两条路线,⼀条路线是信息进⼊定位⽹络(localisation net),另⼀条路线是原始信号直接进⼊采样层(sampler)。其中定位⽹络会学习到⼀组参数θ,⽽这组参数就能够作为⽹格⽣成器(grid generator)的参数,⽣成⼀个采样信号,这个采样信号其实是⼀个变换矩阵,与原始图⽚相乘之后,可以得到变换之后的矩阵V。
这个V也就是变换之后的图⽚特征了,变换之后的矩阵⼤⼩是可以通过调节变换矩阵来形成缩放的。
通过这张转换图⽚,可以看出空间转换器中产⽣的采样矩阵是能够将原图中关键的信号提取出来,(a)中的采样矩阵是单位矩阵,不做任何变换,(b)中的矩阵是可以产⽣缩放旋转变换的采样矩阵。计算机仿真
最右边式⼦左边的θ矩阵就是对应的采样矩阵。
这个模块加进去最⼤的好处就是能够对上⼀层信号的关键信息进⾏识别(attention),并且该信息矩阵是⼀个可以微分的矩阵,因为每⼀个⽬标(target)点的信息其实是所有源(source)点信息的⼀个组合,这个组合可以是⼀个线性组合,复杂的变换信息也可以⽤核函数(kernel)来表⽰:
V是转换后的信息,U是转换前的信息,k是⼀个核函数。
理论上来说,这样的模块是可以加在任意层的,因为模块可以同时对通道信息和矩阵信息同时处理。
但是由于⽂章提出对所有的通道信息进⾏统⼀处理变换,我认为这种模块其实更适⽤于原始图⽚输⼊层之后的变化,因为卷积层之后,每⼀个卷积核(filter)产⽣的通道信息,所含有的信息量以及重要程
度其实是不⼀样的,都⽤同样的transformer其实可解释性并不强。也由此,我们可以引出第⼆种注意域的机制——通道域(channel domain)注意⼒机制。
3.2 通道域(Channel Domain)
设计思路:
通道域[5]的注意⼒机制原理很简单,我们可以从基本的信号变换的⾓度去理解。信号系统分析⾥⾯,任何⼀个信号其实都可以写成正弦波的线性组合,经过时频变换<;注4>之后,时域上连续的正弦波信号就可以⽤⼀个频率信号数值代替了。
imsi>互联网信息服务管理办法
信号时频分解图
建国大业2017在卷积神经⽹络中,每⼀张图⽚初始会由(R,G,B)三通道表⽰出来,之后经过不同的卷积核之后,每⼀个通道⼜会⽣成新的信号,⽐如图⽚特征的每个通道使⽤64核卷积,就会产⽣64个新通道的矩阵(H,W,64),H,W分别表⽰图⽚特征的⾼度和宽度。
每个通道的特征其实就表⽰该图⽚在不同卷积核上的分量,类似于时频变换,⽽这⾥⾯⽤卷积核的卷积类似于信号做了傅⾥叶变换,从⽽能够将这个特征⼀个通道的信息给分解成64个卷积核上的信号分量。
不同卷积核
既然每个信号都可以被分解成核函数上的分量,产⽣的新的64个通道对于关键信息的贡献肯定有多有少,如果我们给每个通道上的信号都增加⼀个权重,来代表该通道与关键信息的相关度的话,这个权重越⼤,则表⽰相关度越⾼,也就是我们越需要去注意的通道了。
模型结构:
论⽂[5]中提出了⼀个⾮常重要的SENet的模型结构,靠着这个模型获得了ImageNet的冠军,这个模型是⾮常有创造⼒的设计。

本文发布于:2024-09-22 07:09:09,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/494487.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:注意   信息   机制   信号   变换   能够
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议