簡單到出人意料的CNN圖像分類策略

2021-02-13 機器學習算法與Python學習

 新智元報導  

在這篇文章中,作者展示了為什麼最先進的深度神經網絡仍能很好地識別亂碼圖像,探究其中原因有助於揭示DNN使用讓人意想不到的簡單策略,對自然圖像進行分類。 

在ICLR 2019一篇論文指出上述發現能夠:

解決ImageNet比許多人想像的要簡單得多

使我們能夠構建更具解釋性和透明度的圖像分類pipeline

解釋了現代CNN中觀察到的一些現象,例如對紋理的偏見以及忽略了對象部分的空間排序

復古bag-of-features模型


在深度學習出現之前,自然圖像中的對象識別過程相當粗暴簡單:定義一組關鍵視覺特徵(「單詞」),識別每個視覺特徵在圖像中的存在頻率(「包」),然後根據這些數字對圖像進行分類。 這些模型被稱為「特徵包」模型(BoF模型)。

舉個例子,給定一個人眼和一個羽毛,我們想把圖像分類為「人」和「鳥」兩類。最簡單的BoF模型工作流程是這樣的:對於圖像中的每隻眼睛,它將「人類」的證據增加+1。反之亦然;對於圖像中的每個羽毛,它將增加「鳥」的證據+1;無論什麼類積累,圖像中的大多數證據都是預測的。

這個最簡單的BoF模型有一個很好的特性,是它的可解釋性和透明的決策制定。我們可以準確地檢查哪個圖像特徵攜帶了給定的類的證據,證據的空間整合是非常簡單的(與深度神經網絡中的深度非線性特徵整合相比),很容易理解模型如何做出決定。

傳統的BoF模型在深度學習開始之前一直非常先進、非常流行。但由於其分類性能過低,而很快失寵。可是,我們怎麼確定深度神經網絡有沒有使用與BoF模型截然不同的決策策略呢?

一個很深卻可解釋的BoF網絡(BagNet)

為了測試這一點,研究人員將BoF模型的可解釋性和透明度與DNN的性能結合起來。

BagNets的分類策略:對於每個補丁,我們使用DNN提取類證據(logits)並總結所有補丁的總類證據

為了以最簡單和最有效的方式實現這一策略,我們採用標準的ResNet-50架構,用1x1卷積替換大多數(但不是全部)3x3卷積。 

在這種情況下,最後一個卷積層中的隱藏單元每個只「看到」圖像的一小部分(即它們的感受野遠小於圖像的大小)。 

這就避免了對圖像的顯式分區,並且儘可能接近標準CNN,同時仍然實現概述的策略,我們稱之為模型結構BagNet-q:其中q代表最頂層的感受域大小(我們測試q=9,17和33)。BagNet-q的運行時間大約是ResNet-50的運行時間的2.5倍。

在ImageNet上具有不同貼片尺寸的BagNets的性能。

即使對於非常小的貼片尺寸,BagNet上的BagNets性能也令人印象深刻:尺寸為17 x 17像素的圖像特徵足以達到AlexNet級別的性能,而尺寸為33 x 33像素的特徵足以達到約87%的前5精度。通過更仔細地放置3 x 3卷積和額外的超參數調整,可以實現更高的性能值。

這是我們得到的第一個重要結果:只需使用一組小圖的特性即可解決ImageNet問題。對象形狀或對象部分之間的關係等遠程空間關係可以完全忽略,並且不需要解決任務。

BagNets的一大特色是他們透明的決策。例如,我們現在可以查看哪個圖像特徵對於給定的類最具預測性。

圖像功能具有最多的類證據。 我們展示了正確預測類(頂行)的功能和預測錯誤類(底行)的分散注意力的功能

上圖中,最上面的手指圖像被識別成tench(丁鱥guì,是淡水釣魚的主要魚種,也是鱸魚等獵食性魚類的飼料),因為這個類別中的大多數圖像,都有一個漁民像舉獎盃一樣舉起丁鱥。

同樣,我們還得到一個精確定義的熱圖,顯示圖像的哪些部分促使神經網絡做出某個決定。

來自BagNets的熱圖顯示了確切的圖像部分對決策的貢獻。 熱圖不是近似的,而是顯示每個圖像部分的真實貢獻。

ResNet-50與BagNets驚人相似

BagNets表明,基於本地圖像特徵和對象類別之間的弱統計相關性,可以在ImageNet上達到高精度。 

