<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          一文讀懂CV中的注意力機(jī)制

          共 5566字,需瀏覽 12分鐘

           ·

          2020-11-27 18:49

          作者丨AdamLau@知乎
          來源丨h(huán)ttps://zhuanlan.zhihu.com/p/288758894
          編輯丨極市平臺
          轉(zhuǎn)自 | 極市平臺

          導(dǎo)讀

          ?

          本文配合相關(guān)的論文,講述了多種CV注意力機(jī)制(Non-local Neural Networks、Squeeze-and-Excitation Networks、CBAM、DANet)的概念、特點(diǎn)以及相關(guān)實(shí)驗(yàn)。

          CV注意力機(jī)制

          Non-local ~ SE ~ CcNet ~ GC-Net ~ Gate ~ CBAM ~ Dual Attention ~ Spatial Attention ~ Channel Attention ~ ...

          【只要你能熟練的掌握加法、乘法、并行、串行四大法則,外加知道一點(diǎn)基本矩陣運(yùn)算規(guī)則(如:HW * WH = HH)和sigmoid/softmax操作,那么你就能隨意的生成很多種注意力機(jī)制】

          • 空間注意力模塊?(look where)?對特征圖每個位置進(jìn)行attention調(diào)整,(x,y)二維調(diào)整,使模型關(guān)注到值得更多關(guān)注的區(qū)域上。
          • 通道注意力模塊?(look what)?分配各個卷積通道上的資源,z軸的單維度調(diào)整。

          Non-local Neural Networks

          論文:https://arxiv.org/abs/1711.07971v1

          計算機(jī)視覺領(lǐng)域注意力機(jī)制的開篇之作。提出了non-local operations,使用自注意力機(jī)制建立遠(yuǎn)程依賴。- local operations: 卷積(對局部領(lǐng)域)、recurrent(對當(dāng)前/前一時刻)等操作。- non-local operations用于捕獲長距離依賴(long-range dependencies),即如何建立圖像上兩個有一定距離的像素之間的聯(lián)系,如何建立視頻里兩幀的聯(lián)系,如何建立一段話中不同詞的聯(lián)系等。Non-local operations 在計算某個位置的響應(yīng)時,是考慮所有位置 features 的加權(quán)——所有位置可以是空間的,時間的,時空的。

          1. Non-local 定義

          其中x表示輸入信號(圖片,序列,視頻等,也可能是它們的features),y表示輸出信號,其size和x相同。f(xi,xj)用來計算i和所有可能關(guān)聯(lián)的位置j之間pairwise的關(guān)系,這個關(guān)系可以是比如i和j的位置距離越遠(yuǎn),f值越小,表示j位置對i影響越小。g(xj)用于計算輸入信號在j位置的特征值。C(x)是歸一化參數(shù)。理解:?i 代表的是當(dāng)前位置的響應(yīng),j 代表全局響應(yīng),通過加權(quán)得到一個非局部的響應(yīng)值。

          Non-Local的優(yōu)點(diǎn)是什么?

          • 提出的non-local operations通過計算任意兩個位置之間的交互直接捕捉遠(yuǎn)程依賴,而不用局限于相鄰點(diǎn),其相當(dāng)于構(gòu)造了一個和特征圖譜尺寸一樣大的卷積核, 從而可以維持更多信息。
          • non-local可以作為一個組件,和其它網(wǎng)絡(luò)結(jié)構(gòu)結(jié)合,經(jīng)過作者實(shí)驗(yàn),證明了其可以應(yīng)用于圖像分類、目標(biāo)檢測、目標(biāo)分割、姿態(tài)識別等視覺任務(wù)中,并且效果有不同程度的提升。
          • Non-local在視頻分類上效果很好,在視頻分類的任務(wù)中效果可觀。

          論文中給了通用公式,然后分別介紹f函數(shù)和g函數(shù)的實(shí)例化表示:

          • g函數(shù):可以看做一個線性轉(zhuǎn)化(Linear Embedding)公式如下:

          是需要學(xué)習(xí)的權(quán)重矩陣,可以通過空間上的1×1卷積實(shí)現(xiàn)(實(shí)現(xiàn)起來比較簡單)。

          • f函數(shù):這是一個用于計算i和j相似度的函數(shù),作者提出了四個具體的函數(shù)可以用作f函數(shù)。

          1.Gaussian function 2. Embedded Gaussian 3. Dot product 4. Concatenation

          2. Non-local block

          實(shí)際上是一個卷積操作,它的輸出channel數(shù)跟x一致。這樣以來,non-local操作就可以作為一個組件,組裝到任意卷積神經(jīng)網(wǎng)絡(luò)中。

          3. 實(shí)驗(yàn)

          • 文中提出了四個計算相似度的模型,實(shí)驗(yàn)對四個方法都進(jìn)行了實(shí)驗(yàn),發(fā)現(xiàn)了這四個模型效果相差并不大,于是有一個結(jié)論:使用non-local對baseline結(jié)果是有提升的,但是不同相似度計算方法之間差距并不大,所以可以采用其中一個做實(shí)驗(yàn)即可,文中用embedding gaussian作為默認(rèn)的相似度計算方法。
          • 作者做了一系列消融實(shí)驗(yàn)來證明non local NN的有效性:
          • 對比四個計算相似度模型,并無太大差異;
          • 以Resnet50為例:對比non-local模塊加在不同stage下的結(jié)果,在2,3,4stage處提高較大,可能由于第五層空間信息較少;
          • 對比加入non-local模塊數(shù)量的結(jié)果,越多性能越好,但速度越慢;作者認(rèn)為這是因?yàn)楦嗟膎on-local block能夠捕獲長距離多次轉(zhuǎn)接的依賴。信息可以在時空域上距離較遠(yuǎn)的位置上進(jìn)行來回傳遞,這是通過local models無法實(shí)現(xiàn)的;
          • 時間、空間及時空域上做non-local,效果均有提升;
          • non-local VS 3D卷積,non-local更有效率,且性能更好;
          • non-local和3D conv是可以相互補(bǔ)充的;
          • 更長的輸入序列,所有模型在長序列上都表現(xiàn)得更好。

          Squeeze-and-Excitation Networks

          論文:https://arxiv.org/abs/1709.01507

          很多前面的工作都提出了以空間維度提升網(wǎng)絡(luò)的性能,比如inception結(jié)構(gòu)獲取不同感受野信息、inside-outside結(jié)構(gòu)更多考慮上下文信息、空間注意力機(jī)制等。是否有其他層面去提升性能??

          SENet是首個提出從channel-wise層面提出Squeeze-and-Excitation模塊的通道注意力機(jī)制,可以自適應(yīng)調(diào)整各通道的特征響應(yīng)值。

          網(wǎng)絡(luò)應(yīng)用于分類,如何應(yīng)用到分割上?

          1. SE模塊

          網(wǎng)絡(luò)結(jié)構(gòu)如下所示:

          • Squeeze?使用全局平均池化(也可用其他方式)生成通道信息統(tǒng)計,實(shí)現(xiàn)通道描述;

          將全局空間信息壓縮為一個通道描述符;

          • Excitation?實(shí)現(xiàn)方式要靈活,且必須能學(xué)習(xí)一個非互斥的關(guān)系

          使用了sigmoid激活函數(shù)的門限機(jī)制來實(shí)現(xiàn),使權(quán)重在(0,1)上

          最后通過一個scale的操作將所求的權(quán)重乘上原來每個通道的二維特征上

          訓(xùn)練全連接網(wǎng)絡(luò)學(xué)習(xí)到每個特征通道的權(quán)重,權(quán)重可以顯示地建模特征通道的相關(guān)性。

          2. 實(shí)驗(yàn)

          SE模塊可以應(yīng)用到inception、resblock等多種結(jié)構(gòu),非常靈活。

          消融實(shí)驗(yàn)非常完備,實(shí)驗(yàn)結(jié)果也是當(dāng)時的STOA,奪得了ILSVRC2017的冠軍。(較為簡略,具體看論文)

          3. 結(jié)論

          SE模塊能夠動態(tài)自適應(yīng)完成在通道維度上對原始特征進(jìn)行重標(biāo)定,首次關(guān)注了模型通道層面的依賴關(guān)系。另外,由SE塊產(chǎn)生的特征重要性值是否能用于網(wǎng)絡(luò)剪枝(模型壓縮)。

          CBAM: Convolutional Block Attention Module

          論文:https://arxiv.org/pdf/1807.06521.pdf

          代碼:https://github.com/luuuyi/CBAM.PyTorch

          論文Introduction部分提出了影響卷積神經(jīng)網(wǎng)絡(luò)模型性能的三個因素:深度、寬度、基數(shù)。并且列舉了一些代表新的網(wǎng)絡(luò)結(jié)構(gòu),比如和深度相關(guān)的VGG和ResNet系列,和寬度相關(guān)的GoogLeNet和wide-ResNet系列,和基數(shù)相關(guān)的Xception和ResNeXt。

          除了這三個因素之外,還有一個模塊,也能影響網(wǎng)絡(luò)的性能,這就是attention——注意力機(jī)制。

          動機(jī):所以文章提出了兩個注意力機(jī)制的模塊,分別是channel attention module和spatial attention module。通過級聯(lián)方式連接起來。模塊較為靈活,可以嵌入到ResBlock等。

          1. Channnel attetion module(通道注意力模塊)

          通道注意力模塊主要是探索不同通道之間的feature map的關(guān)系。每一個通道的feature map本身作為一個特征檢測出器(feature detetor),通過這個通道注意力模塊來告訴模型,我們更應(yīng)該注意哪一部分特征。

          同時使用average-pooling和max-pooling聚合空間維度特征,產(chǎn)生兩個空間維度描述符。隨后經(jīng)MLP(fc+Relu+fc)+sigmoid層(和SE-Net相同,只是squeeze操作多了一步max pooling),為每個通道產(chǎn)生權(quán)重,最后將權(quán)重與原始未經(jīng)channel attention相乘。

          2. Spatial attention module(空間注意力模塊)

          利用空間注意力模塊來生成一個spatial attention map,用來利用不同特征圖之間的空間關(guān)系,以此來使模型注意特征圖的哪些特征空間位置。

          網(wǎng)絡(luò)應(yīng)用于分類,如何應(yīng)用到分割上?

          1. 這一次是在軸的方向上對不同特征圖上相同位置的像素值進(jìn)行全局的MaxPooling和AvgPooling操作,分別得到兩個spatial attention map并將其concatenate,shape為[2, H, W]。
          2. 再利用一個7*7的卷積對這個feature map進(jìn)行卷積。后接一個sigmoid函數(shù)。得到一個語言特征圖維數(shù)相同的加上空間注意力權(quán)重的空間矩陣。
          3. 最后把得到的空間注意力矩陣對應(yīng)相乘的原特征圖上,得到的新的特征圖。

          3. 實(shí)驗(yàn)

          • Comparison of different channel attention methods:

          用maxpooling與avgpooling一起比SENet(僅用avgpooling)效果更好。

          • Comparison of different spatial attention methods:

          使用7x7卷積核的原因是具有更大的感受野,還有個人認(rèn)為小卷積核可能會造成一些特征圖的confusion。

          • Combining methods of channel and spatial attention:

          整體的消融實(shí)驗(yàn)。

          Dual Attention Network for Scene Segmentation

          論文:https://arxiv.org/pdf/1809.02983.pdf

          雖然上下文融合有助于捕獲不同比例的對象,但卻無法利用全局視圖中對象之間的關(guān)系。容易忽略不顯眼的對象,或是沒有綜合考慮各個位置的聯(lián)系和相關(guān)性,致使分割的類內(nèi)不一致性,產(chǎn)生誤分割。對于語義分割,每個通道的map相當(dāng)于是對每一類的響應(yīng),因此對于通道間的相關(guān)性也應(yīng)著重考慮。

          為解決這一問題,提出了雙注意力網(wǎng)絡(luò)(DANet),基于自注意力機(jī)制來分別捕獲空間維度和通道維度中的特征依賴關(guān)系。具體而言,本文在dilated FCN上附加了2種注意力模塊,分別對空間維度和通道維度上的語義依賴關(guān)系進(jìn)行建模。

          應(yīng)用于分割的注意力網(wǎng)絡(luò),空間注意力模塊與通道注意力模塊并聯(lián)連接,最終將兩個模塊的結(jié)果進(jìn)行elementwise操作。在特征提取處,作者對ResNet做出以下改動,將最后的downsampling取消,采用空洞卷積來達(dá)到即擴(kuò)大感受野又保持較高空間分辨率的目的,最終的特征圖擴(kuò)大到了原圖的1/8。

          1. Position Attention Module(PAM)

          位置注意力模塊旨在利用任意兩點(diǎn)特征之間的關(guān)聯(lián),來相互增強(qiáng)各自特征的表達(dá)。

          2. Channel Attention Module(CAM)

          每個high level特征的通道圖都可以看作是一個特定于類的響應(yīng),通過挖掘通道圖之間的相互依賴關(guān)系,可以突出相互依賴的特征圖,提高特定語義的特征表示。

          為了進(jìn)一步獲得全局依賴關(guān)系的特征,將兩個模塊的輸出結(jié)果進(jìn)行相加融合,獲得最終的特征用于像素點(diǎn)的分類。

          3. 總結(jié)

          總的來說,DANet網(wǎng)絡(luò)主要思想是 CBAM 和 non-local 的融合變形。把deep feature map進(jìn)行spatial-wise self-attention,同時也進(jìn)行channel-wise self-attetnion,最后將兩個結(jié)果進(jìn)行 element-wise sum 融合。

          在 CBAM 分別進(jìn)行空間和通道 self-attention的思想上,直接使用了 non-local 的自相關(guān)矩陣 Matmul 的形式進(jìn)行運(yùn)算,避免了 CBAM 手工設(shè)計 pooling,多層感知器等復(fù)雜操作。

          參考:

          1. https://blog.csdn.net/elaine_bao/article/details/80821306
          2. https://zhuanlan.zhihu.com/p/102984842
          3. https://zhuanlan.zhihu.com/p/93228308
          4. https://zhuanlan.zhihu.com/p/106084464
          5. https://blog.csdn.net/wumenglu1018/article/details/95949039
          6. https://blog.csdn.net/xh_hit/article/details/88575853



          往期精彩:

          【原創(chuàng)首發(fā)】機(jī)器學(xué)習(xí)公式推導(dǎo)與代碼實(shí)現(xiàn)30講.pdf

          【原創(chuàng)首發(fā)】深度學(xué)習(xí)語義分割理論與實(shí)戰(zhàn)指南.pdf

          ?真正想做算法的,不要害怕內(nèi)卷

          ?技術(shù)學(xué)習(xí)不能眼高手低

          ?技術(shù)人要學(xué)會自我營銷

          求個在看!

          瀏覽 65
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  蜜臀精品久久久999久久久酒店 | 在线日本a∨ | 又粗又长又大一级a片免费看 | 人人操人人撸 | 婷婷综合五月天 |