深度學習角度 | 圖像識別將何去何從?

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

整理 | 專知

本文主要介紹了一些經典的用於圖像識別的深度學習模型,包括AlexNet、VGGNet、GoogLeNet、ResNet、DenseNet的網絡結構及創新之處,並展示了其在ImageNet的圖像分類效果。這些經典的模型其實在很多博文中早已被介紹過,作者的創新之處在於透過這些經典的模型,討論未來圖像識別的新方向,並提出圖像識別無監督學習的趨勢,並引出生成對抗網絡,以及討論了加速網絡訓練的新挑戰。文章梳理了用於圖像識別的深度學習方法的脈絡,並對將來的挑戰和方法做了分析,非常值得一讀!專知內容組編輯整理。


在過去的幾年中,深度學習絕對主導了計算機視覺,在許多任務和相關競賽中取得了最好效果。 這些計算機視覺競賽中最受歡迎、最知名的競賽是ImageNet。ImageNet競賽任務是:讓研究人員創建一個模型,對給定的圖像進行分類。

 

過去的幾年裡,深度學習技術極大推進了這場比賽,甚至超越了人類的表現。


今天我們要回顧一下這方面的進展,從而了解深度學習是如何推動其發展的,了解我們可以從中學到什麼,以及我們走到哪一步。


ImageNet的挑戰

 

那麼ImageNet挑戰有什麼難的呢? 讓我們先看看數據。ImageNet分類任務的數據是從Flickr和其他搜尋引擎收集的,由人類手動標記,總共有1000個類別,每個圖像屬於其中一個。


數據集的分布如下表所示。

 ImageNet Dataset


到2012年,ImageNet擁有近130萬個訓練圖像。 這樣一個大規模的圖像分類任務的主要挑戰是圖像的多樣性。在這裡我們可以看一下這個例子。


看看下面的圖片。 在左側,我們看到來自另一個圖像分類challange的一些示例圖像:PASCAL。在PASCAL挑戰中,只有大約20,000個訓練圖像和20個對象類別。 這個挑戰的類別:如「鳥」,「狗」和「貓」,如下所示。說到ImageNet的挑戰,這是一個全新的比賽。 ImageNet並沒有一個叫做「狗」的普通類,它包含了各種各樣的狗。 事實上,ImageNet並沒有PASCAL的「狗」類別,而是有120種不同品種的狗類(更加細粒度:如哈士奇、德國牧羊犬、秋田犬等,而不是統一的「狗」類)!因此,我們用於此任務的任何模型/算法都必須能夠處理這些非常「細粒度」和「特定」的類,即使它們看起來非常相似並且很難區分。


更技術性地講,我們希望最大化類間差異性。這意味著我們需要兩個圖像,每個圖像包含一種不同類型的鳥類,因此即使它們都是鳥類,但在我們的數據集中,它們都屬於不同的類別。

Inter-class Variability(類間差異性)

 

這是ImageNet的另一個具有挑戰性的特性:同一個類的對象可以看起來很不一樣。 讓我們看看下面的圖片。左邊的兩個都來自「orange」類,右邊的兩個都來自「pool table」類。 然而,每一對圖像看起來都不一樣!對於人類,我們可以看到其中一個桔子被切開,另一個桔子沒被切開。 我們也可以看到一張桌子的圖片放大了,另一張沒有放大。這就是所謂的類內差異性。 我們希望儘量減少這種變化,因為我們希望在我們的深度學習模型中,同一類的兩幅圖像看起來是相似的。

Intra-class Variability(類內差異性) 


有了這些圖像分類的挑戰,讓我們來回顧一下深度學習是如何在這個任務上取得重大進展的。

 

深度學習在圖像分類方面的快速發展


自2012年以來,幾乎每年都在為圖像分類任務開發深度學習模式方面取得重大突破。由於數據規模龐大且具有挑戰性,ImageNet挑戰一直是衡量進展的主要標杆。在這裡,我們要看看深度學習這個任務的進展,以及一些主要網絡結構。



 

早在2012年,多倫多大學就在NIPS上發表一篇論文,效果則是令人震驚的。該論文是「ImageNet Classification with Deep Convolutional Neural Networks」。

(地址:

https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf )


 在ImageNet挑戰中錯誤率降低了近50%,它成為「現有領域中最有潛力的論文之一」,這在當時是前所未有的進展。


本文提出使用深度卷積神經網絡(CNN)進行圖像分類任務。與今天使用的相比,這是相對簡單的。這篇論文的主要貢獻是:

 

第一個成功使用深度卷及網絡進行大規模圖像分類。這是因為ImageNet提供了大量標記數據,以及在兩個GPU上使用並行計算來訓練模型。


他們使用ReLU作為非線性激活函數,發現它們相對於tanh函數表現更好,訓練時間更短。ReLU非線性激活函數現在幾乎成為深度網絡的默認激活函數。


他們使用數據增強技術,包括圖像翻轉,水平反射(horizontal reflections)和均值減法(mean subtraction)。 這些技術如今被廣泛用於許多計算機視覺任務。


他們使用dropout層來解決訓練數據過擬合的問題。


他們提出的連續卷積和pooling層的方式,最後是全連接層,仍然是當今許多最先進網絡的基礎。


基本上,AlexNet提供的設置和baseline都稱為計算機視覺領域CNN的默認技術!

 

 

VGGNet的論文「Very Deep Convolutional Neural Networks for Large-Scale Image Recognition」於2014年出版,進一步使用更多卷積和ReLU加深卷積網絡。他們的主要想法是,你並不需要任何花哨的技巧來提高高精度。只要有很多小的3x3卷積和非線性激活函數的更深層的網絡就可以做到這一點! VGGNets的主要貢獻是:



隨著每層輸入volumes(input volumes)的空間尺寸減小(作為pooling層的結果),volumes的深度增加。這背後的想法是,隨著空間信息的減少(從max pooling下採樣),它應該被編碼為更多的可區分特徵,以用於更準確的分類。因此,特徵圖的數量隨著深度增加而增加,以便能夠捕獲這些用於分類的特徵。


它引入了一種新的數據增強方式: scale jittering。


使用Caffe工具箱構建模型。 此時,深度學習庫越來越受歡迎。

 

VGGNet:https://arxiv.org/pdf/1409.1556.pdf



 

GoogLeNet架構是第一個真正解決計算資源問題以及「Going Deeper with Convolutions」論文中的多尺度處理。隨著我們的分類網絡越來越深,我們必須得使用大量的內存。另外,過去已經提出了不同的計算濾波器尺寸:從1x1到11x11; 你怎麼決定該用哪一個?inception模塊和GoogLeNet解決了所有這些問題,具體貢獻如下:

GoogLeNet:

https://www.cv-foundation.org/openaccess/content_cvpr_2015/papers/Szegedy_Going_Deeper_With_2015_CVPR_paper.pdf

 

通過在每個3x3和5x5之前使用1x1卷積,初始模塊減少了通過每層的特徵映射的數量,從而減少了計算量和內存消耗!


初始模塊具有全部並行的1x1,3x3和5x5卷積。這背後的想法是通過訓練讓網絡決定什麼信息將被學習和使用。它還允許進行多尺度處理:模型可以通過較小的卷積和較大卷積的高抽象特徵來恢復局部特徵。


GoogLeNet是第一個提出CNN層並不總是必須按順序排列。本文的作者表示,您還可以增加網絡寬度而不僅僅是深度以獲得更好的性能。

 


 

自2015年在「圖像識別的深度殘差學習」一文中發布以來,ResNet已經在很多計算機視覺任務中提高了準確性。ResNet架構是ImageNet上第一個超過人類級別的性能測試的模型,而他們在residual learning方面的主要貢獻在今天許多最先進的網絡中經常被默認使用:

ResNet:https://arxiv.org/pdf/1512.03385.pdf

 

文章揭露了:將層進行簡單的堆疊,從而使網絡非常深並不總是有幫助,也可能取得相反的結果。


為了解決上述問題,他們引入了結合skip-connections的殘差學習(residual learning)。這個想法是,通過添加skip連接作為快捷方式,每一層層可以直接訪問前一層的函數,允許特徵信息更容易地在網絡上進行傳播。 它也有助於訓練,因為梯度能更高效地反向傳播。


第一個「超深」網絡,通常使用超過100-200層。


把shortcuts做到極致:DenseNet

 

 

「Densely Connected Convolutional Networks」文章中引入DenseNets,Shortcut被發揮到了極致。DenseNets擴展了Shortcut的想法,但比ResNet具有更密集的連接:

DenseNet:https://arxiv.org/pdf/1608.06993.pdf

 

DenseNets中每層以前饋的方式連接到其他層。 這允許每一層使用所有前面的層的所有特徵圖作為輸入,並且它自己的特徵圖被用作所有後續層的輸入。


這裡通過串聯而不是在ResNets中使用的附加來完成的,這樣原始特徵直接能流過每一層。


效果比ResNets更好。 DenseNets幫助緩解梯度消失問題,加強特徵傳播,促進特徵重用,大幅減少參數數量。


這些是在過去幾年中圖像分類領域的主要網絡架構。 目前已經取得了很大的進展,這個新技術可以解決許多現實世界的問題,這是令人興奮的。 現在只剩下一個問題了..


我們該何去何從


圖像分類的深度學習研究一直蓬勃發展! 我們已經採取了更多的步驟來改進這項任務的方法,其表現甚至超越了人類的表現。 深度神經網絡現在被廣泛用於許多企業的圖像分類,甚至是許多新的啟動技術的基礎。


所有這些進展非常令人鼓舞的,但我們必須始終努力改進。 深度學習模型在圖像分類中仍然存在很多挑戰。 如果我們想要向前發展,必須重視這些挑戰。 在這裡,我將回顧一些我認為重要的研究人員正在積極嘗試解決的問題:

 


示例圖:有監督學習和無監督學習

 

目前,大多數用於計算機視覺任務深度學習方法都是有監督學習。 這意味著我們需要大量標記的訓練數據。 這些數據既繁瑣又昂貴。想一想:ImageNet的挑戰有130萬個訓練樣例,有1000個不同的類別! 一個人需要獲取所有的數據,瀏覽每張圖片,然後貼上標籤; 這可是一個體力活。

 

大多數情況下,當一個企業想為自己的特定應用程式應用圖像分類網絡時,他們必須使用遷移學習來微調預先訓練好的ImageNet網絡。為了做到這一點,他們仍然需要收集大量自己的數據並打標籤; 這是很乏味和昂貴的工作。


研究人員正在努力解決這個問題。 並取得了一系列進展,如快速有效的遷移學習,半監督學習和一次性學習等方法,越來越多的工作正在進行。我們可能不會直接跳到無監督學習,但是這些方法的研究是朝著正確的方向邁出的重要一步。

 


 

使用生成對抗網絡(GANs)的日益流行已經揭示了圖像分類的新挑戰:對抗圖像(Adversarial Images)。 對抗圖像是一個簡單的圖像,其類別對人類看起來是很容易區分的,但在深度網絡中導致很大的失敗。 看看上面的圖片。 雖然只有輕微的扭曲(看起來),但是深度網絡卻把圖像從熊貓分類到長臂猿!

 

對我們人類來說,類別很明顯,形象仍然是一隻熊貓,但由於某種原因,它會導致深層網絡的任務失敗。 這在現實世界的應用中可能是非常危險的:如果你的自動駕駛汽車不能識別行人,而是將其運行過來呢? 部分問題可能源於我們對深度網絡內部沒有充分理解。無論如何,研究人員正在積極研究這個具有挑戰性的問題。

 


 

深度學習的進步很多是基於硬體進步,特別是GPU的改進所推動的。 GPU允許並行高速計算。深度學習需要大量的矩陣運算; GPU擅長執行這些操作。 這進步太棒了,但並不是任何地方都有GPU!


許多最先進的網絡,包括上面已經討論過的網絡,只能在高端GPU上才能勉強運行。行動裝置是一個巨大的市場,怎麼服務於這個市場是很重要的。此外,隨著網絡越來越深,往往需要更多的內存,這使更多的設備無法訓練網絡!

 

這方面的研究最近實際上已經有了很大的提高。MobileNets是一種在行動裝置上直接運行深層網絡的結構。 他們使用不同的卷積風格來減少內存消耗和訓練時間。


總結

 

我們看到了圖像分類的難點,並回顧了在深度學習領域取得的驚人進展,我們也看到了當前的一些挑戰,以及如何用新的科學的方法來應對這些挑戰。


參考連結:

https://towardsdatascience.com/deep-learning-for-image-classification-why-its-challenging-where-we-ve-been-and-what-s-next-93b56948fcef


今日推薦

《Hadoop深度學習》

一本書讀懂深度學習來龍去脈,概覽Hadoop如何玩轉深度學習
快速了解深度學習基本概念
深度學習模型在大數據上的表現
HDFS、Map-Reduce、YARN、Deeplearning4j如何實現深度學習模型
Hadoop如何實現分布式卷積神經網絡和循環神經網絡
受限玻爾茲曼機以及分布式深度信念網絡及其實現示例
自動編碼器
分布式環境中常見機器學習應用的設計

