多表格合并一起
1569
2022-05-30
通過注意力轉移提升神經網絡性能
paying more attention to attention: improving the performance of convolutional networks via attention transfer
論文導讀
動機
注意力機制在CV和NLP領域的成功應用:受人類觀察物品的方式啟發,將注意力這個概念引入神經網絡中,在CV和NLP領域均有成功應用,提升了網絡模型性能表現。
在知識蒸餾中, 教師網絡學習到的注意力圖可以作為一種知識, 蒸餾到學生網絡中,讓學習網絡嘗試生成與教師網絡相近的注意力圖, 從而提升學生網絡的性能表現。
現有方法
模型壓縮: 在已經訓練好的模型上進行壓縮, 使得網絡攜帶更少的網絡參數
人工模型設計: 從改變網絡結構出發, 設計出更高效的網絡計算方式, 從而使網絡參數減少的同時,不損失網絡的性能。
本文方法:
提出注意力遷移(attention transfer)方法,將教師網絡學習得到的注意力圖作為知識信息,蒸餾到學生網絡中,讓學生網絡生成的注意力圖與教師網絡的注意力圖越來越接近,以此提升學生網絡的性能表現。
在注意力圖的生成方式上,提出基于激活(activation-based)和基于梯度(gradient-based)的兩種注意力圖生成方式。
研究成果
將Wide-ResNet系列作為教師網絡和學生網絡, 在CIFAR10數據集上的實驗表明, 注意力轉移, 知識蒸餾的應用, 降低了分類錯誤率, 提升了學生網絡的性能。
研究意義
將注意力機制引入知識蒸餾領域, 提升了學生網絡的性能表現
探索了不同注意力圖生成方式, 每種方式的側重點均不同
啟發了知識蒸餾的研究方向, 創新了知識蒸餾方式
計算機的注意力機制
計算機視覺中的注意力機制受人類注意力機制啟發, 把這一機制引入神經網絡中, 希望網絡能夠自動學習到圖片中的需要注意的地方, 讓網絡學會忽略無關信息而關注重點信息。
即:
決定需要關注輸入的哪部分。
分配有限的信息處理資源給重要的部分
注意力機制類型
空間域( Spatial Domain)
更多關注特征空間信息, 決定空間中哪些區域是重要的, 哪些是不重要的
代表結構:動態容量網絡,包含兩個子網絡
Coarse model(粗略子網): 對全圖進行處理, 定位到感興趣的關鍵區域
Fine model(精準子網): 對所有感興趣區域進行更精細的特征提取
通道域( Channel Domain)
更多關注特征通道之間的信息, 決定不同通道之間的重要程度
代表網絡: SENet
Squeeze(壓縮), 把原本[HxWxC]的特征, 壓縮為[1x1xC], 每個通道用一個數值表示
Excitation(激勵): 對上一步驟得到的[1x1xC]特征進行重要性預測, 學習不同通道的重要程度
Scale(重定向): 根據學習到通道重要性權重, 與原始特征圖相乘, 得到最終特征圖輸出
混合域( Mixed Domain)
將注意力集中同時集中在特征空間和特征通道上
代表網絡:CBAM: Convolutional Block Attention Module
依次應用通道和空間注意模塊, 來分別在通道和空間維度上學習關注什么、 在哪里關注。
通過學習要強調或抑制的信息也有助于網絡內的信息流動。
首先經過兩種池化方式聚合信息, 得到兩個特征輸出
然后通過一個MLP學習通道間的重要程度, 將兩個通道注意力圖相加, 與原特征圖相乘, 得到最終特征輸出
首先沿著通道方向進行最大池化和平均池化, 將兩個輸出特征進行通道疊加
對疊加后的特征圖, 利用7x7卷積生成空間注意力圖
基于激活的注意力轉移(Activation-based Attention Transfer)
假定CNN中某層激活后特征圖
A
∈
R
C
?
H
?
W
A \in R^{C*H*W}
A∈RC?H?W
其中:C: 特征圖通道數,H,W:特征圖高, 寬
F
:
R
C
?
H
?
W
?
>
R
H
?
W
F: R^{C*H*W} -> R^{H*W}
F:RC?H?W?>RH?W
基于激活的注意力轉移, 以某層激活后的特征圖A作為輸入, 輸出空間注意力圖( Spatial Attention map)
三種實現方式
計算特征圖中每個點的絕對值, 按照通道方向累加
計算特征圖中每個點絕對值的P次方, 按照通道方向累加
對特征圖中的每個點, 首先找到對應所有通道的絕對值最大值,然后計算該值的P次方
結論:
神經元的激活值不僅具有空間相關性, 而且這些相關性與準確率有很大關系, 性能更好, 更強大的網絡往往具有更精準的注意力區域
網絡中不同層有不同的注意力區域, 會生成不同的注意力圖。 如中間層對于最具有判別性的區域激活程度最高, 最高層則會反應目標整體的特征區域
與
F
s
u
m
(
A
)
F_{sum(A)}
Fsum(A) 相比,
F
s
u
m
(
A
)
p
F^p_{sum(A)}
Fsum(A)p 將更大的權重分配給與激活程度最高的神經元相對應的空間位置。 比如, 將更多的權重分配給最有判別性的部分
在相同空間位置的所有激活神經元中,
F
m
a
x
(
A
)
p
F^p_{max(A)}
Fmax(A)p 只選擇其中最大的一個來賦予權重,而
F
s
u
m
(
A
)
p
F^p_{sum(A)}
Fsum(A)p 更傾向于多個神經元都激活的區域
利用注意力轉移進行知識蒸餾的實現流程
首先生成教師網絡的注意力圖, 這個注意力圖可以利用上述三種方式任意一種得到。知識蒸餾的目標是讓學生網絡生成的注意力圖與教師網絡生成的注意力圖盡可能相似, 從而提升學生網絡準確率。
深度相同:在每個殘差塊后做注意力轉移
深度不同:在每個殘差塊組后做注意力轉移
損失函數設計
S:學生網絡
T:教師網絡
Ws:學生網絡權重參數
j: 教師網絡和學生網絡相對應激活層編號
Qs:學生網絡激活圖的向量表示
Qt: 教師網絡激活圖的向量表示
L(Ws,x): 學生網絡交叉熵損失
P: 正則化類型,本文取2
若要和Hilton知識蒸餾中的損失函數結合, 只需要在
L
A
T
L_{AT}
LAT 的基礎上, 增加soft蒸餾損失函數
基于梯度的注意力轉移(gradient-based Attention transfer)
用輸入的梯度表示注意力: 關注那些對輸出影響大的區域。 例如, 只變化輸入圖像很小的一個像素塊, 就能使網絡輸出發生巨大變化, 就可以認為, 這個像素塊值得我們關注
對教師網絡和學生網絡的交叉熵損失函數分別求梯度(求導) , 作為梯度注意力轉移的損失函數
我們的目標是, 最小化
J
s
J_s
Js 和
J
T
J_T
JT 之間的距離, 這樣就將教師網絡中對網絡輸出影響很大的區域轉移到學生網絡
若教師網絡的參數和輸入均給定, 則對學生網絡的參數求導, 得到:
利用注意力轉移進行知識蒸餾的實現流程
首先需要進行一次前向傳播和一次反向傳播, 得到
J
s
J_s
Js 和
J
T
J_T
JT , 然后再進行一次傳播,實現學生網絡的參數更新
特別的, 提出了迫使梯度注意力圖的水平翻轉不變的損失函數。 把原圖和水平翻轉的圖像都做傳播。 然后加上得到的注意力圖和輸出的l2損失, 做第二次傳播。
實驗結果分析
在CIFAR-10數據集上, 利用方式2生成注意力圖, 在教師網絡和學生網絡的選擇上, 分別設置相同深度和不同深度兩種情況, 注意力轉移AT有效降低了識別錯誤率, 與知識蒸餾結合(AT+KD) , 進一步降低了錯誤率。 與全部激活都轉移相比, 任何一種注意力轉移方式都降低了錯誤率。
三種注意力圖生成方式比較
選擇WRN-16-2為教師網絡, WRN-16-1為學生網絡, 驗證三種注意力圖生成方式在CIFAR-10上識別錯誤率。 結果表明, 三者相對不進行注意力轉移的方法, 都降低了錯誤率, 其中,
F
s
u
m
2
F^2_{sum}
Fsum2 的錯誤率最低。
基于梯度的注意力轉移實驗
在CIFAR-10數據集上, 基于梯度生成注意力圖, 有效降低了識別錯誤率
論文總結
關鍵點
知識蒸餾中知識的表現形式有哪些
注意力機制中, 判定某個區域重要與否的標準有哪些
如何根據自身任務特點, 設置注意力圖生成方式
創新點
將注意力機制引入知識蒸餾中, 提升CNN模型性能
設計了兩類注意力轉移方法
提供了多類注意力圖生成方式
啟發點
Furthermore, it has recently been demonstrated that attention can also play an important role in the context of applying artificial neural networks to a variety of tasks from fields such as computer vision and NLP.
We show that, by properly defining attention for convolutional neural networks, we can actually use this type of information in order to significantly improve the performance of a student CNN network by forcing it to mimic the attention maps of a powerful teacher network
To that end, we propose several novel methods of transferring attention, showing consistent improvement across a variety of datasets and convolutional neural network
核心Loss計算
以下代碼總結自論文官方代碼:
https://github.com/szagoruyko/attention-transfer
模型構建:mode是否訓練 base:基本網絡是教師網絡還是學生網絡
def f_s/t(input, params, mode, base=''): x = F.conv2d(input, params[f'{base}conv0'], padding=1) g0 = group(x, params, f'{base}group0', mode, 1) g1 = group(g0, params, f'{base}group1', mode, 2) g2 = group(g1, params, f'{base}group2', mode, 2) o = F.relu(utils.batch_norm(g2, params, f'{base}bn', mode)) o = F.avg_pool2d(o, 8, 1, 0) o = o.view(o.size(0), -1) o = F.linear(o, params[base+'fc.weight'], params[base+'fc.bias']) return o, (g0, g1, g2) #構建一個殘差組 def group(o, params, base, mode, stride): for i in range(n): o = block(o, params, f'{base}.block{i}', mode, stride if i == 0 else 1) return o
注意力轉移損失計算
輸出結果知識蒸餾損失
def distillation(y, teacher_scores, labels, T, alpha): p = F.log_softmax(y/T, dim=1) q = F.softmax(teacher_scores/T, dim=1) l_kl = F.kl_div(p, q, size_average=False) * (T**2) / y.shape[0]#KL散度損失 l_ce = F.cross_entropy(y, labels)#交叉熵損失 return l_kl * alpha + l_ce * (1. - alpha)
最終loss的計算
y_s, y_t, loss_groups = utils.data_parallel(f, inputs, params, sample[2], range(opt.ngpu)) loss_groups = [v.sum() for v in loss_groups]#每個殘差組損失累加 [m.add(v.item()) for m, v in zip(meters_at, loss_groups)]#將每個殘差組的注意力轉移損失累加 return utils.distillation(y_s, y_t, targets, opt.temperature, opt.alpha) + opt.beta * sum(loss_groups), y_s
注意力可視化
def forward(self, x): x = self.conv1(x) x = self.bn1(x) x = self.relu(x) x = self.maxpool(x) g0 = self.layer1(x)#第一個殘差塊 g1 = self.layer2(g0)#第二個殘差塊 g2 = self.layer3(g1)#第三個殘差塊 g3 = self.layer4(g2)#第四個殘差塊 return [g.pow(2).mean(1) for g in (g0, g1, g2, g3)] for i, g in enumerate(gs): plt.imshow(g[0], interpolation='bicubic')#插值運算 plt.title(f'g{i}') plt.show()
論文簡譯
Abstract
注意力在人類視覺體驗中起著至關重要的作用。此外,最近已經證明,在將人工神經網絡應用于計算機視覺和NLP等領域的各種任務中,注意力也可以發揮重要作用。在這項工作中,我們展示了,通過正確定義卷積神經網絡的注意力,我們實際上可以使用這種類型的信息,通過迫使學生CNN網絡模仿強大的教師網絡的注意力圖,顯著提高其性能。為此,我們提出了幾種新的轉移注意力的方法,在各種數據集和卷積神經網絡架構中顯示出一致的改進。我們實驗的代碼和模型可在以下網址獲得:https://github.com/szagoruyko/attention-transfer
1. Introduction
作為人類,我們需要注意,以便能夠充分感知我們的周圍環境。因此,注意力是我們視覺體驗的一個關鍵方面,與感知密切相關–我們需要保持注意力,以建立視覺表現,擁有細節和連貫性。
近年來,隨著人工神經網絡在計算機視覺和自然語言處理等領域的普及,人工注意力機制也開始發展。人工注意讓系統“關注”對象,以更詳細地檢查它。它也成為理解神經網絡背后機制的研究工具,類似于心理學中使用的注意力。
其中一個流行的假設是,存在非注意和注意感知過程。非注意力過程有助于觀察一個場景,并收集高級信息,當這些信息與其他思維過程關聯時,這些信息有助于我們控制注意力過程并導航到場景的某個部分。這意味著不同的觀察者,具有不同的知識,不同的目標,因此不同的注意力策略,可以從字面上看相同的場景。這就把我們帶到了本文的主要主題:人工視覺系統中的注意力有什么不同,我們能不能使用注意力信息來提高卷積神經網絡的性能?更具體地說,教師網絡是否可以通過向另一個學生網絡提供關于它的外觀的信息,即關于它將注意力集中在哪里的信息來提高另一個學生網絡的性能?
要研究這些問題,首先需要正確地指定如何在給定的卷積神經網絡中定義注意力。為此,在這里,我們將注意力視為一組空間映射,這些映射本質上試圖編碼網絡最關注的輸入空間區域,以做出其輸出決策(例如,對圖像進行分類),其中,這些映射可以在網絡的各個層中定義,以便它們能夠捕獲低級、中級和高級表示信息。更具體地說,在本工作中,我們定義了兩種類型的空間注意力圖:基于激活的和基于梯度的。我們探索了這兩個注意力圖如何在各種數據集和體系結構上變化,并表明這些數據集和體系結構實際上包含了有價值的信息,這些信息可以用于顯著提高卷積神經網絡體系結構(各種類型并為各種不同任務訓練)的性能。為此,我們提出了幾種新的方法,將注意力從強大的教師網絡轉移到較小的學生網絡,目的是提高后者的表現(圖1)。
總之,這項工作的貢獻如下:
我們建議將注意力作為將知識從一個網絡轉移到另一個網絡的機制
我們建議使用基于激活和基于梯度的空間注意力圖
我們實驗表明,我們的方法在各種數據集和深度網絡架構中提供了顯著的改進,包括剩余網絡和非剩余網絡
我們證明了基于激活的注意力轉移比完全激活轉移提供了更好的改進,并且可以與知識蒸餾結合
本文的其余部分結構如下:我們首先在第2節中描述相關工作,在第3節中解釋了我們基于激活和基于梯度的注意力轉移的方法,然后在第4節中給出了這兩種方法的實驗結果。我們在第5節結束論文。
2. Related work
基于注意力的跟蹤Larochelle & Hinton的早期工作(2010年),Denil等人。(2012年)的動機是人類注意力機制理論Rensink(2000年),并通過限制博爾茲曼機器完成。它最近被改編成具有遞歸神經網絡的神經機器翻譯,例如Bahdanau等人。(2014年)以及其他幾項與NLP相關的任務。它也被用于計算機視覺相關的任務,如圖像字幕徐等人。(2015),視覺問題回答楊等人。(2015),以及弱監督對象本地化Oquab等人。(2015年)和分類Mnih等人。(2014年),舉幾個典型的例子。在所有這些任務中,注意力被證明是有用的。
在深度卷積神經網絡中可視化注意力圖是一個開放的問題。最簡單的基于梯度的方法是計算網絡輸出w.r.t.輸入的雅可比(這導致不一定是類鑒別的注意力可視化),例如Simonyan等人。(2014年)。Zeiler & Fergus(2014年)提出了另一種方法,包括附加一個名為“deconnet”的網絡,該網絡與原始網絡共享權重,并用于將某些特征投影到圖像平面上。還提出了許多方法來改善基于梯度的注意力,例如引導反向傳播Springenberg等人。(2015),在計算梯度w.r.t.上一層輸出期間添加ReLU層的更改。用引導反向傳播獲得的注意力圖也是非類鑒別的。在現有的可視化注意力的方法中,我們還應該提到類激活映射周等人。(2016),它基于刪除頂部平均池層并將線性分類層轉換為卷積層,為每個類生成注意力圖。Selvaraju等人的一種結合引導反向傳播和CAM的方法是格拉德CAM。(2016),將圖像級細節添加到類區分注意力地圖中。
Hinton等人開創了神經網絡知識蒸餾的先河。(2015年);Bucila等人。(2006年),這是一種轉移學習方法,旨在依靠從強大的教師網絡借用的知識來改善學生網絡的培訓。雖然在某些特殊情況下,淺層網絡已被證明能夠在不損失準確性的情況下近似更深層網絡(2014年),但后來與知識蒸餾有關的工作主要基于這樣的假設,即更深層網絡總是學習更好的表示。例如,菲特網羅梅羅等人。(2014年)試圖使用具有更多參數的淺層網絡學習薄深度網絡。斯里瓦斯塔瓦等人高速公路的引入。(2015年)和后來的殘余網絡He等人。(2015年)允許以更高的精度訓練非常深入的體系結構,這些網絡的通用性在大量數據集上得到了實驗證明。雖然剩余網絡的主要動機是增加深度,但Zagoruyko & Komodakis(2016年)后來表明,在一定深度之后,改進主要來自網絡容量的增加,即參數的數量(例如,一個只有16層的更寬的深殘差網絡被證明,它可以學習到與非常薄的1000層一樣好或更好的表示,前提是它們使用的參數數量相當。
由于上述事實,以及由于薄深度網絡的并行性不如寬深度網絡,我們認為需要重新審視知識轉移,并采取與健身網方法相反的方法,我們試圖學習不那么深入的學生網絡。我們用于傳輸的注意力圖與上面提到的基于梯度和基于激活的地圖相似,它們在FitNets中起著類似于“提示”的作用,盡管我們沒有引入新的權重。
3. Attention transfer
在本節中,我們解釋了我們用于定義卷積神經網絡的空間注意力圖的兩種方法,以及在每種情況下我們如何將注意力信息從教師傳輸到學生網絡。
3.1 Activation-based attention transfer
讓我們考慮CNN層及其相應的激活張量A△RC×H×W,它由空間維度為H×W的C個特征平面組成。基于激活的映射函數F(w.r.t.該層)將上述3D張量A作為輸入,并輸出空間注意力映射,即,在空間維度上定義的扁平2D張量,或
為了定義這樣的空間注意力映射函數,我們在本節中做出的隱式假設是,隱藏神經元激活的絕對值(當網絡在給定輸入上評估時產生)可以用作該神經元w.r.t重要性的指示。特定輸入。因此,通過考慮張量A元素的絕對值,我們可以通過計算通道維度上這些值的統計信息來構建空間注意力圖(見圖3)。更具體地說,在本工作中,我們將考慮以下基于激活的空間注意力圖:
其中,Ai = A(i, :, :)(使用Matlab符號),max、冪和絕對值操作是元素的(例如,|Ai|p等效于abs(Ai)。Matlab符號中的p)。
我們在幾個數據集上可視化了各種網絡的激活,包括ImageNet分類和定位、COCO對象檢測、人臉識別和細粒度識別。我們主要關注的是沒有頂級密集線性層的現代體系結構,如Network-InNetwork、ResNet和Inception,它們簡化了卷積結構。我們還檢查了相同體系結構、寬度和深度的網絡,但使用不同的框架進行訓練,性能差異顯著。我們發現,上述隱藏激活的統計信息不僅與圖像水平上的預測對象具有空間相關性,而且這些相關性在精度較高的網絡中也往往更高,而較強的網絡在弱網絡中具有注意力峰值(例如,參見圖4)。此外,注意力圖集中在網絡中不同層的不同部分。在第一層,低層梯度點的神經元激活水平較高,在中間,對于眼睛或輪子等最具鑒別力的區域,神經元激活水平較高,在頂層,神經元激活水平反映了完整的物體。例如,為人臉識別訓練的網絡的中層注意力圖Parkhi等人。(2015年)將在眼睛、鼻子和嘴唇周圍有更高的激活,頂級激活將對應于全臉(圖2)。
關于上面定義的不同注意力映射函數,這些函數可能具有略有不同的屬性。例如:
與Fsum(A)相比,空間映射Fpsum(A)(其中p>1)對與具有最高激活的神經元相對應的空間位置賦予了更多的權重,即,把更多的權重放在最具鑒別力的部分上(p越大,就越關注那些激活度最高的部分)。
此外,在對應于相同空間位置的所有神經元激活中,Fpmax(A)將只考慮其中一個為該空間位置分配權重(與Fpsum(A)相反,Fpsum(A)將有利于攜帶多個具有高激活的神經元的空間位置)。
為了進一步說明這些功能的差異,我們可視化了3個網絡的注意力圖,這些網絡在分類性能上有足夠的差異:網絡中(62%的top-1值精度),ResNet-34(73%的top-1值精度)和ResNet-101(77.3%的top-1值精度)。在每個網絡中,我們提取了最后一個預降采樣激活映射,在圖4中,左邊是中層,右邊是頂部前平均池激活。頂層地圖是模糊的,因為它們的原始空間分辨率是7×7。很明顯,大多數鑒別區域都有較高的激活水平,例如狼的臉,形狀細節隨著參數p(用作指數)的增加而消失。
在注意力轉移中,考慮到教師網絡的空間注意力圖(使用上述任何注意力映射函數計算),目標是訓練一個學生網絡,該網絡不僅會做出正確的預測,而且會擁有與教師相似的注意力圖。一般來說,可以將傳輸損失放置在跨幾個層計算的注意力圖上。例如,在ResNet體系結構的情況下,根據教師和學生的深度,可以考慮以下兩種情況:
相同深度:在每個殘留塊之后可能有注意力轉移層
不同深度:對每組剩余塊的輸出激活進行注意力轉移
圖4:各種ImageNet網絡的激活注意力圖:網絡中網絡(62%top-1 val精度)、ResNet-34(73%top-1 val精度)、ResNet-101(77.3%top-1 val精度)。左側部分:中層激活,右側部分:頂級前softmax激活
圖5:當兩個網絡都是殘余的,教師更深時,師生注意力轉移示意圖。
類似的情況也適用于其他體系結構(如NIN,在這種情況下,組是指3×3、1×1、1×1卷積的塊)。在圖5中,我們提供了剩余網絡架構的不同深度情況的示意圖。
在不喪失一般性的情況下,我們假設轉移損失放置在相同空間分辨率的學生和教師注意力圖之間,但是,如果需要,注意力圖可以插值以匹配它們的形狀。設S、T和WS、WT相應地表示學生、教師及其權重,設L(W, x)表示標準交叉熵損失。讓我也表示我們要轉移注意力圖的所有師生激活層對的索引。然后,我們可以定義以下總損失:
其中QjS=vec(F(AjS))和QjT=vec(F(AjT))分別是矢量化形式的第j對學生和教師注意力圖,并更喜歡范數類型(在我們使用的實驗中)。可以看出,在注意力轉移過程中,我們使用了l2-歸一化的注意力圖,即,我們用Q△Q△2替換每個矢量化的注意力圖Q(也可以使用l1歸一化)。值得強調的是,注意力圖的正常化對于學生培訓的成功至關重要。
注意力轉移也可以與知識蒸餾Hinton等人結合起來。(2015年),在這種情況下,只需將額外的術語(對應于教師和學生標簽上軟化分布之間的交叉熵)包括在上述損失中。當結合起來時,注意力轉移增加的計算成本很少,因為教師的注意力圖可以很容易地在正向傳播期間計算,這是蒸餾所需的。
3.2 Gradient-based attention transfer
在這種情況下,我們將注意力定義為梯度w.r.t.輸入,它可以被視為輸入靈敏度映射Simonyan等人。(2014),即,輸入空間位置處的注意力編碼輸出預測的靈敏度w.r.t.在該輸入位置處的變化(例如,如果像素處的微小變化會對網絡輸出產生很大影響,那么假設網絡正在“關注”該像素是合乎邏輯的。讓我們將教師和學生的損失w.r.t輸入的梯度定義為:
然后,如果我們希望學生梯度注意力與教師注意力相似,我們可以最小化它們之間的距離(這里我們使用l2距離,但也可以使用其他距離):
當給定WT和x時,要獲得所需的導數w.r.t.WS:
因此,要進行更新,我們首先需要進行正向和反向傳播以getJSandJT,計算第二個錯誤β2||JS-JT||2并第二次傳播它。在這種情況下,第二傳播類似于正向傳播,并涉及二階混合偏導數計算△2△WS△x。上述計算類似于Druck&LeCun(1992)開發的雙反向傳播技術(其中2梯度w.r.t.輸入的范數用作正則化器。此外,它可以在具有自動微分支持的框架中有效地實現,即使對于具有復雜圖形的現代體系結構也是如此。第二反向傳播的成本與第一反向傳播大致相同,不包括前向傳播。
我們還建議在梯度注意力圖上強制水平翻轉不變性。為此,我們傳播水平翻轉的圖像以及原始圖像,反向傳播和翻轉梯度注意力映射回來。然后,我們在獲得的注意力和輸出上添加l2損失,并進行第二次反向傳播:
其中,翻轉(x)表示翻轉運算符。這與Cohen & Welling(2016年)的Group Equivariant CNN方法相似,但這并不是一個硬約束。我們實驗發現,這對訓練有正則化的影響。
我們應該注意到,在這項工作中,我們只考慮輸入層的梯度,但通常,我們可能會有建議的注意力轉移和對稱約束,w.r.t.網絡的高層。
4. Experimental section
在下一節中,我們將探討各種圖像分類數據集上的注意力轉移。我們將該部分分為兩部分,第一部分包括CIFAR上基于激活的注意力轉移和基于梯度的注意力轉移實驗,第二部分包括在較大數據集上基于激活的注意力轉移實驗。對于基于激活的注意力轉移,我們使用了Network-InNetwork Lin等人。(2013年)和基于ResNet的體系結構(包括最近推出的廣殘差網絡(WRN)Zagoruyko & Komodakis(2016年)),由于與AlexNet或VGG相比,它們的性能最高,并在參數數量方面設置了強大的基線,并且已經在小型和大型數據集的各種論文中進行了探索。在場景、CUB和ImageNet上,我們實驗了ResNet-18和ResNet-34。至于基于梯度的注意力,由于需要復雜的自動區分,我們將自己限制在沒有批量標準化和CIFAR數據集的Network-In-Network上。
4.1 CIFAR Experiments
我們從CIFAR數據集開始,它有小的32 × 32圖像,在下采樣后,頂部激活的分辨率甚至更小,因此沒有太多的空間用于注意力轉移。有趣的是,即使在這種對抗性的環境下,我們發現注意力轉移似乎能帶來合理的好處,在所有情況下都能提供一致的改進。我們使用水平翻轉和隨機作物數據增強,所有網絡都有批量歸一化。我們發現ZCA白化對驗證精度有負面影響,并忽略它,有利于更簡單的均值歸一化。我們將ResNet傳輸的知識蒸餾(KD)溫度提高到4,并使用α = 0.9(有關這些參數的解釋,請參見Hinton等人(2015年))。
CIFAR-10上各種網絡的注意力轉移結果(使用F2sumat注意力映射)可在表1中找到。我們實驗了具有相同深度(WRN-16-2/WRN-16-1)以及不同深度(WRN-40-1/WRN-16-1、WRN-40-2/WRN-16-2)的教師/學生。在所有組合中,注意力轉移(AT)都顯示出顯著的改善,當它與知識蒸餾(AT+KD)結合時,這種改善也會更高。
為了驗證在WRN傳輸中,每個組至少有一個基于激活的注意力傳輸損失是否重要,我們分別在組1、組2和組3中訓練了三個網絡,每個網絡只有一個傳輸損失,并與訓練了所有三個損失的網絡進行了比較。相應的結果為8.11、7.96、7.97(單獨損失)和7.93(使用WRN16-2/WRN-16-1作為教師/學生對)。每一次損失都提供了一定程度的注意力轉移。
我們還探索了哪些注意力映射功能往往最有效地使用WRN-16-1和WRN-16-2分別作為學生和教師網絡(表2)。有趣的是,基于和的函數的工作原理非常相似,而且比基于max的函數要好。從現在開始,為了簡單起見,我們將使用平方注意力映射函數F2sum的和。至于等式中的參數β。2、它通常變化約0.1,因為我們將它設置為103,按注意力圖中的元素數量和每層的批處理大小劃分。如果將AT和KD結合起來,我們在訓練過程中衰減它,以簡化學習更難的例子。
為了檢查從完全激活張量傳輸信息是否比從注意力映射傳輸信息更有益,我們嘗試了在完全激活上直接使用l2損失的FitNets風格的提示,使用1×1卷積層來匹配張量形狀,并發現與基線學生相比的改善最小(見表1中的F-ActT欄)。對于相同寬度不同深度的網絡,我們試圖直接回歸到激活,而沒有1×1卷積。我們還在傳輸損失之前使用l2歸一化,在等式中使用衰減β。2在訓練期間,因為這些都能提供更好的表現。我們發現AT以及全激活傳輸極大地加快了收斂速度,但AT比全激活傳輸提供了更好的最終精度提高(見圖7(b),附錄)。有趣的是,注意力圖攜帶的信息對傳輸比完全激活更重要。
為了簡單起見,我們在這些實驗中使用了瘦網絡中網絡模型,并且不應用隨機裁剪數據增強與批處理標準化,只應用水平翻轉增強。我們也只使用確定性算法和固定種子采樣,因此報告的數字用于單次運行實驗。我們發現,在這種情況下,網絡已經很難適應訓練數據,甚至在基線實驗中也會關閉權重衰減。未來,我們計劃探索使用批量歸一化的師生對的基于梯度的注意力,因為到目前為止還不清楚批量歸一化在基于梯度的注意力轉移過程中所需的第二個反向傳播步驟中應該如何表現(例如,它是否有助于批處理標準化參數,或者是需要固定參數的單獨正向傳播)。
我們探索了以下方法:
最小化梯度w.r.t.輸入的l2范數,即雙反向傳播方法Druck&LeCun(1992年);
梯度注意力圖上的對稱范數(見等式6);
基于學生-教師梯度的注意力轉移;
基于學生-教師激活的注意力轉移。
各種方法的結果見表3。有趣的是,僅僅最小化梯度的l2范數就已經很好地工作了。此外,對稱范數是表現最好的注意力范數之一,我們計劃在未來在其他數據集上進行研究。我們還觀察到,與基于激活的注意力轉移類似,使用基于梯度的注意力轉移會提高性能。我們還在相同的訓練條件下訓練了一個基于激活的AT的網絡,這導致了所有方法中最好的性能。我們應該注意到,沒有批處理規范化的學生NIN的體系結構與教師網絡略有不同,它在池化層之前沒有ReLU激活,這導致在沒有批處理規范化的情況下性能更好,而在沒有批處理規范化的情況下性能更糟。因此,為了使用基于激活的AT實現最佳性能,我們必須訓練一個新的教師,在池化層之前使用批量歸一化和不使用ReLU激活,并在卷積層的輸出上有AT損失。
4.2 Large input image networks
在本節中,我們在具有224 × 224輸入圖像大小的ImageNet網絡上實驗隱藏激活注意力轉移。據推測,注意力在這種網絡中更重要,因為注意力圖的空間分辨率更高。
為了了解注意力轉移在微調中的工作原理,我們選擇了兩個數據集:加州理工學院-UCSD鳥-200-2011細粒度分類(CUB),由華等人。(2011年)和麻省理工學院室內場景分類(場景),由Quattoni & Torralba(2009年),都包含大約5K圖像訓練圖像。Wetok在ImageNet上預訓練ResNet-18和ResNet-34,并在兩個數據集上微調。在CUBwe裁剪邊界框上,在一維中重新縮放為256,然后進行隨機裁剪。固定批量歸一化層進行微調,并凍結第一組殘留塊。然后,我們對ResNet-34網絡進行了微調,并將它們用作在ImageNet上預訓練的ResNet-18的教師,最后2組的F2和注意力損失。在這兩種情況下,注意力轉移都提供了顯著的改進,縮小了ResNet-18和ResNet-34在準確性上的差距。在場景AT和KD一樣工作,在CUB AT上工作得更好,我們推測這是因為中間注意對細粒度識別的重要性。此外,在微調后,學生的注意力圖看起來確實與教師的注意力圖更相似(圖6,附錄)。
為了在ImageNet上展示基于激活的注意力轉移,我們以ResNet-18作為學生,ResNet-34作為教師,并試圖提高ResNet-18的準確性。我們在最后2組殘差塊中只添加了兩個損失,并使用了平方和注意F2sum。我們也沒有時間調整任何超參數,并阻止它們微調實驗。然而,ResNet-18與注意力轉移實現了1.1%的前1和0.8%的前5驗證準確性(表5和圖7(a),附錄),我們計劃更新論文,并在所有4組剩余塊上損失。
我們未能在ImageNet上使用KD取得積極的結果。使用ResNet-18-ResNet-34學生-教師對,它實際上會損害與CIFAR上相同的超參數的收斂性。據報道,如果教師和學生有不同的體系結構/深度(我們在CIFAR上觀察到的是相同的),KD很難工作,因此我們嘗試使用相同的體系結構和深度進行注意力轉移。在CIFAR上,AT和KD在這種情況下都能很好地工作,并提高了收斂性和最終精度,盡管KD收斂速度要慢得多(由于缺乏計算資源,我們直到最后才訓練)。在文獻中,我們也找不到FitNets、KD或類似方法在ImageNet上的應用。鑒于此,我們可以假設所提出的基于激活的AT是第一個成功應用于ImageNet的知識轉移方法。
5 Conclusions
我們提出了幾種將注意力從一個網絡轉移到另一個網絡的方法,并在幾個圖像識別數據集上進行了實驗結果。在空間信息更重要的情況下,例如物體檢測或弱監督定位,注意力轉移是如何工作的,這將是很有趣的,這是我們計劃在未來探索的。
總體而言,我們認為我們有趣的發現將有助于進一步推進知識蒸餾,并理解卷積神經網絡。
神經網絡
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。