金瑋,孟曉曼,武益超
(華北水利水電大學,河南 鄭州 450046)
圖像分類技術最早是在20世紀40年代提出的,那時候的技術能力不足,計算機設備不夠完善,所以圖像分類技術在那個時候沒有得到快速發展。隨著計算機的快速發展和計算能力的不斷提高,深度學習逐漸走入人們的視野,尤其是深度學習中的卷積神經網絡,在圖像領域掀起一波熱潮。卷積神經網絡是深度學習(Deep Learning)的重要算法之一,本文通過深度學習中的卷積神經網絡對圖像分類展開分析和介紹。隨著科學技術的不斷更迭,卷積神經網絡的發展速度迅猛,應用的領域也不斷擴大,比如圖像識別、自然語言處理、語義分割等領域。能夠解決當時遇到的CPU處理能力不足問題,但也只能分析一些小規模的數據,存在著對復雜圖片處理不到位等諸多問題。對網絡模型采取一層一層的訓練是由Hinton研究團隊于2006年提出的,在此之后,卷積神經網絡在圖像處理領域得到了廣泛的應用,并且推動了機器學習任務準確率的提高,目前它已經成為一種強大且通用的深度學習模型。隨著互聯網技術的快速發展,有越來越多的圖像信息存儲在網上。在這種情況下,如何利用計算機對這些圖像進行智能分類和識別,讓其更好地服務于人類就顯得尤為重要。
一些描述卷積神經網絡模型的綜述,介紹了卷積神經網絡的基本結構以及神經網絡的一些經典網絡模型,講述了這些模型的優缺點以及演進過程。綜合比較那些熱門的卷積神經網絡模型之間的異同點,對一些所存在的過擬合問題、計算精度問題進行分析說明。最后,對基于卷積神經網絡的圖像分類進行總結,并對該領域的未來工作進行展望。
從時間的角度來看,深度學習經歷了兩次低谷期,第一次低估是1943的MCP人工神經元模型,當時是希望能夠借助計算機來模擬人的神經元反應過程。第一次將MCP用于機器學習的是1958年Rosenblatt發明的感知器算法。它的缺點是只能處理線性分類問題。打破非線性禁錮的是Hinton于1986年發明的適用于多層感知器的BP算法,并且采用Sigmoid算法進行非線性映射,把深度學習從第一次低谷中拉了出來,有效地解決了非線性相關的分類問題。但是之后有人提出BP算法存在梯度消失問題。在此之后決策樹方法、線性SVM、KernelSVM、隨機森林等被提出,深度學習迎來了第二春。
深度學習可以根據數據是否具有標簽劃分為監督學習和非監督學習。監督學習的方法有:循環神經網絡、卷積神經網絡、深層堆疊網絡等。非監督學習的方法有:生成對抗網絡、深度信念網絡、玻爾茲曼機、自動編碼器(AutoEncode)等。它們的應用場景各有不同,包括語音分析、文字分析、時間序列分析、圖像分析領域等。此外,受限玻爾茲曼機(RBM)一般在實際工作中不單獨使用。
隨著深度學習的快速發展,深度學習的算法模型也在不斷改進,并且運用到各種領域。例如:無人駕駛汽車、安保方面的人臉識別、圖像中的物體分類、交通場景識別以及醫學領域的圖像識別,等等。深度學習在無人駕駛領域主要用于圖像處理、感知周圍環境、檢測車輛、行人、交通標志等目標;在安防監控中,人臉識別有重大意義,比如公共場所(地鐵站、車站、街道等)的人臉識別。公共場所的人臉識別可以幫助公安抓捕嫌犯;在醫學領域可以做到醫療看護,尤其是在長期的輔助生活中,人臉識別可以幫助護士密切關注患者或監控行動不便老人的活動,以免發生意外事故。深度學習已在諸多領域中得到成功應用,但依然會有更多的高精度算法被陸續提出,未來深度學習會有更廣闊的發展空間。如圖1所示為深度學習在自動駕駛中的應用。

圖1 基于深度學習的自動駕駛
卷積神經網絡具備的網絡層次比較多,包括輸入層、卷積層、池化層、全連接層等。
卷積層在整個網絡中的作用是對輸入數據進行特征提取,卷積層內的任何一個神經元都與上一層中位置接近的神經元形成一對多的連接關系,并且卷積核的大小是決定區域大小的關鍵,這也被稱為“感受野”(receptive field)。此外,卷積層還有一個重要特點就是采用了參數共享機制,對于不同的區域,我們都共享同一個卷積核,這個機制可以大大減少網絡參數的數量。減少參數數量會使模型的訓練更有效,從而避免過擬合問題。
池化層在整個網絡中的作用是逐步減小數據的空間大小,目的是減少網絡中的參數數量以及降低計算復雜度,以便很好地控制過擬合。其中池化的方式也有很多,如最大池化、平均池化等。因為圖片具有平移不變性的特征,所以池化層的作用會更加有效,通過不斷的下采樣操作圖片不會損失本身具有的特征。我們可以將圖片縮小到合適的尺寸,這樣能夠極大地降低卷積運算時間,減少最后在全連接層的參數,進而提升了計算的效率。
全連接層在整個網絡中的作用是連接之前的卷積層、池化層等進行的多種操作的特征,最后把輸出的值分配給一個分類器。簡單來說就是通過特征提取實現分類。在實際的應用當中,全連接層也可由卷積操作實現。全連接層的長度、神經元數、激活函數是全連接層對模型影響的三個參數。
Krizhevsky等提出了由5個卷積層和3個全連接層組成的Alex Net網絡結構,采用Re Lu激活函數解決之前Le-Net使用的Sigmoid函數在深層網絡中出現的梯度彌漫問題;同時,為了減少過擬合問題,提出了Dropout方法,還可在一定程度上減少訓練任務量。如表1所示,他們在ILSVRC-2012競賽中top-5錯誤率為15.4%,并且取得了當時的冠軍。這一成果成為當時學術界的一大焦點,此后卷積神經網絡會向網絡的更深層次或網絡結構改進的方向出發。當然,這個網絡會具有一定的局限性,也就是受限于GPU的可用內存量以及我們愿意接受的訓練時間長度。

表1 ILSVRC大賽的錯誤率比較
Simonyan等提出了VGG網絡,使用的是較小的卷積核(3×3)并采用堆疊的方式,這樣可以減少參數的數量,他們沒有違背Le Cun等人提出的經典卷積神經網絡架構,只是對其進行了一些改進即增加了深度,并且證實了加深網絡結構可以提高分類的精度和性能??梢酝ㄟ^尺度抖動增強訓練集的方式來獲取多尺度圖像的統計信息。這個模型在ILSVRC 2014中獲得了第二名的成績,遜色之處是這樣的網絡模型使用的參數過多,會導致訓練速度較慢,建議之后在這個問題上多加改進,但網絡的最佳深度限制到16~19層。
GoogLeNet是由Christian Szegedy等人在ILSVRC 2014中提出的一種新型網絡模型,引入一個新的模塊(也就是如圖2所示的Inception-V1模塊)。利用這個模塊增加網絡結構的深度,進而提高效率和準確率,指出1×1卷積的關鍵作用:主要用于降維,抵消計算瓶頸,否則我們的網絡規模將受到限制,在增加網絡深度的前提下還可以增加網絡的寬度,并且保持性能不會有損失。如果提升了網絡的模型,參數就會增多,容易出現過擬合問題,應用起來會有一定的難度。

圖2 Inception-v1模塊結構
之后谷歌團隊相繼提出了Inception-V2、Inception-V3、Inception-V4等模塊,減少一定的參數量;提高了網絡訓練速度;緩解了梯度彌漫問題。
Kaiming He等提出了Res Net更深層次的網絡模型,在ILSVRC2015中斬獲第一名,他們提出了利用殘差學習框架對網絡的一些訓練進行簡化,證實這些殘差網絡更容易優化,而且在大幅度增加深度的同時還可以保持有效的精度。他們的殘差網高達152層,而且復雜度還低于VGG網絡,在圖像分類領域中取得了較好的成果。因為梯度消失的問題會成為一些障礙,所以Res Net采用殘差模塊來解決退化問題。如圖3所示,他們構思了一個體系結構也就是添加一個身份映射,把最初的底層映射表示為(),結合堆疊的非線性層的另一個映射可轉換為()+,得到一個恒等式:()=()+。

圖3 殘差學習模塊
Zhang等提出了DenseNet的網絡模型,它以前饋方式將每一層連接起來,與之前的卷積網絡不同的是,在DenseNet中,會有(+1) /2個連接,每一層的輸入都來自之前所有層的輸出。其中DenseNet的特點有:減輕了梯度消失、加強了feature傳遞、鼓勵了特征重用、減少了參數數量。DenseNet能夠改善整個網絡的信息流和梯度,這樣使得它們更容易訓練。DenseNet因為其緊湊的內部表示以及減少的特征冗余,對于特征轉移這方面還沒有突破?;贑NN圖像分類模型的ImageNet數據集錯誤率對比如表2所示。

表2 基于CNN圖像分類模型的ImageNet數據集錯誤率對比
回顧了卷積神經網絡在圖像分類領域中所取得的一些優異成績,同時也點明了其在圖像分類識別中仍然存在一些問題。通過本文的綜述,提出一些可能會對圖像分類領域的學者有所幫助的方法,抑或為他們指明一些方向。
卷積神經網絡模型在應用方面對計算機硬件的要求非常高,對于較大規模的數據集其計算能力可能會受到影響,所以可以嘗試基于小樣本數據集進行遷移學習。如何正確使用小樣本數據,其中的方法值得我們做進一步的研究。
目前卷積神經網絡在圖像分類領域中使用的大都是監督式學習,耗費大量的人力和物力,而對于半監督學習以及非監督學習的圖像分類算法還不太完善,不過可以彌補一些監督學習的不足之處,如何把卷積神經網絡更好地應用于該領域值得諸多學者們做進一步的深入探究。