我為什麼要讀這篇論文?


這篇論文可以做什麼?


這篇論文怎麼做?

首先,因為我的 DGCNN 模型遭遇到了訓練瓶頸,

所以我到處找論文來 inprove 模型的準確度。

這篇論文可以加強模型的準確度,前提是 base on ResNet-50。

裡面提到這種架構可以插在任意的 convolution 層中間,

是不會消耗太多計算量的輕量型架構。

這篇論文是從 SE-Net 加強而來,

最主要的差別在於 SE-Net 只對 Channel 做 Attention Module,

而 CBAM 對 Spatial 也做了 Attention Module 並且把它加進來。

整個核心觀念就是用 attention Module 對 CNN 去優化,

至於 Attention Module 是什麼概念可以參考上一篇 SE-Net

整個架構會長這樣:

圖一:CBAM整體架構

圖二:Channel Attention 架構

請參照圖一,那顆 Feature 的尺寸是 C x H x W,

這對解釋接下來的方程式很有幫助。
想像那顆 Feature 是一顆生吐司,每一片都是不同口味。
其中有地瓜、甜芋頭、秋葵三種口味,
我是一個特別喜歡甜芋頭、極度討厭秋葵的人,
Channel Attention 在做的事情就是找出我喜歡的部分,
然後想辦法甜芋頭變得更甜、秋葵變得更無味、讓我更喜歡這顆生吐司。
這顆生吐司(Feature)在我心目中的價值就會越來越高。
我不知道未來的女朋友會不會閒到來看部落格,
但是如果妳覺得火鍋裡面一定要放芋頭,
我會好好思考我們之間的關係。

會把芋頭放進火鍋都是邪教徒吧?





從公式來看架構,剛剛(圖一)說過了尺寸很重要。
這部分會叫 Channel Attention 就是因為它是從 Channel 下去切割的。
Maxpooling 與 Avgpooling 過後的資料尺寸為 C x 1 x 1 的一條濃縮吐司。
MC(F) 就是整個做完的特徵圖(資料)、sigma = sigmoid operator;
W0 與 W1 是結構圖中間進 MLP 的權重,我在 SE-Net 有講過就不贅述了。

至於最重要的,為什麼要做 Maxpooling + Avgpooling?

原作者表示:啊這樣可以更精確地分別每個通道的權重…(幹話。

我自己的觀察:

從 PointConv 這篇論文提到 PointNet 的問題在於 Maxpooling 只能提供 global 或是 local 的 Feature。

SE-Net 使用 Avgpooling 能夠促進模型的性能。

所以小孩子才做選擇,我們兩種混在一起做撒尿牛丸!

圖三:Spatial Attention 架構
解釋一下為什麼這個叫 Spatial Attention ,因為他是切 1 x H x W。
所以得到的特徵是 H x W 在每個通道的值(也就是空間位置)。
比較需要解釋的是 f 7*7,這顆是 Hyperparameter,試出來最好的 kernel。

結論:

根據數據來看 CBAM base on ResNet-50 的時候,
最差那個圖的錯誤率(Top-1 Error)減少了 1.9%。
這種 Attention 架構是一定會變好,
但是我個人猜測要在某些架構的前提下才會變好比較多。
至於CBAM 加進 DGCNN 會不會變好?
我還沒嘗試,但是根據上次 SE-NET 的經驗,
是增加了 萬分之十的準確率。
這次預估能增加萬分之十五應該就很不錯了(O)

By wuyiulin

喜歡騎單車的影像算法工程師

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *