圖像識別中的深度學習 轉

轉:http://mp.weixin.qq.com/s?__biz=MzAwNDExMTQwNQ==&mid=209152042&idx=1&sn=fa0053e66cad3d2f7b107479014d4478#rd#opennewwindow算法

一、深度學習發展歷史

深度學習是近十年來人工智能領域取得的重要突破。它在語音識別、天然語言處理、計算機視覺、圖像與視頻分析、多媒體等諸多領域的應用取得了巨大成功。現有的深度學習模型屬於神經網絡。神經網絡的起源可追溯到20世紀40年代,曾經在八九十年代流行。神經網絡試圖經過模擬大腦認知的機理解決各類機器學習問題。1986年,魯梅爾哈特(Rumelhart)、欣頓(Hinton)和威廉姆斯(Williams)在《天然》雜誌發表了著名的反向傳播算法用於訓練神經網絡,該算法直到今天仍被普遍應用。

神經網絡有大量參數,常常發生過擬合問題,雖然其識別結果在訓練集上準確率很高,但在測試集上效果卻不好。這是由於當時的訓練數據集規模都較小,加之計算資源有限,即使是訓練一個較小的網絡也須要很長的時間。與其餘模型相比,神經網絡並未在識別準確率上體現出明顯的優點。

所以更多的學者開始採用支持向量機、Boosting、最近鄰等分類器。這些分類器能夠用具備一個或兩個隱含層的神經網絡模擬,所以被稱爲淺層機器學習模型。在這種模型中,每每是針對不一樣的任務設計不一樣的系統,並採用不一樣的手工設計的特徵。例物體識別採用尺度不變特徵轉換(Scale Invariant Feature Transform, SIFT),人臉識別採用局部二值模式(Local Binary Patterns, LBP),行人檢測採用方向梯度直方圖(Histogram of Oriented Gradient, HOG)特徵。
2006年,欣頓提出了深度學習。以後深度學習在諸多領域取得了巨大成功,受到普遍關注。神經網絡可以從新煥發青春的緣由有幾個方面:首先,大規模訓練數據的出如今很大程度上緩解了訓練過擬合的問題。例如,ImageNet訓練集擁有上百萬個有標註的圖像。其次,計算機硬件的飛速發展爲其提供了強大的計算能力,一個GPU芯片能夠集成上千個核。這使得訓練大規模神經網絡成爲可能。第三,神經網絡的模型設計和訓練方法都取得了長足的進步。例如,爲了改進神經網絡的訓練,學者提出了非監督和逐層的預訓練,使得在利用反向傳播算法對網絡進行全局優化以前,網絡參數能達到一個好的起始點,從而在訓練完成時能達到一個較好的局部極小點。

深度學習在計算機視覺領域最具影響力的突破發生在2012年,欣頓的研究小組採用深度學習贏得了ImageNet圖像分類比賽的冠軍。排名第2到第4位的小組採用的都是傳統的計算機視覺方法、手工設計的特徵,他們之間準確率的差異不超過1%。欣頓研究小組的準確率超出第二名10%以上,(見表1)。這個結果在計算機視覺領域產生了極大的震動,引起了深度學習的熱潮。

計算機視覺領域另外一個重要的挑戰是人臉識別。有研究代表,若是隻把不包括頭髮在內的人臉的中心區域給人看,人眼在戶外臉部檢測數據庫(Labeled Faces in the Wild, LFW)上的識別率是97.53%。若是把整張圖像,包括背景和頭髮給人看,人眼的識別率是99.15%。經典的人臉識別算法Eigenface 在LFW測試集上只有60%的識別率。在非深度學習算法中,最高的識別率是96.33% 。目前深度學習能夠達到99.47%的識別率。
欣頓的科研小組贏得ImageNet比賽冠軍以後的6個月,谷歌和百度都發布了新的基於圖像內容的搜索引擎。他們採用深度學習模型,應用在各自的數據上,發現圖像搜索準確率獲得了大幅度提升。百度在2012年成立了深度學習研究院,2014年5月又在美國硅谷成立了新的深度學習實驗室,聘請斯坦福大學著名教授吳恩達擔任首席科學家。臉譜於2013年12月在紐約成立了新的人工智能實驗室,聘請深度學習領域的著名學者、卷積網絡的發明人雅恩•樂昆(Yann LeCun)做爲首席科學家。2014年1月,谷歌拋出四億美金收購了深度學習的創業公司DeepMind。鑑於深度學習在學術界和工業界的巨大影響力,2013年,《麻省理工科技評論》(MIT Technology Review)將其列爲世界十大技術突破之首。
二、深度學習有何不同凡響?

深度學習和其餘機器學習方法相比有哪些關鍵的不一樣點,它爲什麼能在許多領域取得成功?

•        特徵學習
深度學習與傳統模式識別方法的最大不一樣在於它所採用的特徵是從大數據中自動學習獲得,而非採用手工設計。好的特徵能夠提升模式識別系統的性能。過去幾十年,在模式識別的各類應用中,手工設計的特徵一直處於統治地位。手工設計主要依靠設計者的先驗知識,很難利用大數據的優點。因爲依賴手工調參數,所以特徵的設計中所容許出現的參數數量十分有限。深度學習能夠從大數據中自動學習特徵的表示,能夠包含成千上萬的參數。
採用手工設計出有效的特徵每每須要五到十年時間,而深度學習能夠針對新的應用從訓練數據中很快學習到新的有效的特徵表示。
一個模式識別系統包括特徵和分類器兩部分。在傳統方法中,特徵和分類器的優化是分開的。而在神經網絡的框架下,特徵表示和分類器是聯合優化的,能夠最大程度地發揮兩者聯合協做的性能。

2012年欣頓參加ImageNet比賽所採用的卷積網絡模型[9]的特徵表示包含了從上百萬樣本中學習獲得的6000萬個參數。從ImageNet上學習獲得的特徵表示具備很是強的泛化能力,能夠成功應用到其餘數據集和任務中,例如物體的檢測、跟蹤和檢索等。在計算機視覺領域另一個著名的競賽是PSACAL VOC。可是它的訓練集規模較小,不適合訓練深度學習模型。有學者將ImageNet上學習獲得的特徵表示用於PSACAL VOC上的物體檢測,檢測率提升了20%。

既然特徵學習如此重要,那麼,什麼是好的特徵呢?一幅圖像中,各類複雜的因素每每以非線性的方式結合在一塊兒。例如人臉圖像中就包含了身份、姿態、年齡、表情、光線等各類信息。深度學習的關鍵就是經過多層非線性映射將這些因素成功分開,例如在深度模型的最後一個隱含層,不一樣神經元表明了不一樣因素。若是將這個隱含層看成特徵表示,人臉識別、姿態估計、表情識別、年齡估計就會變得很是簡單,由於各個因素之間變成了簡單的線性關係,再也不彼此干擾。

•        深層結構的優點
深度學習模型的「深」字意味着神經網絡的結構深,由不少層組成。而支持向量機和Boosting等其餘經常使用的機器學習模型都是淺層結構。三層神經網絡模型(包括輸入層、輸出層和一個隱含層)能夠近似任何分類函數。既然如此,爲何須要深層模型呢?
研究代表,針對特定的任務,若是模型的深度不夠,其所須要的計算單元會呈指數增長。這意味着雖然淺層模型能夠表達相同的分類函數,但其須要的參數和訓練樣本要多得多。淺層模型提供的是局部表達。它將高維圖像空間分紅若干個局部區域,每一個局部區域至少存儲一個從訓練數據中得到的模板,如圖1(a)所示。淺層模型將一個測試樣本和這些模板逐一匹配,根據匹配的結果預測其類別。例如,在支持向量機模型中,模板是支持向量;在最近鄰分類器中,模板是全部的訓練樣本。隨着分類問題複雜度的增長,須要將圖像空間劃分紅愈來愈多的局部區域,於是須要愈來愈多的參數和訓練樣本。儘管目前許多深度模型的參數量已經至關巨大,但若是換成淺層神經網絡,其所須要的參數量要大出多個數量級才能達到相同的數據擬合效果,以致於很難實現。

深度模型之因此能減小參數的關鍵在於重複利用中間層的計算單元。以人臉識別爲例,深度學習能夠針對人臉圖像的分層特徵表達進行:最底層從原始像素開始學習濾波器,刻畫局部的邊緣和紋理特徵;中層濾波器經過將各類邊緣濾波器進行組合,描述不一樣類型的人臉器官;最高層描述的是整我的臉的全局特徵。
深度學習提供的是分佈式的特徵表示。在最高的隱含層,每一個神經元表明一個屬性分類器(如圖1(b)所示),例如性別、人種和頭髮顏色等。每一個神經元將圖像空間一分爲二,N個神經元的組合就能夠表達2N個局部區域,而用淺層模型表達這些區域的劃分至少須要2N個模板。由此能夠看出,深度模型的表達能力更強,效率更高。
•        提取全局特徵和上下文信息的能力
深度模型具備強大的學習能力和高效的特徵表達能力,更重要的優勢是從像素級原始數據到抽象的語義概念逐層提取信息,這使得它在提取圖像的全局特徵和上下文信息方面具備突出的優點,爲解決傳統的計算機視覺問題(如圖像分割和關鍵點檢測)帶來了新的思路。
以人臉的圖像分割爲例(如圖2所示),爲了預測每一個像素屬於哪一個臉部器官(眼睛、鼻子、嘴),一般的作法是在該像素周圍取一個小區域,提取紋理特徵(例如局部二值模式),再基於該特徵利用支持向量機等淺層模型分類。由於局部區域包含的信息量有限,每每產生分類錯誤,所以要對分割後的圖像加入平滑和形狀先驗等約束。

人眼即便在存在局部遮擋的狀況下也能夠根據臉部其餘區域的信息估計被遮擋部分的標註。由此可知全局和上下文信息對於局部的判斷是很是重要的,而這些信息在基於局部特徵的方法中在最開始階段就丟失了。理想狀況下,模型應該將整幅圖像做爲輸入,直接預測整幅分割圖。圖像分割能夠被看作一個高維數據轉換的問題來解決。這樣不但利用到了上下文信息,模型在高維數據轉換過程當中也隱式地加入了形狀先驗。可是因爲整幅圖像內容過於複雜,淺層模型很難有效地捕捉全局特徵。而深度學習的出現使這一思路成爲可能,在人臉分割、人體分割、人臉圖像配準和人體姿態估計等各個方面都取得了成功。

•        聯合深度學習
一些研究計算機視覺的學者將深度學習模型視爲黑盒子,這種見解是不全面的。傳統計算機視覺系統和深度學習模型存在着密切的聯繫,利用這種聯繫能夠提出新的深度模型和訓練方法。用於行人檢測的聯合深度學習就是一個成功的例子。一個計算機視覺系統包含若干個關鍵的組成模塊。例如,一個行人檢測器包括特徵提取、部件檢測器、部件幾何形變建模、部件遮擋推理、分類器等模塊。在聯合深度學習中,深度模型的各個層和視覺系統的各個模塊能夠創建對應關係。若是視覺系統中的關鍵模塊在現有深度學習的模型中沒有與之對應的層,則它們能夠啓發咱們提出新的深度模型。例如,大量物體檢測的研究工做代表,對物體部件的幾何形變建模能夠有效提升檢測率,可是在經常使用的深度模型中沒有與之相對應的層,所以聯合深度學習及其後續的工做都提出了新的形變層和形變池化層來實現這一功能。
從訓練方式上看,計算機視覺系統的各個模塊是逐一訓練或手工設計的。在深度模型的預訓練階段,各個層也是逐一訓練的。若是咱們可以創建計算機視覺系統和深度模型之間的對應關係,那麼在視覺研究中積累的經驗就能夠對深度模型的預訓練提供指導。這樣預訓練後獲得的模型就能夠達到與傳統計算機視覺系統可比的結果。在此基礎上,深度學習還會利用反向傳播對全部層進行聯合優化,使它們之間的相互協做達到最優,從而使整個網絡的性能獲得重大提高。
三、深度學習的應用方向
3.一、深度學習在物體識別中的應用
        ImageNet圖像分類
深度學習在物體識別中最重要的進展體如今ImageNet ILSVRC挑戰中的圖像分類任務。傳統計算機視覺方法在此測試集上最低的錯誤率是26.172%。2012年,欣頓的研究小組利用卷積網絡把錯誤率降到了15.315%。此網絡結構被稱爲Alex Net,與傳統的卷積網絡相比,它有三點不同凡響之處:首先,Alex Net採用了dropout的訓練策略,在訓練過程當中將輸入層和中間層的一些神經元隨機置零。這模擬了噪音對輸入數據的各類干擾使一些神經元對一些視覺模式產生漏檢的狀況。Dropout使訓練過程收斂得更慢,但獲得的網絡模型更加魯棒。其次,Alex Net採用整流線型單元做爲非線性的激發函數。這不只大大下降了計算的複雜度,並且使神經元的輸出具備稀疏的特徵,對各類干擾更加魯棒。第三,Alex Net經過對訓練樣本鏡像映射和加入隨機平移擾動,產生了更多的訓練樣本,減小了過擬合。

在ImageNet ILSVRC 2013比賽中,排名前20的小組使用的都是深度學習技術。獲勝者是紐約大學羅伯•費格斯(Rob Fergus)的研究小組,所採用的深度模型是卷積網絡,並對網絡結構做了進一步優化,錯誤率爲11.197%,其模型稱做Clarifai。
在ILSVRC 2014比賽中,獲勝者GooLeNet[18]將錯誤率降到了6.656%。GooLeNet突出的特色是大大增長了卷積網絡的深度,超過了20層,這在此以前是不可想象的。很深的網絡結構給預測偏差的反向傳播帶了困難,這是由於預測偏差是從最頂層傳到底層的,傳到底層的偏差很小,難以驅動底層參數的更新。GooLeNet採起的策略是將監督信號直接加到多箇中間層,這意味着中間層和底層的特徵表示也要可以對訓練數據進行準確分類。如何有效地訓練很深的網絡模型還是將來研究的一個重要課題。
雖然深度學習在ImageNet上取得了巨大成功,可是不少應用的訓練集是較小的,在這種狀況下,如何應用深度學習呢?有三種方法可供參考:(1)能夠將ImageNet上訓練獲得的模型做爲起點,利用目標訓練集和反向傳播對其進行繼續訓練,將模型適應到特定的應用。此時ImageNet起到預訓練的做用。(2)若是目標訓練集不夠大 ,能夠將底層的網絡參數固定,沿用ImageNet上的訓練集結果,只對上層進行更新。這是由於底層的網絡參數是最難更新的,而從ImageNet學習獲得的底層濾波器每每描述了各類不一樣的局部邊緣和紋理信息,而這些濾波器對通常的圖像有較好的普適性。(3)直接採用ImageNet上訓練獲得的模型,把最高的隱含層的輸出做爲特徵表達,代替經常使用的手工設計的特徵。


        人臉識別
深度學習在物體識別上的另外一個重要突破是人臉識別。人臉識別的最大挑戰是如何區分因爲光線、姿態和表情等因素引發的類內變化和因爲身份不一樣產生的類間變化。這兩種變化的分佈是非線性的,且極爲複雜,傳統的線性模型沒法將它們有效區分開。深度學習的目的是經過多層的非線性變換獲得新的特徵表示。這些新特徵須儘量多地去掉類內變化,而保留類間變化。
人臉識別包括人臉確認和人臉辨識兩種任務。人臉確認是判斷兩張人臉照片是否屬於同一我的,屬於二分類問題,隨機猜的正確率是50%。人臉辨識是將一張人臉圖像分爲N個類別之一,類別是由人臉的身份定義的。這是個多分類問題,更具挑戰性,其難度隨着類別數的增多而增大,隨機猜的正確率是1/N。兩種任務均可以經過深度模型學習人臉的特徵表達。
2013年,文獻採用人臉確認任務做爲監督信號,利用卷積網絡學習人臉特徵,在LFW上取得了92.52%的識別率。這一結果雖然與後續的深度學習方法相比較低,但也超過了大多數非深度學習算法。因爲人臉確認是一個二分類問題,用它學習人臉特徵的效率比較低,容易在訓練集上發生過擬合。而人臉辨識是一個更具挑戰性的多分類問題,不容易發生過擬合,更適合經過深度模型學習人臉特徵。另外一方面,在人臉確認中,每一對訓練樣本被人工標註成兩類中的一類,所含信息量較少。而在人臉辨識中,每一個訓練樣本都被人工標註成N類之一,信息量大。
在2014年的IEEE國際計算機視覺與模式識別會議(IEEE Conference on Computer Vision and Pattern Recognition, CVPR)上,DeepID和DeepFace都採用人臉辨識做爲監督信號,在LFW上分別取得了97.45%和97.35%的識別率(見表2)。他們利用卷積網絡預測N維標註向量,將最高的隱含層做爲人臉特徵。這一層在訓練過程當中要區分大量的人臉類別(例如在DeepID中區分1000個類別的人臉),所以包含了豐富的類間變化的信息,有很強的泛化能力。雖然訓練中採用的是人臉辨識任務,但獲得的特徵能夠應用到人臉確認任務中,以及識別訓練集中是否有新人。例如,LFW上用於測試的任務是人臉確認任務,不一樣於訓練中的人臉辨識任務;DeepID和DeepFace的訓練集與LFW測試集的人物身份是不重合的。

經過人臉辨識任務學習獲得的人臉特徵包含較多的類內變化。DeepID2聯合使用人臉確認和人臉辨識做爲監督信號,獲得的人臉特徵在保持類間變化的同時使類內變化最小化,從而將LFW上的人臉識別率提升到99.15%。DeepID2利用Titan GPU提取一幅人臉圖像的特徵只須要35毫秒,並且能夠離線進行。通過主元分析(Principal Component Analysis, PCA)壓縮最終獲得80維的特徵向量,能夠用於快速人臉在線比對。在後續工做中,DeepID2經過擴展網絡結構,增長訓練數據,以及在每一層都加入監督信息,在LFW達到了99.47%的識別率。
一些人認爲深度學習的成功是因爲用具備大量參數的複雜模型去擬合數據集,其實遠非如此簡單。例如DeepID2+的成功還在於其所具備的不少重要有趣的特徵:它最上層的神經元響應是中度稀疏的,對人臉身份和各類人臉屬性具備很強的選擇性,對局部遮擋有很強的魯棒性。在以往的研究中,爲了獲得這些屬性,咱們每每須要對模型加入各類顯示的約束。而DeepID2+經過大規模學習自動擁有了這些屬性,其背後的理論分析值得將來進一步研究。

3.二、深度學習在物體檢測中的應用

