愚蠢的CNN,換個馬甲就認不出貓!但,這病能治 | ICLR Oral
ImageNet背鍋
魚羊 栗子 發(fā)自 凹非寺
量子位 報道 | 公眾號 QbitAI
“穿件馬甲就不認識我了?”
如果把大象的紋理披在貓身上,CNN識別出的就是大象 (詳見下文) 。
圖賓根大學的博士僧發(fā)現(xiàn),ImageNet訓練出來的CNN做圖像分類時,強烈依賴紋理/質(zhì)地,居然不怎么看形狀。
所以給圖像做個風格遷移,輕輕松松就能蒙騙AI。
這么好騙的AI必須治,團隊制造了一個升級版ImageNet,不讓紋理再給AI任何提示,逼迫它學習形狀。
調(diào)教后的AI不止更加準確,面對噪音等各種干擾的時候,還更加魯棒了。
這項研究中選了ICLR 2019的Oral。
這個CNN有點蠢
這里有一只橘貓:
還有一塊只有紋理的大象皮:
把大象皮給橘貓披上,橘貓就被認成了大象???
CNN未免太好騙了吧?
來自德國圖賓根大學的團隊發(fā)現(xiàn),與以往的認知不同,CNN并不是通過將低級特征(例如邊緣)組合成復雜的形狀,以此來對物體進行分類的。
此前已有研究表明,即使全局形狀完全被破壞,CNN仍然可以出色地完成對紋理化圖像的識別,似乎對于ImageNet訓練出來的CNN來說,局部紋理就已經(jīng)給分類提供了足夠多的信息。
那么問題就來了,對于CNN圖像識別來說,到底是對象紋理影響大還是全局形狀影響大呢?
實踐才能出真知,圖賓根大學的小伙伴們?yōu)榇司脑O計了實驗。他們利用風格遷移創(chuàng)建了像披著象皮的貓這樣紋理與形狀相沖突的圖片,用它們來測試CNN到底更偏向于哪一邊。
用于測試對象包括用ImageNet訓練過的AlexNet、VGG-16、GoogLeNet、強大的ResNet-50,以及97名人類選手。
??????
橘貓,識別成功?;业舻拈儇?,也能識別。涂黑了的橘貓,emmm,有點懵比。素描風格的橘貓,呃,更加尷尬。
紋理越不明,AI越懵比。紋理 VS 形狀,CNN對紋理的依賴竟然占了絕對上風。
別急,能治的
團隊發(fā)現(xiàn),CNN對局部紋理有超強的bias,而不重視全局形狀。
那么,就要用強硬的方法,把bias掰到形狀那一邊去。
研究人員用ImageNet做基礎,造起一個風格化的數(shù)據(jù)集,叫做Stylized-ImageNet,簡稱SIN:
把每一張圖的原始紋理除掉,然后用一種隨機選擇的繪畫風格代替。
目的就是讓AI在沒有紋理線索的情況下,也能準確判斷物體的類別。
這里用的是AdaIN風格遷移方法,風格化系數(shù)為α=1.0。
風格的來源,則是Kaggle的Painter by Numbers數(shù)據(jù)集。
新數(shù)據(jù)集的搭建過程,已經(jīng)開源了,請見文底傳送門。
療效顯著
在SIN數(shù)據(jù)集上,紋理已經(jīng)風格化,沒有太多能幫助分類的有效信息了。
用SIN訓練并用SIN測試的結(jié)果是,top-5準確率只有79%。
同樣的網(wǎng)絡,在普通ImageNet上訓練并用ImageNet測試,top-5準確率有92.9%。
這說明,SIN比ImageNet的任務要難許多,少了判斷依據(jù),多了干擾信息。
有趣的是,ImageNet的特征在SIN上的泛化能力很差:用前者訓練,后者測試,top-5準確率只有16.4%。
相反,在SIN上學到的特征卻在ImageNet上泛化不錯:不做任何微調(diào)的情況下,top-5準確率高達82.6%。
然后,還要詳細證明一下,只學紋理的模型真的搞不定SIN。
研究人員想起了2018年發(fā)布的BagNet,就是僅靠局部紋理搞定ImageNet的那只前輩:
BagNet也是ResNet-50架構(gòu),不過最大感受野大小被限定在9×9, 17×17或33×33像素。這樣就沒有辦法學習任何長距離的空間關(guān)系,用來分類。
有了這些限制,BagNet在ImageNet上面表現(xiàn)很好 (70%) ,但在SIN上就不太好了 (10%) 。
這明確地表示,SIN數(shù)據(jù)集可以除去局部紋理給AI帶去的線索,逼迫它去學習長距離的空間信息。因為BagNet自身限制沒辦法學習全局,才撲街了。
更重要的是,線索沖突實驗?(Cue Conflict Experiment) 證明,用SIN訓練的ResNet-50,強烈地偏愛形狀線索:bias從ImageNet上的22%,提升到了SIN上的81%。
在許多類別的判斷上,甚至和人類對形狀的依賴一樣強。
還有驚喜
除了學到形狀特征之外,SIN還附贈許多意想不到的優(yōu)勢。
第一,重點學習了形狀的ResNet,在top-1和top5準確率上,都勝過了原始的ResNet。
這表示,SIN很可能是一個數(shù)據(jù)擴增的好方法。
第二,團隊還用Faster R-CNN模型,測試了新老ResNet作為Backbone的表現(xiàn)。
把SIN揉進訓練數(shù)據(jù),大大提升了目標檢測準確率:從70.7到75.1。這也和目標檢測基于形狀表征的天性有關(guān)。
第三,研究人員系統(tǒng)測試了,當給圖像加入一些干擾:比如均勻噪音或相位噪音、對比度改變、高通與低通濾波等等,準確度會發(fā)生怎樣的變化。
雖然損失了幾個百分點的準確率,用SIN訓練的神經(jīng)網(wǎng)絡還是在絕大多數(shù)任務上,戰(zhàn)勝了用IN訓練的結(jié)果。
傳送門
論文:https://arxiv.org/abs/1811.12231
Github:https://github.com/rgeirhos/texture-vs-shape
SIN數(shù)據(jù)集:https://github.com/rgeirhos/Stylized-ImageNet
— 完 —