圖像分類

圖像分類---深度學習

cifarclassify

實現常用圖像分類算法

CV-News-Classification

圖像分類入門 -圖像分類的概念

背景與意義

所謂圖像分類問題,就是已有固定的分類標簽集合,然后對于輸入的圖像,從分類標簽集合中找出一個分類標簽,最后把分類標簽分配給該輸入圖像。雖然看起來挺簡單的,但這可是計算機視覺領域的核心問題之一,并且有著各種各樣的實際應用。在后面的課程中,我們可以看到計算機視覺領域中很多看似不同的問題(比如物體檢測和分割),都可以被歸結為圖像分類問題。

一個簡單的例子

以下圖為例,圖像分類模型讀取該圖片,并生成該圖片屬于集合 {cat, dog, hat, mug}中各個標簽的概率。需要注意的是,對于計算機來說,圖像是一個由數字組成的巨大的3維數組。在這個例子中,貓的圖像大小是寬248像素,高400像素,有3個顏色通道,分別是紅、綠和藍(簡稱RGB)。如此,該圖像就包含了248X400X3=297600個數字,每個數字都是在范圍0-255之間的整型,其中0表示全黑,255表示全白。我們的任務就是把這些上百萬的數字變成一個簡單的標簽,比如“貓”。


image.png

圖像分類的任務,就是對于一個給定的圖像,預測它屬于的那個分類標簽(或者給出屬于一系列不同標簽的可能性)。圖像是3維數組,數組元素是取值范圍從0到255的整數。數組的尺寸是寬度x高度x3,其中這個3代表的是紅、綠和藍3個顏色通道。


分類的種類

圖像分類包括通用圖像分類、細粒度圖像分類等。圖1展示了通用圖像分類效果,即模型可以正確識別圖像上的主要物體。

圖片

圖1. 通用圖像分類

圖2展示了細粒度圖像分類-花卉識別的效果,要求模型可以正確識別花的類別。
圖片

圖2. 細粒度圖像分類展示

分類的難點

對于人來說,識別出一個像“貓”一樣視覺概念是簡單至極的,然而從計算機視覺算法的角度來看就值得深思了。我們在下面列舉了計算機視覺算法在圖像識別方面遇到的一些難點,要記住圖像是以3維數組來表示的,數組中的元素是亮度值。

  • 視角變化(Viewpoint variation):同一個物體,攝像機可以從多個角度來展現。
  • 大小變化(Scale variation):物體可視的大小通常是會變化的(不僅是在圖片中,在真實世界中大小也是變化的)。
  • 形變(Deformation):很多東西的形狀并非一成不變,會有很大變化。
  • 遮擋(Occlusion):目標物體可能被擋住。有時候只有物體的一小部分(可以小到幾個像素)是可見的。
  • 光照條件(Illumination conditions):在像素層面上,光照的影響非常大。
  • 背景干擾(Background clutter):物體可能混入背景之中,使之難以被辨認。
  • 類內差異(Intra-class variation):一類物體的個體之間的外形差異很大,比如椅子。這一類物體有許多不同的對象,每個都有自己的外形。

圖片

面對以上所有變化及其組合,好的圖像分類模型能夠在維持分類結論穩定的同時,保持對類間差異足夠敏感。


常用的圖像數據集

數據是視覺識別研究中最重要的因素之一,通 常我們更多關注于模型、算法本身,事實上,數據在 視覺任務中的作用越來越明顯.大數據時代的到來, 也使得研究人員開始更加重視數據.在數據足夠多 的情況下,我們甚至可以使用最簡單的模型、算法, 比如最近鄰分類、樸素貝葉斯分類器都能得到很好 的效果.鑒于數據對算法的重要性,我們將在本節對 視覺研究中物體分類與檢測方面的主流數據集進行概 述。

圖片

MNIST 數據集

早期物體分類研究集中于一些較為簡單的特定 任務,如OCR、形狀分類等.OCR中數字手寫識別 是一個得到廣泛研究的課題,相關數據庫中最著名 的是MNIST數據庫.MNIST是一個數字手寫識 別領域的標準評測數據集,數據庫大小是60000,一 共包含10類阿拉伯數字,每類提供5000張圖像進 行訓練,1000張進行測試.MNIST的圖像大小為 28×28,即784維,所有圖像為手寫數字,存在較大 的形變.

CIFAR 數據集

CIFAR-10和CIFAR-100數據庫是Tiny images的兩個子集,分別包含了10類和100類物 體類別.這兩個數據庫的圖像尺寸都是32×32,而 且是彩色圖像.CIFAR-10包含6萬的圖像,其中 5萬用于模型訓練,1萬用于測試,每一類物體有 5000張圖像用于訓練,1000張圖像用于測試. CIFAR-100與CIFAR-10組成類似,不同的是包含 了更多的類別:20個大類,大類又細分為100個小 類別,每類包含600張圖像.CIFAR-10和CIFAR-100數據庫尺寸較小,但是數據規模相對較大,非常 適合復雜模型特別是深度學習模型訓練,因而成為 深度學習領域主流的物體識別評測數據集.

Caltech 數據集

Caltech-101是第一個規模較大的一般物體識 別標準數據庫,除背景類別外,它一共包含了101類 物體,共9146張圖像,每類中圖像數目從40到800 不等,圖像尺寸也達到300左右.Caltech-101是以 物體為中心構建的數據庫,每張圖像基本只包含一 個物體實例,且居于圖像中間位置.物體尺寸相對圖 像尺寸比例較大,且變化相對實際場景來說不大,比 較容易識別.Caltech-101每類的圖像數目差別較 大,有些類別只有很少的訓練圖像,也約束了可以使 用的訓練集大小.Caltech-256與類Caltech-101類 似,區別是物體類別從101類增加到了256類,每類 包含至少80張圖像.圖像類別的增加,也使得 Caltech-256上的識別任務更加困難,使其成為檢 驗算法性能與擴展性的新基準。

15 Scenes 數據集

15 Scenes是由Lazebnik等人在Li等人的13 Scenes數據庫的基礎上加入了兩個新的場景構成的,一共有15個 自然場景,4485張圖像,每類大概包含200~400張 圖像,圖像分辨率約為300×250.15 Scenes數據庫 主要用于場景分類評測,由于物體分類與場景分類 在模型與算法上差別不大,該數據庫也在圖像分類 問題上得到廣泛的使用

PASCAL VOC 數據集

PASCAL VOC從2005年到2012年每年都發布關于分類、檢測、分割等任務的數據庫,并在相應數據庫上舉行了算法競賽,極大地推動了視覺研究的發展進步.最初2005年PASCAL VOC數據庫只包含人、自行車、摩托車、汽車共4類,2006年類別數目增加到10類,2007年開始類別數目固定為20類,以后每年只增加部分樣本.PACAL VOC數據庫中物體類別均為日常生活中常見的物體,如交通工具、室內家具、人、動物等.PASCAL VOC數據庫共包含9963張圖片,圖片來源包括filker等互聯網站點以及其他數據庫,每類大概包含96~2008張圖像,均為一般尺寸的自然圖像.PASCAL VOC數據庫與Caltech-101相比,雖然類別數更少,但由于圖像中物體變化極大,每張圖像可能包含多個不同類別物體實例,且物體尺度變化很大,因而分類與檢測難度都非常大.該數據庫的提出,對物體分類與檢測的算法提出了極大的挑戰,也催生了大批優秀的理論與算法,將物體識別的研究推向了一個新的高度.

ImageNet 數據集

隨著分類與檢測算法的進步,很多算法在以上 提到的相關數據庫上性能都接近飽和,同時隨著大 數據時代的到來、硬件技術的發展,也使得在更大規 模的數據庫上進行研究和評測成為必然.ImageNet是由Li主持構建的大規模圖像數據庫,圖像類別按照WordNet構建,全庫截止2013年共有1400萬張圖像,2.2萬個類別,平均每類包含1000張圖像.這是目前視覺識別領域最大的有標注的自然圖像分辨率的數據集,盡管圖像本身基本還是以目標為中心構建的,但是海量的數據和海量的圖像類別,使得該數據庫上的分類任務依然極具挑戰性.除此 之外,ImageNet還構建了一個包含1000類物體 120萬圖像的子集,并以此作為ImageNet大尺度視 覺識別競賽的數據平臺,也逐漸成為物體分類算法 評測的標準數據集.

SUN數據集

SUN數據庫的構建是希望給研究人員提供一個覆蓋較大場景、位置、人物變化的數據庫,庫中的場景名是從WordNet中的所有場景名稱中得來的.SUN數據庫包含兩個評測集,一個是場景識別數據集,稱為SUN-397,共包含397類場景,每類至少包含100張圖片,總共有108754張圖像.另一個評測集為物體檢測數據集,稱為SUN2012,包含16873張圖像。

Tiny images 數據集

Tiny images是一個圖像規模更大的數據庫, 共包含7900萬張32×32圖像,圖像類別數目有 7.5萬,盡管圖像分辨率較低,但還是具有較高的區分度,而其絕無僅有的數據規模,使其成為大規模分 類、檢索算法的研究基礎.

我們也可以發現,物體類別越多,導致類間差越小,分類與檢測任務越困難,圖像數目、圖像尺寸的大小,則直接對算法的可擴展性提出了更高的要求, 如何在有限時間內高效地處理海量數據、進行準確 的目標分類與檢測成為當前研究的熱點.

圖像分類入門 2-圖像分類的基本方法

傳統的圖像分類方法

一般來說,圖像分類通過手工特征或特征學習方法對整個圖像進行全部描述,然后使用分類器判別物體類別,因此如何提取圖像的特征至關重要。在深度學習算法之前使用較多的是基于詞袋(Bag of Words)模型的物體分類方法。詞袋方法從自然語言處理中引入,即一句話可以用一個裝了詞的袋子表示其特征,袋子中的詞為句子中的單詞、短語或字。對于圖像而言,詞袋方法需要構建字典。最簡單的詞袋模型框架可以設計為底層特征抽取、特征編碼、分類器設計三個過程。

模型簡介

圖像識別領域大量的研究成果都是建立在PASCAL VOC、ImageNet等公開的數據集上,很多圖像識別算法通常在這些數據集上進行測試和比較。PASCAL VOC是2005年發起的一個視覺挑戰賽,ImageNet是2010年發起的大規模視覺識別競賽(ILSVRC)的數據集,本節中我們基于這些競賽介紹圖像分類模型。

詞袋模型(Bag-of-Words)

詞袋模型(Bag-of- Words)最初產生于自然語言 處理領域,通過建模文檔中單詞出現的頻率來對文檔進行描述與表達.簡單說就是講每篇文檔都看成一個袋子(因為里面裝的都是詞匯,所以稱為詞袋,Bag of words即因此而來),然后看這個袋子里裝的都是些什么詞匯,將其分類。如果文檔中豬、馬、牛、羊、山谷、土地、拖拉機這樣的詞匯多些,而銀行、大廈、汽車、公園這樣的詞匯少些,我們就傾向于判斷它是一篇描繪鄉村的文檔,而不是描述城鎮的.Csurka等人于2004年首次 將詞包的概念引入計算機視覺領域,由此開始大量 的研究工作集中于詞包模型的研究。在2012年之前,詞袋模型是VOC競賽 中物體分類算法的基本框架,幾乎所有的參賽算法 都是基于詞袋模型。通常完整建立圖像識別模型一般包括底層特征提取、特征編碼、空間約束、分類器設計、模型融合等幾個階段。

圖片

向量中每個元素表示詞典中相關元素在文檔中出現的次數。不過,在構造文檔向量的過程中可以看到,我們并沒有表達單詞在原來句子中出現的次序(這是本Bag-of-words模型的缺點之一,不過瑕不掩瑜甚至在此處無關緊要)

  • 底層特征提取: 底層特征提取是物體分類框架中的第一步,底層特征提取方式有兩種:一種是基于興趣點檢測,另一種是采用密集提取的方式。
    • 興趣點檢測算法通過某種準則選擇具有明確定義的、局部紋理特征比較明顯的像素點、邊緣、角點、區塊等,并且通常能夠獲得一定的幾何不變性,從而可以在較小的開銷下得到更有意義的表達,最常用的興趣點檢測算子有Harris角點檢測子、FAST(Features from Accelerated Segment Test)算子、 LoG(Laplacian of Gaussian)、DoG(Difference of Gaussian)等。
    • 密集提取的方式則是從圖像中按固定的步長、尺度提取出大量的局部特征描述,大量的局部描述盡管具有更高的冗余度,但信息更加豐富,后面再使用詞包模型進行有效表達后通常可以得到比興趣點檢測更好的性能.常用的局部特征包括SIFT(Scale-Invariant Feature Transform,尺度不變特征轉換)、HOG(Histogram of Oriented Gradient,方向梯度直方圖)、LBP(Local Binary Pattern,局部二值模式)等等。

從上表可以看出,2012年之前歷年最好的物體分類算法都采用了多種特征年采樣方式上密集提取與興趣點檢測相結合,底層特征描述也采用了多種特征描述子,這樣做的好處是,在底層特征提取階段,通過提取到大量的冗余特征,最大限度的對圖像進行底層描述,防止丟失過多的有用信息,這些底層描述中的冗余信息主要靠后面的特征編碼和特征匯聚得到抽象和簡并。事實上,近年來得到廣泛關注的深度學習理論中一個重要的觀點就是手工設計的底層特征描述子作為視覺信息處理的第一步,往往會過早地丟失有用的信息,直接從圖像像素學習到任務相關的特征描述是比手工特征更為有效的手段。

  • 特征編碼: 密集提取的底層特征中包含大量的冗余與噪聲,為提高特征表達的魯棒性,需要使用一種特征變換算法對底層特征進行編碼,從而獲得更具區分性、更加魯棒的特征表達,這一步對物體識別的性能具有至關重要的作用,因而大量的研究工作都集中在尋找更加強大的特征編碼方法,重要的特征編碼算法包括向量量化編碼、核詞典編碼、稀疏編碼、局部線性約束編碼、顯著性編碼、Fisher向量編碼、超向量編碼等。

    • 向量量化編碼:向量量化編碼是簡單的特征編碼,它的出現甚至比詞包模型的提出還要早.向量量化編碼是通過一種量化的思想,使用一個較小的特征集合(視覺詞 典)來對底層特征進行描述,達到特征壓縮的目的. 向量量化編碼只在最近的視覺單詞上響應為1,因而又稱為硬量化編碼、硬投票編碼,這意味著向量量化編碼只能對局部特征進行很粗糙的重構.但向量量化編碼思想簡單、直觀,也比較容易高效實現,因而從2005年第一屆PASCAL VOC競賽以來,就得到了廣泛的使用.
    • 軟量化編碼(核詞典編碼):在實際圖像中,圖像局部特征常常存在一定的模糊性,即一個局部特征可能和多個視覺單詞差別很小,這個時候若使用向量量化編碼將只利用距離最近的視覺單詞,而忽略了其他相性很高的視覺單詞.為了克服這種模糊性問題, van Gemert 等人提出了軟量化編碼(又稱核視覺詞典編碼)算法:局部特征不再使用一個視覺單詞描述,而是由距離最近的犓個視覺單詞加權后進行描述,有效解決了視覺單詞的模糊性問題,提高了物體識別的精度。
    • 稀疏編碼:稀疏表達理論近年來在視覺研究領域得到了大量的關注,稀疏編碼通過最小二乘重構加入稀疏約束來實現在一個過完備基上響應的稀疏性。約束是最直接的稀疏約束,但通常很難進行優化,近年來更多使用的是約束, 可以更加有效地進行迭代優化,得到稀疏表達.2009年Yang等人將稀疏編碼應用到物體分類領域, 替代了之前的向量量化編碼和軟量化編碼,得到一 個高維的高度稀疏的特征表達,大大提高了特征表達的線性可分性,僅僅使用線性分類器就得到了當時最好的物體分類結果,將物體分類的研究推向了 一個新的高度上.稀疏編碼在物體分類上的成功也不難理解,對于一個很大的特征集合(視覺詞典),一個物體通常只和其中較少的特征有關,例如,自行車通常和表達車輪、車把等部分的視覺單詞密切相關, 與飛機機翼、電視機屏幕等關系很小,而行人則通常在頭、四肢等對應的視覺單詞上有強響應.但稀疏編碼存在一個問題,即相似的局部特征可能經過稀疏編碼后在不同的視覺單詞上產生響應,這種變換的不 連續性必然會產生編碼后特征的不匹配,影響特征 的區分性能.
    • 局部線性約束編碼:為了解決稀疏編碼產生的特征不匹配問題,研究人員又提出了局部線性約束編碼。它通過加入局部線性約束,在一個局 部流形上對底層特征進行編碼重構,這樣既可以保 證得到的特征編碼不會有稀疏編碼存在的不連續問 題,也保持了稀疏編碼的特征稀疏性.局部線性約束 編碼中,局部性是局部線性約束編碼中的一個核心 思想,通過引入局部性,一定程度上改善了特征編碼 過程的連續性問題,即距離相近的局部特征在經過 編碼之后應該依然能夠落在一個局部流形上.局部 線性約束編碼可以得到稀疏的特征表達,與稀疏編 碼不同之處就在于稀疏編碼無法保證相近的局部特 征編碼之后落在相近的局部流形.從上表可以看出, 2009年的分類競賽冠軍采用了混合高斯模型聚類 和局部坐標編碼(局部線性約束編碼是其簡化版 本),僅僅使用線性分類器就取得了非常好的性能.
    • 顯著性編碼:顯著性編 碼引入了視覺顯著性的概念,如果一個局部特征 到最近和次近的視覺單詞的距離差別很小,則認為 這個局部特征是不“顯著的”,從而編碼后的響應也 很小.顯著性編碼通過這樣很簡單的編碼操作,在 Caltech101/256,PASCAL VOC2007等數據庫上 取得了非常好的結果,而且由于是解析的結果,編碼 速度也比稀疏編碼快很多.Huang等人發現顯著 性表達配合最大值匯聚在特征編碼中有重要的作 用,并認為這正是稀疏編碼、局部約束線性編碼等之 所以在圖像分類任務上取得成功的原因.
    • 超向量編 碼與Fisher向量編碼:超向量編 碼,Fisher向量編碼是近年提出的性能最好的 特征編碼方法,其基本思想有相似之處,都可以認為 是編碼局部特征和視覺單詞的差.Fisher向量編碼 同時融合了產生式模型和判別式模型的能力,與傳 統的基于重構的特征編碼方法不同,它記錄了局部 特征與視覺單詞之間的一階差分和二階差分.超向 量編碼則直接使用局部特征與最近的視覺單詞的差 來替換之前簡單的硬投票.這種特征編碼方式得到 的特征向量表達通常是傳統基于重構編碼方法的 M倍(M是局部特征的維度).盡管特征維度要高出 很多,超向量編碼和Fisher向量編碼在PASCAL VOC、ImageNet等極具挑戰性、大尺度數據庫上獲 得了當時最好的性能,并在圖像標注、圖像分類、圖 像檢索等領域得到應用.2011年ImageNet分類競 賽冠軍采用了超向量編碼,2012年VOC競賽冠軍 則是采用了向量量化編碼和Fisher向量編碼.
  • 空間特征約束: 特征編碼之后一般會經過空間特征約束,也稱作空間特征匯聚。特征匯聚是指在一個空間范圍內,對每一維特征取最大值或者平均值,可以獲得一個緊致的、一定特征不變形的特征表達,同時也避免了使用特征 集進行圖像表達的高額代價.金字塔特征匹配是一種常用的特征聚會方法,這種方法提出將圖像均勻分塊,在分塊內做特征匯聚。

  • 通過分類器分類: 經過前面步驟之后一張圖像可以用一個固定維度的向量進行描述,接下來就是學習一個分類器對圖像進行分類。通常使用的分類器包括K緊鄰、神經網絡、SVM(Support Vector Machine, 支持向量機)、隨機森林等。而使用核方法的SVM是最為廣泛的分類器,在傳統圖像分類任務上性能很好。

圖像分類入門 3-圖像分類的基本方法

深度學習模型

深度學習模型是另一類物體分類算法,其基本思想是通過有監督或者無監督的方式學習層次化的特征表達,來對物體進行從底層到高層的描述.主流的深度學習模型包括自動編碼器(Auto-encoder)、受限波爾茲曼機(Restricted Boltzmann Machine,RBM)、深度信念網絡(Deep Belief Nets,DBN)、卷積神經網絡(Convolutional Neural Networks,CNN)、生物啟發式模型等.

  • 自動編碼器:自動編碼器(Auto-encoder)是20世紀80年代提出的一種特殊的神經網絡結構,并且在數據降維、特征提取等方面得到廣泛應用.自動編碼器由編碼器和解碼器組成,編碼器將數據輸入變換到隱藏層表達,解碼器則負責從隱藏層恢復原始輸入.隱藏層單元數目通常少于數據輸入維度,起著類似“瓶頸”的作用,保持數據中最重要的信息,從而實現數據降維與特征編碼.自動編碼器是基于特征重構的無監督特征學習單元,加入不同的約束,可以得到不同的變化,包括去噪自動編碼器(Denoising Autoencoders)、稀疏自動編碼器(Sparse Autoencoders)等,這些方法在數字手寫 識別、圖像分類等任務上取得了非常好的結果.

  • 受限玻爾茲曼機是一種無向二分圖模型,是 一種典型的基于能量的模型(Energy Based Models,EBM).之所以稱為“受限”,是指在可視層和隱藏層之間有連接,而在可視層內部和隱藏層內部不存在連接.受限玻爾茲曼機的這種特殊結構,使得它具有很好的條件獨立性,即給定隱藏層單元,可視層單元之間是獨立的,反之亦然.這個特性使得它可以實現同時對一層內的單元進行并行Gibbs采樣.受限玻爾茲曼機通常采用對比散度(Contrastive Divergence,CD)算法進行模型學習.受限玻爾茲曼機作為一種無監督的單層特征學習單元,類似于前面提到的特征編碼算法,事實上加了稀疏約束的受限玻爾茲曼機可以學到類似稀疏編碼那樣的Gabor 濾波器模式.

  • 深度信念網絡(DBN)是一種層次化的無 向圖模型.DBN的基本單元是RBM(Restricted Boltzmann Machine),首先先以原始輸入為可視層, 訓練一個單層的RBM,然后固定第一層RBM權重,以RBM隱藏層單元的響應作為新的可視層,訓練下一層的RBM,以此類推.通過這種貪婪式的監督訓練,可以使整個DBN模型得到一個比較好的初始值,然后可以加入標簽信息,通過產生式或者判別式方式,對整個網絡進行有監督的精調,進一步改善網絡性能.DBN的多層結構,使得它能夠學習得到層次化的特征表達,實現自動特征抽象,而無監督預訓練過程則極大改善了深度神經網絡在數據量不夠時嚴重的局部極值問題.Hinton等人通過這種方式,成功將其應用于手寫數字識別、語音識別、基于內容檢索等領域.

  • 卷積神經網絡(CNN)最早出現在20世紀 80年代,最初應用于數字手寫識別,取得了一定的成功.然而,由于受硬件的約束,卷積神經網絡的高強度計算消耗使得它很難應用到實際尺寸的目標識別任務上.Hubel和Wiesel在貓視覺系統研究工作的基礎上提出了簡單、復雜細胞理論,設計出來一 種人工神經網絡,之后發展成為卷積神經網絡.卷積神經網絡主要包括卷積層和池化層,卷積層通過用固定大小的濾波器與整個圖像進行卷積,來模擬Hubel和Wiesel提出的簡單細胞.池化層則是一種降采樣操作,通過取卷積得到的特征圖中局部區塊的最大值、平均值來達到降采樣的目的,并在這個過程中獲得一定的不變性.池化層用來模擬Hubel和Wiesel理論中的復雜細胞.在每層的響應之后通常還會有幾個非線性變換,如sigmoid、tanh、relu等, 使得整個網絡的表達能力得到增強.在網絡的最后通常會增加若干全連通層和一個分類器,如 softmax分類器、RBF分類器等.卷積神經網絡中卷積層的濾波器是各個位置共享的,因而可以大大降低參數的規模,這對防止模型過于復雜是非常有益的,另一方面,卷積操作保持了圖像的空間信息,因而特別適合于對圖像進行表達