如果這就夠了,為什麼像ResNet-50這樣的標準深網會學到任何根本不同的東西? 如果豐富的本地圖像特徵足以解決任務,那為什麼ResNet-50還需要了解複雜的大尺度關係(如對象的形狀)?

為了驗證現代DNN遵循與簡單的特徵包網絡類似的策略的假設,我們在BagNets的以下「籤名」上測試不同的ResNets,DenseNets和VGG:

在所有四個實驗中,我們發現CNN和BagNets之間的行為非常相似。 例如,在上一個實驗中,我們展示了BagNets最敏感的那些圖像部分(例如,如果你遮擋那些部分)與CNN最敏感的那些基本相同。 

實際上,BagNets的熱圖(靈敏度的空間圖)比由DeepLift(直接為DenseNet-169計算熱圖)等歸因方法生成的熱圖,更好地預測了DenseNet-169的靈敏度。 

當然,DNN並不完全類似於特徵包模型,但確實顯示出一些偏差。特別是,我們發現網絡越深入,功能越來越大,遠程依賴性也越來越大。 

因此,更深層的神經網絡確實改進了更簡單的特徵包模型,但我認為核心分類策略並沒有真正改變。

解釋CNN幾個奇怪的現象

將CNN的決策視為一種BoF策略,可以解釋有關CNN的幾個奇怪的觀察。首先,它將解釋為什麼CNN具有如此強烈的紋理偏差;其次,它可以解釋為什麼CNN對圖像部分的混亂如此不敏感;甚至可以解釋一般的對抗性貼紙和對抗性擾動的存在,比如人們在圖像中的任何地方放置誤導信號,並且無論這些信號是否適合圖像的其餘部分,CNN仍然可以可靠地接收信號。

我們的成果顯示,CNN利用自然圖像中存在的許多弱統計規律進行分類,並且不會像人類一樣跳向圖像部分的對象級整合。其他任務和感官方式也是如此。

我們必須認真思考如何構建架構、任務和學習方法,以抵消這種弱統計相關性的趨勢。一種方式,是將CNN的歸納偏差從小的局部特徵改善為更全局的特徵;另一種方式,是刪除、或替換網絡不應該依賴的那些特徵。

然而,最大的問題之一當然是圖像分類本身的任務:如果局部圖像特徵足以解決任務,也就不需要去學習自然界的真實「物理學」,這樣我們就必須重構任務,推著模型去學習對象的物理本質。

這樣就很可能需要跳出純粹只通過觀察學習,獲得輸入和輸出特徵之間相關性的方式,以便允許模型提取因果依賴性。

總結

總之,我們的結果表明CNN可能遵循極其簡單的分類策略。科學家認為這個發現可能在2019繼續成為關注的焦點,凸顯了我們對深度神經網絡的內部運作了解甚少。 

缺乏理解使我們無法從根本上發展出更好的模型和架構,來縮小人與機器之間的差距。深化我們的理解,將使我們能夠找到彌合這一差距的方法。 

這將帶來異常豐厚的回報:當我們試圖將CNN偏向物體的更多物理特性時,我們突然達到了接近人類的噪聲穩健性。 

我們繼續期待在2019年,在這一領域上會出現更多令人興奮的結果,獲得真正了解了真實世界中,物理和因果性質的卷積神經網絡。

推薦閱讀

不會多機並行爬取數據的看這裡!

抖音爬蟲 | 手把手教你下載指定的Douyin視頻

資源 | 正則表達式的功法大全

春節假期十大AI事件,看看你都錯過了啥

GitHub不為人知的小秘密…讓你的工作更高效

畢業論文無從下手?一文幫你理清頭緒

Python可視化神器——pyecharts的超詳細使用指南!

相關焦點

  • 德國學者給CNN潑冷水:圖像分類策略太簡單,提高準確率全靠調參
    其實,人與機器在這方面的差異,恰恰蘊含著神經網絡分類策略背後簡單的邏輯。最近,來自德國的一群學者構造了一個簡單模型BagNet,就是為了解答上面的疑惑。該模型可以在ImageNet上實現很高的準確率,甚至超過了AlexNet。文章已經發表在ICLR 2019上。
  • 用於圖像分割的卷積神經網絡:從R-CNN到Mask R-CNN
    雖然這些結果令人印象深刻,但與真實的人類視覺理解的多樣性和複雜性相比,圖像分類還是簡單得多。分類挑戰賽使用的圖像實例。注意圖像的構圖以及對象的唯一性。在分類中,圖像的焦點通常是一個單一目標,任務即是對圖像進行簡單描述(見上文)。但是當我們在觀察周遭世界時,我們處理的任務相對複雜的多。
  • 一文看懂近年火到不行的CNN圖像識別:從R-CNN到Mask R-CNN
    受多倫多大學Hinton實驗室研究成果的啟發,加州大學伯克利分校Jitendra Malik教授帶領的小團隊提出了一個不可避免的問題:如何將Krizhevsky等人的成果擴展到目標檢測?目標檢測從圖像中找到不同的物體並對其進行分類(如上圖所示)。
  • CNN圖像分類:從LeNet5到EfficientNet
    Author:louwillFrom:深度學習筆記在對卷積的含義有了一定的理解之後,我們便可以對CNN在最簡單的計算機視覺任務圖像分類中的經典網絡進行探索CNN在近幾年的發展歷程中,從經典的LeNet5網絡到最近號稱最好的圖像分類網絡EfficientNet,大量學者不斷的做出了努力和創新。本講我們就來梳理經典的圖像分類網絡。自從神經網絡和深度學習方法引入到圖像領域,經過近些年來的發展,從一開始的圖像分類逐漸延伸到目標檢測和圖像分割領域,深度學習也逐漸在計算機視覺領域佔據絕對的主導地位。
  • 【深度學習】CNN圖像分類:從LeNet5到EfficientNet
    Author:louwillFrom:深度學習筆記在對卷積的含義有了一定的理解之後,我們便可以對CNN在最簡單的計算機視覺任務圖像分類中的經典網絡進行探索CNN在近幾年的發展歷程中,從經典的LeNet5網絡到最近號稱最好的圖像分類網絡EfficientNet,大量學者不斷的做出了努力和創新。本講我們就來梳理經典的圖像分類網絡。自從神經網絡和深度學習方法引入到圖像領域,經過近些年來的發展,從一開始的圖像分類逐漸延伸到目標檢測和圖像分割領域,深度學習也逐漸在計算機視覺領域佔據絕對的主導地位。
  • 文本分類實戰--從TFIDF到深度學習CNN系列效果對比(附代碼)
    此外,還是用cnn卷積神經網絡實現了中文的文本分類,效果要優於上述算法。完整源碼(包括冠軍源碼) 獲取方式:關注微信公眾號 datayx  然後回復 文本分類 即可獲取。此外,在獲得了上面所說的類別特徵詞之後(每類取十個),我還嘗試著用簡單的類別匹配方法進行分類,思路很簡單,就是看測試集包含哪個特徵集中的單詞更多,代碼入下:
  • 海康威視提出:無監督圖像分類的深度表徵學習
    論文:https://arxiv.org/abs/2006.11480最近因為工作原因,對半監督和無監督論文比較感興趣,今天看到一篇講圖像分類無監督的文章"Unsupervised Image Classification
  • 機器學習 CNN在光學遙感圖像分類方面的應用
    所以總的說來,利用CNN進行圖像處理就是前面的卷積層對圖像進行特徵提取,經過學習提取出利於圖像分類的特徵,然後對提取出的特徵利用人工神經網絡進行分類。比如我們輸入一張圖片,隨機初始化的CNN分類告訴我們有6%的可能是一個網球場,但實際上我們告訴CNN這是一個飛機場,然後其中會有一個反向傳播的處理過程來稍稍改變濾波器的參數以便它下次碰到相同的圖片時會更可能的預測為網球場。然後我們對我們的訓練數據重複這一過程,CNN裡的濾波器會逐漸的調整到能夠提取我們圖片裡的供我們分類的重要特徵。
  • 【源頭活水】Sparse R-CNN:簡化版fast rcnn
    算法,是faster rcnn算法的前身,由於其巨大計算量以及無法端到端訓練,故而提出區域提取網絡RPN加上fast rcnn的faster rcnn算法。整個思想看起來非常簡單,相比faster rcnn或者yolo算法那就簡單太多了,因為其不需要設置先驗anchor,超參幾乎沒有,也不需要nms(因為輸出的無序集合沒有重複情況),並且在代碼程度相比faster rcnn那就不知道簡單多少倍了,通過簡單修改就可以應用於全景分割任務。detr雖然說看起來不錯,但是其需要非常長的訓練時長,收斂比較慢,消耗的內存也比較多。
  • 盤點 | 對比圖像分類五大方法:KNN、SVM、BPNN、CNN和遷移學習
    項目地址:https://github.com/Fdevmsy/Image_Classification_with_5_methods圖像分類,顧名思義,就是為輸入圖像打上固定類別的標籤。這是計算機視覺領域的核心問題之一。儘管聽起來很簡單,但圖像分類有大量不同的實際應用。
  • tf2+cnn+中文文本分類優化系列(2)
    1 前言接著上次的tf2+cnn+中文文本分類優化系列(1),本次進行優化:使用多個卷積核進行特徵抽取。
  • 庖丁解牛,原來CNN是這樣提取圖像特徵的!
    本文主要介紹卷積層提取特徵的原理過程,文章通過幾個簡單的例子,展示卷積層是如何工作的,以及概述了反向傳播的過程,將讓你對卷積神經網絡CNN提取圖像特徵有一個透徹的理解。那麼我們首先從最基本的數學計算——卷積操作開始。
  • 使用CNN分類籤名和文本圖像以及在Google Cloud ML Engine上部署模型
    作者 | Krishna Parekh來源 | Medium編輯 | 代碼醫生團隊正如所知道的任何具有法律重要性的文件,無論是合同,託運還是簡單形式所以這裡介紹的工作是關於籤名和文本數據的分類。 分類模型使用Keras構建,Keras是TensorFlow的高級API,它是用於機器學習的開源庫。該分類模型還可以幫助構建文檔圖像的籤名檢測模型。 數據準備通過從文檔中提取文本並從不同文檔中捕獲籤名樣本來生成數據集。
  • CNN 原理與實踐指南
    特別是在計算機視覺領域,CNN是解決圖像分類、圖像檢索、物體檢測和語義分割的主流模型。1. 卷積如圖1所示,圖中的X和O無論怎麼旋轉或者縮放,人眼其實還是很容易識別出X和O。圖1但是計算機不同,它看到的其實是一個個的像素陣列,如圖2。如何對像素的陣列進行特徵的提取其實就是卷積神經網絡要幹的事情。
  • CNN原理與實踐指南
    特別是在計算機視覺領域,CNN是解決圖像分類、圖像檢索、物體檢測和語義分割的主流模型。1. 卷積如圖1所示,圖中的X和O無論怎麼旋轉或者縮放,人眼其實還是很容易識別出X和O。圖1但是計算機不同,它看到的其實是一個個的像素陣列,如圖2。如何對像素的陣列進行特徵的提取其實就是卷積神經網絡要幹的事情。
  • 【深度學習】卷積神經網絡-CNN簡單理論介紹
    前言眾所周知,卷積神經網絡(Convolutional Neural Network, CNN)通常是被用在圖像識別領域的,其實還可以應用於語音識別,文本分類等多個領域。寫這篇文章主要是為了介紹TextCnn文本分類模型,當然也會詳細介紹CNN的具體內容,並輔以相關的案例。
  • 卷積神經網絡在圖像分割中的進化史:從R-CNN到Mask R-CNN
    圖2:ImageNet分類挑戰中所使用的圖像實例:圖像邊緣完好,且只有一個對象。受到多倫多大學Hinton實驗室研究工作的啟發,加州大學伯克利分校Jitendra Malik教授領導的團隊,提出了一個在如今看來好像是不可避免的問題:能否將Krizhevsky等人提出的網絡模型泛化應用到對象檢測上?對象檢測技術是一項通過標出圖像中不同對象並對其進行分類的任務。
  • CNN與RNN中文文本分類-基於TensorFlow 實現
    Character-level Convolutional Networks for Text Classification如今,TensorFlow大版本已經升級到了1.3,對很多的網絡層實現了更高層次的封裝和實現,甚至還整合了如Keras這樣優秀的一些高層次框架,使得其易用性大大提升。
  • 數據分析之道|CNN卷積神經網絡之文本分類
    CNN最初用於處理圖像問題,但是在自然語言處理中,使用CNN進行文本分類也可以取得不錯的效果。在文本中,每個詞都可以用一個行向量表示,一句話就可以用一個矩陣來表示,那麼處理文本就與處理圖像是類似的。對評價數據進行分類,且每條數據只能對應10個類中的一個類。
  • 圖像分類比賽中,你可以用如下方案舉一反三
    圖像和類別的分布情況如下:正如文中所提到的,該數據集共包含 4750 張從屬於 12 個類別的植物圖片。然而,如上圖所示,這種分布是不均勻的,各種類別的植物分布從最多 654 張圖像到最少 221 張圖像。很顯然數據是不平衡的,我們需要對數據進行平衡處理,以便獲得最佳的分類效果。本文將在第三步中討論這個問題。