相關焦點

  • 深度學習與圖像識別
    深度學習是近十年來人工智慧領域取得的最重要的突破之一。它在語音識別、自然語言處理、計算機視覺、圖像與視頻分析、多媒體等諸多領域都取得了巨大成功。本文將重點介紹深度學習在物體識別、物體檢測、視頻分析的最新研究進展,並探討其發展趨勢。 1.
  • 基於深度學習的圖像識別進展
    :1.1深度學習特別適合處理大數據從統計和計算的角度看,深度學習特別適合處理大數據。CNN等為什麼對圖像領域更加有效,因為其不但關注了全局特徵,更是利用了圖像識別領域非常重要的局部特徵,應該是將局部特徵抽取的算法融入到了神經網絡 中。圖像本身的局部數據存在關聯性,而這種局部關聯性的特徵是其他算法無法提取的。
  • 【深度】從經典深度學習模型探討圖像識別新方向
    【導讀】1月22日,深度學習工程師George Seif發布一篇文章,主要介紹了一些經典的用於圖像識別的深度學習模型,包括AlexNet、VGGNet、GoogLeNet、ResNet、DenseNet的網絡結構及創新之處,並展示了其在ImageNet的圖像分類效果。
  • 讀書總結|深度學習圖像識別技術
    深度學習圖像識別技術——基於TenseorFlow Object Detection API和Open VINO工具套件
  • 圖像識別中的深度學習【香港中文大學王曉剛】
    在非深度學習算法中,最高的識別率是96.33%[7]。目前深度學習可以達到99.47%的識別率[8]。  在欣頓的科研小組贏得ImageNet比賽冠軍之後的6個月,谷歌和百度都發布了新的基於圖像內容的搜尋引擎。他們採用深度學習模型,應用在各自的數據上,發現圖像搜索準確率得到了大幅度提高。
  • 圖像識別中的深度學習:挑戰、現狀和未來
    從技術角度講,我們想要最大化類間變量。也就是說,對於包含兩種不同品種的鳥類圖像,我們的模型需要判斷出它們之間的差異性,即使它們都是鳥,但是在我們的數據集中它們卻是不同的類。這篇文章建議使用深度卷積神經網絡 (CNN) 來進行圖像分類。相比於今天使用的各種卷積神經網絡,它相對來說比較簡單。這篇文章的主要貢獻是:第一次成功地將深度神經網絡應用在大規模圖像分類問題上。這其中的一部分原因是 ImageNet 中有 大量帶有標註 的數據,同時,使用了兩個 GPU 並行計算。
  • OpenCV+深度學習預訓練模型,簡單搞定圖像識別 | 教程
    pyimagesearch網站今天發布了一份用OpenCV+深度學習預訓練模型做圖像識別的教程,量子位編譯整理如下:最近,OpenCV 3.3剛剛正式發布,對深度學習(dnn模塊)提供了更好的支持,dnn模塊目前支持Caffe、TensorFlow、Torch、PyTorch等深度學習框架。
  • 「人工智慧師資班」(Python機器學習,圖像識別與深度學習,深度學習與NLP,知識圖譜,強化學習)
    本次培訓分為Python機器學習,圖像識別與深度學習,深度學習與NLP,知識圖譜和強化學習五大專題。本次培訓由權威專家主講,提供實驗環境及實驗數據,並提供配套資料,通過剖析工程案例展現機器學習、深度學習落地全過程。培訓暫定2021年1月5日開始,每個專題6天左右,一共28天,直播集訓。本次培訓由淺入深,面向0基礎、不懂機器學習、不具備任何Python基礎的老師和同學。
  • 如何將深度學習應用於無人機圖像的目標檢測
    本文全面概述了基於深度學習的對無人機航拍圖像進行物體檢測的方法。隨著基於深度學習的計算機視覺為這些無人機「提供動力」,行業專家們預測無人機將在以前難以想像的應用場景中被前所未有地廣泛使用。 我們將探索一些應用以及伴隨著它們的挑戰,這些應用基於深度學習完成了基於無人機的自動化監測。 在最後,我們將展示一個使用Nanonets機器學習框架對非洲住房項目進行遠程監測的案例。
  • 深度學習在圖像取證領域中的進展
    圖像取證深度學習之風不同於傳統的圖像取證算法,深度學習算法將特徵提取和特徵分類整合到一個網絡結構中,實現了一種end-to-end的自動特徵學習分類的有效算法。從當前的研究工作來看,深度學習應用於圖像取證領域大致可分為三個層次。第一個層次是簡單的遷移,即直接將CV領域常用的CNN網絡結構引入到圖像取證領域。
  • 基於深度學習的人臉識別技術全解
    基於幾何特徵的方法符合人們對人臉特徵的認識,另外,每幅人臉只存儲一個特徵,所以佔用的空間比較小; 同時,這種方法對光照引起的變化並不會降低其識別率,而且特徵模板的匹配和識別率比較高。但是,基於幾何特徵的方法也存在著魯棒性不好,一旦表情和姿態稍微變化,識別效果將大打折扣。 基於深度學習的方法 深度學習的出現使人臉識別技術取得了突破性進展。
  • 關於MATLAB 圖像處理與深度學習的作用分析和介紹
    圖中的紅色數字均由算法生成。接下來我們將介紹如何創建該算法,並說明為何深度學習和圖像處理對於對象檢測和圖像分類同樣十分有用。 圖像處理與深度學習 我們重點介紹兩種技術: 圖像處理 按像素級別變換或者修改圖像。比如,過濾、模糊、去模糊和邊緣檢測等; 深度學習 通過學習樣本圖像自動識別圖像特點。近幾年,深度學習已經徹底改變了圖像處理領域。
  • 圖像識別 | 基於Amazon Rekognition的圖像識別應用
    導語:隨著人工智慧在世界範圍內的大爆發,機器學習和深度學習算法不斷精進,在圖像識別和機器翻譯等方面的應用方面,各大巨頭也是使出了渾身解數。
  • 超全深度學習細粒度圖像分析:項目、綜述、教程一網打盡
    由於深度學習的蓬勃發展,近年來應用了深度學習的 FGIA 取得了顯著的進步。本文系統地對基於深度學習的 FGIA 技術進行了綜述。具體來說,本文將針對 FGIA 技術的研究分為三大類:細粒度圖像識別、細粒度圖像檢索和細粒度圖像生成。本文還討論了其他 FGIA 的重要問題,比如公開可用的基準數據集及其在相關領域的特定應用。本文在結尾處強調了未來仍需進一步探討的幾個方向以及待解決的問題。
  • 卷積學習與圖像識別的技術發展
    方法改進的速度十分緩慢,這是因為每個新類別的對象,都需要有關專家對能夠將它們與其他對象區分開來所需的與姿態無關的特徵進行甄別。隨後,在 2012年,傑弗裡·辛頓和他的兩名學生艾力克斯·克裡澤夫斯基(Alex Krizhevsky)和伊利婭·蘇特斯科娃向 NIPS 會議提交了一篇論文,關於使用深度學習訓練 AlexNet 識別圖像中的對象,AlexNet 是本章要重點討論的深度卷積網絡。
  • 深度學習中的圖像分割:方法和應用
    ,包括傳統方法和深度學習方法,以及應用場景。今天的圖像分割技術使用計算機視覺深度學習模型來理解圖像的每個像素所代表的真實物體,這在十年前是無法想像的。深度學習可以學習視覺輸入的模式,以預測組成圖像的對象類。用於圖像處理的主要深度學習架構是卷積神經網絡(CNN),或者是特定的CNN框架,如AlexNet、VGG、Inception和ResNet。
  • 基於深度學習的人臉識別算法
    基於深度學習的人臉識別算法,如何讓神經網絡從訓練數據中學習到有效、魯棒的生物特徵是至關重要的。
  • 表情識別:從傳統方法到深度學習
    百度公司開發了一款基於深度學習的語音識別系統DeepSpeech,它可以在飯店等嘈雜環境下實現將近81%的辨識準確率。深度學習模型能對數據進行有效的特徵提取,這是許多淺層的機器學習模型所達不到的。因此,將深度學習引入到表情識別,可以使計算機深度理解人臉表情圖像的表達意義。研究者大多採用將深度學習應用到表情特徵提取中,然後再連接表情分類器的做法。
  • 圖像識別技術落地 探索應用場景
    Alpha Go的勝利讓人工智慧的「深度學習」概念迅速普及,而率先打破「機器學習」、過渡到「深度學習」的節點便發生在圖像識別領域。
  • 深度學習在圖像處理中的應用趨勢及常見技巧
    (以AI之父Geoffry Hinton在2012年提出的高精度AlexNet圖像識別網絡為代表),掀起了以神經網絡為基礎的深度學習研究熱潮。目前為止,圖像處理已成為深度學習中重要的研究領域,幾乎所有的深度學習框架都支持圖像處理工具。當前深度學習在圖像處理領域的應用可分為三方面:圖像處理(基本圖像變換)、圖像識別(以神經網絡為主流的圖像特徵提取)和圖像生成(以神經風格遷移為代表)。本文第一部分介紹深度學習中圖像處理的常用技巧,第二部分淺析深度學習中圖像處理的主流應用,最後對本文內容進行簡要總結。