壓縮與激發區塊(squeeze-and-excitation block)
壓縮與激發區塊(Hu、Shen 與 Sun,2018)為 CNN 加入一種輕量的注意力形式,讓網路能即時重新校準每個特徵通道的重要性。一般的卷積以固定、與輸入無關的權重對待所有輸出通道;但對某張特定影像而言,某些通道(譬如一個「毛皮紋理」偵測器)高度相關,而其他則是雜訊,而哪些重要取決於輸入。SE 區塊學會去看整張特徵圖、判斷每個通道對這個特定輸入有多重要、然後據此重新縮放每個通道。SENet(一個配備 SE 區塊的 ResNet)贏得了 2017 年最後一屆的 ILSVRC 競賽。
這個機制有兩個步驟,正好賦予該區塊其名。壓縮(squeeze)步驟以全域平均池化把每個通道的整張空間圖壓縮成一個數字,為每個通道產生一個概括其全域激活的描述子。激發(excitation)步驟把這個通道描述子向量送過一個微型的兩層全連接瓶頸(一個帶 ReLU 的降維層,再一個帶 sigmoid 的還原維度層),為每個通道產生一個介於 0 到 1 之間的權重。最後這些權重逐通道地乘上原始特徵圖,放大有用的通道、抑制無益的通道。這就是通道注意力(channel attention):空間結構原封不動,只調節逐通道的增益。
SE 區塊吸引人之處在於它們既廉價又模組化。它們只增加少量參數與微不足道的計算量,並且可以插進幾乎任何既有架構——ResNet、Inception、MobileNet——只要把它們插在區塊的卷積之後。在許多骨幹上,SE 區塊幾乎免費地帶來一致的準確率提升,這正是它們被廣泛採用的原因,尤其是在 MobileNetV3 與 EfficientNet 內部。它們也標誌了一個重要的概念時刻:注意力——讓網路根據內容動態地重新加權自身特徵的想法——進入主流視覺架構,恰好在 transformer 把注意力推上整個領域的前台之前不久。
若某卷積區塊輸出 256 通道的特徵圖,一個縮減比為 16 的 SE 區塊會把它們壓縮成一個 256 維向量,過一個 256 到 16 的 ReLU 層與一個 16 到 256 的 sigmoid 層得到 256 個位於 [0,1] 的閘門,再把每個通道乘上其閘門,全部僅需約 256x16x2 個額外權重。