物體檢測是比物體識別更難的任務。一幅圖像中可能包含屬於不一樣類別的多個物體,物體檢測須要肯定每一個物體的位置和類別。2013年,ImageNet ILSVRC比賽的組織者增長了物體檢測的任務,要求在4萬張互聯網圖片中檢測200類物體。比賽獲勝者使用的是手動設計的特徵,平均物體檢測率(mean Averaged Precision, mAP)只有22.581%。在ILSVRC 2014中,深度學習將平均物體檢測率提升到了43.933%。較有影響力的工做包括 RCNN[、Overfeat、GoogLeNet、DeepID-Net、network in network、VGG和spatial pyramid pooling in deep CNN。RCNN首次提出了被普遍採用的基於深度學習的物體檢測流程,並首先採用非深度學習方法(例如selective search)提出候選區域,利用深度卷積網絡從候選區域提取特徵,而後利用支持向量機等線性分類器基於特徵將區域分爲物體和背景。DeepID-Net進一步完善了這一流程,使得檢測率有了大幅提高,而且對每個環節的貢獻作了詳細的實驗分析。深度卷積網絡結構的設計也相當重要,若是一個網絡結構可以提升圖像分類任務的準確性,一般也能顯著提高物體檢測器的性能。
深度學習的成功還體如今行人檢測上。在最大的行人檢測測試集(Caltech)上,普遍採用的方向梯度直方圖(Histogram of Oriented Gradient, HOG)特徵和可變形部件模型的平均誤檢率是68%。目前基於深度學習檢測的最好結果是20.86%。在最新的研究進展中,不少被證實行之有效的物體檢測都用到了深度學習。例如,聯合深度學習提出了形變層,對物體部件間的幾何形變進行建模;多階段深度學習能夠模擬物體檢測中經常使用的級聯分類器;可切換深度網絡能夠表達物體各個部件的混合模型;文獻[35]經過遷移學習將一個深度模型行人檢測器自適應到一個目標場景。


3.三、深度學習在視頻分析方面的應用
深度學習在視頻分類上的應用還處於起步階段,將來還有不少工做要作。描述視頻的靜態圖像特徵能夠採用從ImageNet上學習獲得的深度模型,難點是如何描述動態特徵。以往的視覺研究方法對動態特徵的描述每每依賴於光流估計、對關鍵點的跟蹤和動態紋理。如何將這些信息體如今深度模型中是個難點。最直接的作法是將視頻視爲三維圖像,直接應用卷積網絡在每一層學習三維濾波器。可是這一思路顯然沒有考慮到時間維和空間維的差別性。另一種簡單但更加有效的思路是,經過預處理計算光流場或其餘動態特徵的空間場分佈,做爲卷積網絡的一個輸入通道。也有研究工做利用深度編碼器(deep autoencoder)以非線性的方式提取動態紋理。在最新的研究工做中,長短時記憶網絡(Long Short-Term Memory, LSTM)受到普遍關注,它能夠捕捉長期依賴性,對視頻中複雜的動態建模。

四、將來發展的展望
深度學習在圖像識別中的應用方興未艾,將來有着巨大的發展空間。
在物識別和物體檢測研究的一個趨勢是使用更大更深的網絡結構。在ILSVRC 2012中,Alex Net只包含了5個卷積層和兩個全鏈接層。而在ILSVRC2014中, GooLeNet和 VGG 使用的網絡結構都超過了20層。更深的網絡結構使得反向傳播更加困難。與此同時,訓練數據的規模也在迅速變大。這迫切須要研究新的算法和開發新的並行計算系統來更加有效地利用大數據訓練更大更深的模型。
與圖像識別相比,深度學習在視頻分類中的應用還遠未成熟。從ImageNet 訓練獲得的圖像特徵能夠直接有效地應用到各類與圖像相關的識別任務(例如圖像分類、圖像檢索、物體檢測和圖像分割等)和其餘不一樣的圖像測試集中,具備良好的泛化性能。可是深度學習至今尚未獲得相似的可用於視頻分析的特徵。要達到這個目的,不但要創建大規模的訓練數據集(文獻最新創建了包含100萬個YouTube視頻的數據庫),還須要研究適用於視頻分析的新的深度模型。訓練用於視頻分析的深度模型的計算量也會大大增長。
在與圖像和視頻相關的應用中,深度模型的輸出預測(例如分割圖或物體檢測框)每每具備空間和時間上的相關性。所以研究具備結構性輸出的深度模型也是一個重點。
雖然神經網絡的目的在於解決通常意義上的機器學習問題,但領域知識對深度模型的設計也起着重要的做用。在與圖像和視頻相關的應用中,最成功的是深度卷積網絡,其設計正是利用了圖像的特殊結構。其中最重要的兩個操做——卷積和池化都來自與圖像相關的領域知識。如何經過研究領域知識,在深度模型中引入新的有效的操做和層,對於提升圖像和視頻識別的性能有着重要意義。例如,池化層帶來了局部的平移不變性,文獻中提出的形變池化層在此基礎上更好地描述了物體各個部分的幾何形變。在將來研究中,能夠將其進一步擴展,從而取得旋轉不變性、尺度不變性和對遮擋的魯棒性。


經過研究深度模型和傳統計算機視覺系統之間的關係,不但能夠幫助咱們理解深度學習成功的緣由,還能夠啓發新的模型和訓練方法。聯合深度學習和多階段深度學習將來還有更多的工做要作。


雖然深度學習在實踐中取得了巨大成功,並且經過大數據訓練獲得的深度模型體現出的特性(例如稀疏性、選擇性和對遮擋的魯棒性)引人注目,但其背後的理論分析還有許多工做須要完成。例如,什麼時候收斂?如何取得較好的局部極小點?每一層變換取得了哪些對識別有益的不變性,又損失了哪些信息?最近馬拉特(Mallat)利用小波對深層網絡結構進行了量化分析,這是在此方向上的重要探索。
五、結語
深度模型並不是黑盒子,它與傳統的計算機視覺系統有着密切的聯繫,神經網絡的各個層經過聯合學習、總體優化,使得性能獲得大幅提高。與圖像識別相關的各類應用也在推進深度學習在網絡結構、層的設計和訓練方法各個方面的快速發展。能夠預見在將來數年內,深度學習將會在理論、算法和應用各方面進入高速發展時期。數據庫

相關文章
相關標籤/搜索