圖片

CNN網絡示例


  • 卷積層(convolution layer): 執行卷積操作提取底層到高層的特征,發掘出圖片局部關聯性質和空間不變性質。卷積層在CNN中扮演著很重要的角色——特征的抽象和提取
  • 池化層(pooling layer): 執行降采樣操作。通過取卷積輸出特征圖中局部區塊的最大值(max-pooling)或者均值(avg-pooling)。降采樣也是圖像處理中常見的一種操作,可以過濾掉一些不重要的高頻信息。池化操作(Pooling)用于卷積操作之后,其作用在于特征融合和降維,其實也是一種類似卷積的操作,只是池化層的所有參數都是超參數,都是不用學習得到的。
  • 全連接層(fully-connected layer,或者fc layer): 輸入層到隱藏層的神經元是全部連接的。
    它還有一個作用是去除空間信息(通道數),是一種將三維矩陣變成向量的過程(一種全卷積操作)
  • 非線性變化: 卷積層、全連接層后面一般都會接非線性變化層,例如Sigmoid、Tanh、ReLu等來增強網絡的表達能力,在CNN里最常使用的為ReLu激活函數。
  • Dropout [10] : 在模型訓練階段隨機讓一些隱層節點權重不工作,提高網絡的泛化能力,一定程度上防止過擬合。

