1. 程式人生 > >論文筆記:Residual Attention Network for Image Classification

論文筆記:Residual Attention Network for Image Classification

前言

深度學習中的Attention,源自於人腦的注意力機制,當人的大腦接受到外部資訊,如視覺資訊、聽覺資訊時,往往不會對全部資訊進行處理和理解,而只會將注意力集中在部分顯著或者感興趣的資訊上,這樣有助於濾除不重要的資訊,而提升資訊處理的效率。最早將Attention利用在影象處理上的出發點是,希望通過一個類似於人腦注意力的機制,只利用一個很小的感受野去處理影象中Attention的部分,降低了計算的維度。而後來慢慢的,有人發現其實卷積神經網路自帶Attention的功能,比方說在分類任務中,高層的feature map所啟用的pixel也恰好集中在與分類任務相關的區域,也就是salience map,常被用在影象檢測和分割上。那麼如何利用Attention來提升模型在分類任務上的效能呢?本文提供了一種新的思路。

Residual Attention Network

人們看到論文題目時一定會覺得很熟悉,哇靠,這不是模仿大名鼎鼎的ResNet嗎,確實,從字面上、結構上、包括使用方法上,本文所提出的模型都和ResNet很相似,可以說是借鑑了ResNet的構造,但是從思路、目的上來看,又和ResNet大有不同,那麼不同之處在於何,接下來將會娓娓道來。

首先看作者所說本文的三大貢獻:

  1. 提出了一種可堆疊的網路結構。與ResNet中的Residual Block類似,本文所提出的網路結構也是通過一個Residual
    Attention Module的結構進行堆疊,可使網路模型能夠很容易的達到很深的層次。
  2. 提出了一種基於Attention的殘差學習方式。與ResNet也一樣,本文做提出的模型也是通過一種殘差的方式,使得非常深的模型能夠容易的優化和學習,並且具有非常好的效能。
  3. Bottom-up Top-down的前向Attention機制。其他利用Attention的網路,往往需要在原有網路的基礎上新增一個分支來提取Attention,並進行單獨的訓練,而本文提出的模型能夠就在一個前向過程中就提取模型的Attention,使得模型訓練更加簡單。

    從上面前兩點依然發現本文所提出的方法和ResNet沒多大的區別,但是把1、2、3點融合起來,就成了本文的一個亮點,請看:
    這裡寫圖片描述
    上圖基本上可以囊括本位的絕大部分內容,對於某一層的輸出feature map,也就是下一層的輸入,對於一個普通的網路,只有右半部分,也就是Trunk Branch,作者在這個基礎上增加了左半部分:Soft Mask Branch——一個Bottom-up Top-down的結構。

Bottom-up Top-down的結構首先通過一系列的卷基和pooling,逐漸提取高層特徵並增大模型的感受野,之前說過高層特徵中所啟用的Pixel能夠反映Attention所在的區域,於是再通過相同數量的up sample將feature map的尺寸放大到與原始輸入一樣大(這裡的upsample通過deconvolution來實現,可以利用bilinear interpolation 也可以利用deconvolution自己來學習引數,可參考FCN中的deconvolution使用方式),這樣就將Attention的區域對應到輸入的每一個pixel上,我們稱之為Attention map。Bottom-up Top-down這種encoder-decoder的結構在影象分割中用的比較多,如FCN,也正好是利用了這種結構相當於一個weakly-supervised的定位任務的學習。

接下來就要把Soft Mask Branch與Trunk Branch的輸出結合起來,Soft Mask Branch輸出的Attention map中的每一個pixel值相當於對原始feature map上每一個pixel值的權重,它會增強有意義的特徵,而抑制無意義的資訊,因此,將Soft Mask Branch與Trunk Branch輸出的feature map進行element-wised的乘法,就得到了一個weighted Attention map。但是無法直接將這個weighted Attention map輸入到下一層中,因為Soft Mask Branch的啟用函式是Sigmoid,輸出值在(0,1)之間(之所以這麼做,我認為是不希望給前後兩層的feature map帶來太大的差異和擾動,其次能夠進一步的抑制不重要的資訊),因此通過一系列這樣的乘法,將會導致feature map的值越來越小,並且也可能打破原始網路的特性,當層次極深時,給訓練帶來了很大的困難。因此作者在得到了weighted Attention map之後又與原來Trunk Branch的feature map進行了一個element-wised的操作,這就和ResNet有異曲同工之妙,該層的輸出由下面這個式子組成:
這裡寫圖片描述
其中M(x)為Soft Mask Branch的輸出,F(x)為Trunk Branch的輸出,那麼當M(x)=0時,該層的輸入就等於F(x),因此該層的效果不可能比原始的F(x)差,這一點也借鑑了ResNet中恆等對映的思想,同時這樣的加法,也使得Trunk Branch輸出的feature map中顯著的特徵更加顯著,增加了特徵的判別性。這樣,優化的問題解決了,效能的問題也解決了,因此通過將這種殘差結構進行堆疊,就能夠很容易的將模型的深度達到很深的層次,具有非常好的效能。

這裡寫圖片描述
上圖是利用Residual Attention Module進行堆疊得到的模型結構,三個stage,由淺到深提取不同層次的Attention資訊,值得注意的是,網路中的每一個unit都可以換成目前具有非常好效能的結構,如Residual Block、Inception Block,換個角度說,就是可以將這個Attention的結構無縫連線到目前最優秀的網路中去,使得模型的效能更上一層樓。
這裡寫圖片描述
上圖是一個使用在ResNet-50上的例子,可以看出來和原始的ResNet的區別就是在每個階段的Residual Block之間增加了Attention Module,這裡有一個小trick,就是在每一個Attention Module的Soft Mask Branch中,作者使得down sample到的最小feature map的尺寸與整個網路中的最小feature map大小一致,首先7*7的feature map對於Attention來說不至於那麼粗糙,作者不希望在淺層的Attention丟失的資訊太多,其次也保證了它們具有相同大小的感受野。至於這麼做到底能提升多大的效能,這裡也很難判定。

作者在ImageNet資料集上與ResNet、Inception-ResNet等一系列當下最優秀的方法進行了比較:
這裡寫圖片描述
作者使用了不同的Attention unit,得到了結果也比原始的網路有不少的提升,這也有力的證明了Attention的效果,以及作者這種Residual Attention學習的有效性。

總結

其實總的來看,作者好像也並沒有做多少工作嘛,使用的還是人家的Residual Block、Inception Module,模型搭建的思路也是參考了ResNet的殘差學習方式,包括Bottom-up Top-down的Attention學習機制也和以前的影象分割方法類似,這麼來看,作者真的沒有提出什麼新的東西,就是將老方法進行糅合。其實雖然目前深度學習發展很快,但是想要提出一個嶄新的類似於當年ResNet、GoogLeNet這種顛覆性的具有強大泛化能力的網路,太難了,但是我們靈活的可以將這些好的結構、好的方法結合起來來達到自己的目的、提升自己的效能,這就叫學以致用。因此我們在看論文的時候,不僅要知道它是如何使用,更要了解它的本質和思路,並能夠作為己用,這才能最大的提升學習的效果。

相關推薦

論文筆記Residual Attention Network for Image Classification

前言 深度學習中的Attention,源自於人腦的注意力機制,當人的大腦接受到外部資訊,如視覺資訊、聽覺資訊時,往往不會對全部資訊進行處理和理解,而只會將注意力集中在部分顯著或者感興趣的資訊上,這樣有助於濾除不重要的資訊,而提升資訊處理的效率。最早將A

《17.Residual Attention Network for Image Classification

動機 深度學習中的Attention,源自於人腦的注意力機制,當人的大腦接受到外部資訊,如視覺資訊、聽覺資訊時,往往不會對全部資訊進行處理和理解,而只會將注意力集中在部分顯著或者感興趣的資訊上,這樣有助於濾除不重要的資訊,而提升資訊處理的效率。 最早將Attention利用

Residual Attention Network for Image Classification, cvpr17

人至懶則無敵。 cvpr17的論文,很有意思,值得一讀和復現。(筆者懶,還是坐等開源吧) 還是老樣子,看圖說話,具體細節,請看論文。 圖1說明了越high-level的part feature及其mask越會focus在object或者parts of objec

論文解讀Stacked Attention Networks for Image Question Answering

這是關於VQA問題的第二篇系列文章,這篇文章在vqa領域是一篇比較有影響的文章。本篇文章將介紹論文:主要思想;模型方法;主要貢獻。有興趣可以檢視原文:Stacked Attention Networks for Image Question Answering。原論文中附有作者原始碼。

論文筆記Learning Region Features for Object Detection

中心思想 繼Relation Network實現可學習的nms之後,MSRA的大佬們覺得目標檢測器依然不夠fully learnable,這篇文章類似之前的Deformable ROI Pooling,主要在ROI特徵的組織上做文章,文章總結了現有的各種ROI Pooling變體,提出了一個統一的數學表示式

Residual Dense Network for Image Super-Resolution 程式碼詳解

Residual Dense Network for Image Super-Resolution 以下是 RND論文Tensorflow版本實現的原始碼解析,我假設你已經瞭解Python的基本語法,和Tensorflow的基本用法,如果你對它們不是很熟悉,請到它們的官網查

論文筆記Feature Pyramid Networks for Object Detection

初衷 Feature pyramids are a basic component in recognition systems for detecting objects at different scales. But recent deep

論文筆記Is object localization for free?

Is object localization for free? Weakly-supervised learning with convolutional neural networks 摘要 提出一個弱監督卷積神經網路for 分類。主要貢獻有:

論文筆記Deep neural networks for YouTube recommendations

https://blog.csdn.net/xiongjiezk/article/details/73445835 Download [1] Covington P, Adams J, Sargin E. Deep neural networks for youtube recommen

ReIDHarmonious Attention Network for Peson Re-Identification 解讀

Problem Existing person re-identification(re-id) methods either assume the availability of well-aligned person bounding box

Deep Neural Network for Image Classification: Application

cal pack 分享圖片 his exp params next min super When you finish this, you will have finished the last programming assignment of Week 4, and a

01神經網路和深度學習-Deep Neural Network for Image Classification: Application-第四周程式設計作業2

一、兩層神經網路 模型:LINEAR->RELU->LINEAR->SIGMOID #coding=utf-8 import time import numpy as np import h5py import matplotlib.pyplot as

論文閱讀】Between-class Learning for Image Classification

文章:Between-class Learning for Image Classification 連結:https://arxiv.org/pdf/1711.10284.pdf CVPR2018 作者嘗試了將在音訊上的方法用在影象上的,並提出了一種將影象作為波形處理的混合方法(作者認為圖形波長融

論文閱讀】Bag of Tricks for Image Classification with Convolutional Neural Networks

Bag of Tricks for Image Classification with Convolutional Neural Networks 論文:https://arxiv.org/pdf/1812.01187.pdf 本文作者總結了模型訓練過程中可以提高準確率的方法,如題,

Hierarchical Attention Network for Document Classification--tensorflow實現篇

上週我們介紹了Hierarchical Attention Network for Document Classification這篇論文的模型架構,這周抽空用tensorflow實現了一下,接下來主要從程式碼的角度介紹如何實現用於文字分類的HAN模型。 資料

[深度學習論文筆記][AAAI 18]Accelerated Training for Massive Classification via Dynamic Class Selection

[AAAI 18] Accelerated Training for Massive Classification via Dynamic Class Selection Xingcheng Zhang, Lei Yang, Junjie Yan, Dahua

第四周程式設計作業(二)-Deep Neural Network for Image Classification: Application

Deep Neural Network for Image Classification: Application When you finish this, you will have finished the last programming assignment of Week 4

Deep Neural Network for Image Classification:Application

上一篇文章中實現了一個兩層神經網路和L層神經網路需要用到的函式 本篇我們利用這些函式來實現一個深層神經網路來實現圖片的分類 1.首先是匯入需要的包 import time import numpy as np import h5py import matplotlib.p

論文筆記An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application

1.歷史方法 1)基於字元的DCNN,比如photoOCR.單個字元的檢測與識別。要求單個字元的檢測器效能很強,crop的足夠好。 2)直接對圖片進行分類。9萬個單詞,組合成無數的單詞,無法直接應用 3)RNN,訓練和測試均不需要每個字元的位置。但是需要預處理,從圖片得到特

論文閱讀筆記之——《DN-ResNet: Efficient Deep Residual Network for Image Denoising》

本文提出的DN-ResNet,就是a deep convolutional neural network (CNN) consisting of several residual blocks (ResBlocks).感覺有點類似於SRResNet的思路。並且對於訓練這個作者所提出的網路,作者還