讓CNN有了平移不變性,同時提升ImageNet成績:Adobe開源新方法,登上ICML
各種架構(gòu)都適用。
栗子 發(fā)自 凹非寺
量子位 報道 | 公眾號 QbitAI
古往今來,大家都知道:只要圖像一平移,CNN就認不出來了。
原因就在降采樣身上。不管是最大池化,跨步卷積,還是平均池化,都對平移太敏感:
比如,0、0、1、1、0、0、1、1……這樣的周期,最大池化是這樣:
但如果平移一格,最大池化完全變了一個樣子:
雖然,有著名的抗鋸齒?(Anti-Aliasing,AA) 方法,致力解決這個問題。但把這種模塊直接插進網(wǎng)絡(luò),會嚴重影響模型的表現(xiàn)。
現(xiàn)在,來自Adobe的Richard Zhang (簡稱“理查”) ,讓抗鋸齒和各種降采樣和平共處了。
在保留平移不變性的情況下,還能提升ImageNet上的分類準確率。VGG、ResNet、DenseNet……各種架構(gòu)都適用。
不止如此, 面對其他干擾更穩(wěn)定了,如旋轉(zhuǎn)如縮放;面對輸入圖像的損壞,還更魯棒了。
研究登上了ICML 2019,代碼已經(jīng)開源,還有演講可以看。Reddit熱度已經(jīng)超過了250,觀眾紛紛表達了謝意:
論文很厲害,演講也很好。
怎樣和解的?
想知道怎樣幫助CNN保留平移不變形,就要了解平移不變性是怎樣打破的。
理查觀察了VGG的第一個卷積層,發(fā)現(xiàn)它對平移毫無波瀾,并不是在這里打破的。
但再觀察第一個池化層,對平移有了反應(yīng):平移偶數(shù)個像素,表征還不改變,平移奇數(shù)個像素,表征就完全變了。
向網(wǎng)絡(luò)深處走,經(jīng)過的池化層越多,問題就越嚴重。
△抗鋸齒
想解決這個問題,就要把抗鋸齒和降采樣友好地結(jié)合到一起。
于是,理查又仔細查看了降采樣過程,把它 (按順序) 分成了兩個部分:
一是取最大值,用密集的方式。二是在中間特征圖 (Intermediate Feature Map) 上做子采樣 (Sub-Sampling) 。
第一步?jīng)]有問題,完全不會出現(xiàn)鋸齒。
第二步就要改了。理查給中間特征圖,加了個模糊濾波器?(Blur Filter) 來抗鋸齒,然后再做子采樣:
△(2)為濾波器
那么,“抗鋸齒版最大池化”效果怎么樣?
平移不變性與準確率兼得
理查用ImageNet分類任務(wù)測試了一下進化后的VGG,原以為會損失一些準確率,結(jié)果:
△右為抗鋸齒
△空心為抗鋸齒
在解鎖平移不變性的同時,準確率還提升了。
如果降采樣方法不是最大池化,又怎么樣呢?
所以,理查還測試了ResNet和MobileNetv2,它們用的是跨步卷積;以及DenseNet,它用的是平均池化:
△空心為抗鋸齒
這些架構(gòu)也獲得了類似的提升。全面成功。
上面只講了分類這一項任務(wù)。而進化后的降采樣,在圖到圖翻譯任務(wù)上也同樣有效。
不懼各種變換,以及圖像損壞
不只是平移,像旋轉(zhuǎn)、縮放這樣的干擾,都可以應(yīng)對自如;另外,面對輸入圖像損壞?(Image Corruption) ,也變得更加魯棒了。
ImageNet-P數(shù)據(jù)集里,有受到各類干擾的圖像;而ImageNet-C數(shù)據(jù)集里,包含了系統(tǒng)性損壞的圖像。
△mCE=Mean Corruption Rate, mFR=Mean Flip Rate
左邊一欄 (除了Baseline) 之外,是不同的濾波器,從上到下依次變強。mCE和mFR,都是越小越好。
數(shù)據(jù)顯示,各種濾波器都能有效增強,應(yīng)對干擾的穩(wěn)定性,和應(yīng)對圖像損壞的魯棒性。其中,最強的過濾器Bin-5表現(xiàn)最佳。
One More Thing
如果小伙伴們沒有看夠,可以點開演講視頻:
然后,還有一大波傳送門。
論文在此:
https://arxiv.org/abs/1904.11486
項目主頁:
https://richzhang.github.io/antialiased-cnns/
開源代碼:
https://github.com/adobe/antialiased-cnns/
— 完 —
- 馬云正式卸任后,阿里巴巴開盤跌0.87%2019-09-10
- AI獨角獸云知聲,已完成一期科創(chuàng)板IPO輔導2019-10-17
- 亞馬遜在華拓展云計算團隊,挑戰(zhàn)阿里巴巴和騰訊2019-10-16
- IDC:今年上半年中國公有云服務(wù)市場規(guī)模達54.2億美元2019-11-07