下面是卷積神經網絡領域中比較有名的幾種結構:

  • LeNet: 第一個成功的卷積神經網絡應用,是Yann LeCun在上世紀90年代實現的。當然,最著名還是被應用在識別數字和郵政編碼等的LeNet結構。

  • AlexNet:AlexNet卷積神經網絡在計算機視覺領域中受到歡迎,它由Alex Krizhevsky,Ilya Sutskever和Geoff Hinton實現。AlexNet在2012年的ImageNet ILSVRC 競賽中奪冠,性能遠遠超出第二名(16%的top5錯誤率,第二名是26%的top5錯誤率)。這個網絡的結構和LeNet非常類似,但是更深更大,并且使用了層疊的卷積層來獲取特征(之前通常是只用一個卷積層并且在其后馬上跟著一個池化層)。

  • GoogLeNet: ILSVRC 2014的勝利者是谷歌的Szeged等實現的卷積神經網絡。它主要的貢獻就是實現了一個奠基模塊,它能夠顯著地減少網絡中參數的數量(AlexNet中有60M,該網絡中只有4M)。還有,這個論文中沒有使用卷積神經網絡頂部使用全連接層,而是使用了一個平均池化,把大量不是很重要的參數都去除掉了。GooLeNet還有幾種改進的版本,最新的一個是Inception-v4。

  • VGGNet: ILSVRC 2014的第二名是Karen Simonyan和 Andrew Zisserman實現的卷積神經網絡,現在稱其為VGGNet。它主要的貢獻是展示出網絡的深度是算法優良性能的關鍵部分。他們最好的網絡包含了16個卷積/全連接層。網絡的結構非常一致,從頭到尾全部使用的是3x3的卷積和2x2的池化。他們的預訓練模型是可以在網絡上獲得并在Caffe中使用的。VGGNet不好的一點是它耗費更多計算資源,并且使用了更多的參數,導致更多的內存占用(140M)。其中絕大多數的參數都是來自于第一個全連接層。后來發現這些全連接層即使被去除,對于性能也沒有什么影響,這樣就顯著降低了參數數量。

  • ResNet: 殘差網絡(Residual Network)是ILSVRC2015的勝利者,由何凱明等實現。它使用了特殊的跳躍鏈接,大量使用了批量歸一化(batch normalization)。這個結構同樣在最后沒有使用全連接層。讀者可以查看何愷明的的演講(視頻,PPT),以及一些使用Torch重現網絡的實驗。ResNet當前最好的卷積神經網絡模型(2016年五月)。何凱明等最近的工作是對原始結構做一些優化,可以看論文Identity Mappings in Deep Residual Networks,2016年3月發表。

兩類模型的聯系和區別

這里我們將最為流行的詞包模型與卷積神經網絡模型進行對比,發現兩者其實是極為相似的.在詞包模型中,對底層特征進行特征編碼的過程,實際上近似等價于卷積神經網絡中的卷積層,而池化層所進行的操作也與詞包模型中的池化操作一樣.不同之處在于,詞包模型實際上相當于只包含了一個卷積層和一個池化層,且模型采用無監督方式進行特征表達學習,而卷積神經網絡則包含了更多層的簡單、復雜細胞,可以進行更為復雜的特征變換,并且其學習過程是有監督過程的,濾波器權重可以根據數據與任務不斷進行調整,從而學習到更有意義的特征表達.從這個角度來看,卷積神經網絡具有更為強大的特征表達能力,因此它在圖像識別任務中的出色性能就很容易解釋了.

參考文獻

圖像識別

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容