金瑋,孟曉曼,武益超
(華北水利水電大學(xué),河南 鄭州 450046)
圖像分類技術(shù)最早是在20世紀40年代提出的,那時候的技術(shù)能力不足,計算機設(shè)備不夠完善,所以圖像分類技術(shù)在那個時候沒有得到快速發(fā)展。隨著計算機的快速發(fā)展和計算能力的不斷提高,深度學(xué)習(xí)逐漸走入人們的視野,尤其是深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò),在圖像領(lǐng)域掀起一波熱潮。卷積神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)(Deep Learning)的重要算法之一,本文通過深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò)對圖像分類展開分析和介紹。隨著科學(xué)技術(shù)的不斷更迭,卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展速度迅猛,應(yīng)用的領(lǐng)域也不斷擴大,比如圖像識別、自然語言處理、語義分割等領(lǐng)域。能夠解決當時遇到的CPU處理能力不足問題,但也只能分析一些小規(guī)模的數(shù)據(jù),存在著對復(fù)雜圖片處理不到位等諸多問題。對網(wǎng)絡(luò)模型采取一層一層的訓(xùn)練是由Hinton研究團隊于2006年提出的,在此之后,卷積神經(jīng)網(wǎng)絡(luò)在圖像處理領(lǐng)域得到了廣泛的應(yīng)用,并且推動了機器學(xué)習(xí)任務(wù)準確率的提高,目前它已經(jīng)成為一種強大且通用的深度學(xué)習(xí)模型。隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,有越來越多的圖像信息存儲在網(wǎng)上。在這種情況下,如何利用計算機對這些圖像進行智能分類和識別,讓其更好地服務(wù)于人類就顯得尤為重要。
一些描述卷積神經(jīng)網(wǎng)絡(luò)模型的綜述,介紹了卷積神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)以及神經(jīng)網(wǎng)絡(luò)的一些經(jīng)典網(wǎng)絡(luò)模型,講述了這些模型的優(yōu)缺點以及演進過程。綜合比較那些熱門的卷積神經(jīng)網(wǎng)絡(luò)模型之間的異同點,對一些所存在的過擬合問題、計算精度問題進行分析說明。最后,對基于卷積神經(jīng)網(wǎng)絡(luò)的圖像分類進行總結(jié),并對該領(lǐng)域的未來工作進行展望。
從時間的角度來看,深度學(xué)習(xí)經(jīng)歷了兩次低谷期,第一次低估是1943的MCP人工神經(jīng)元模型,當時是希望能夠借助計算機來模擬人的神經(jīng)元反應(yīng)過程。第一次將MCP用于機器學(xué)習(xí)的是1958年Rosenblatt發(fā)明的感知器算法。它的缺點是只能處理線性分類問題。打破非線性禁錮的是Hinton于1986年發(fā)明的適用于多層感知器的BP算法,并且采用Sigmoid算法進行非線性映射,把深度學(xué)習(xí)從第一次低谷中拉了出來,有效地解決了非線性相關(guān)的分類問題。但是之后有人提出BP算法存在梯度消失問題。在此之后決策樹方法、線性SVM、KernelSVM、隨機森林等被提出,深度學(xué)習(xí)迎來了第二春。
深度學(xué)習(xí)可以根據(jù)數(shù)據(jù)是否具有標簽劃分為監(jiān)督學(xué)習(xí)和非監(jiān)督學(xué)習(xí)。監(jiān)督學(xué)習(xí)的方法有:循環(huán)神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)、深層堆疊網(wǎng)絡(luò)等。非監(jiān)督學(xué)習(xí)的方法有:生成對抗網(wǎng)絡(luò)、深度信念網(wǎng)絡(luò)、玻爾茲曼機、自動編碼器(AutoEncode)等。它們的應(yīng)用場景各有不同,包括語音分析、文字分析、時間序列分析、圖像分析領(lǐng)域等。此外,受限玻爾茲曼機(RBM)一般在實際工作中不單獨使用。
隨著深度學(xué)習(xí)的快速發(fā)展,深度學(xué)習(xí)的算法模型也在不斷改進,并且運用到各種領(lǐng)域。例如:無人駕駛汽車、安保方面的人臉識別、圖像中的物體分類、交通場景識別以及醫(yī)學(xué)領(lǐng)域的圖像識別,等等。深度學(xué)習(xí)在無人駕駛領(lǐng)域主要用于圖像處理、感知周圍環(huán)境、檢測車輛、行人、交通標志等目標;在安防監(jiān)控中,人臉識別有重大意義,比如公共場所(地鐵站、車站、街道等)的人臉識別。公共場所的人臉識別可以幫助公安抓捕嫌犯;在醫(yī)學(xué)領(lǐng)域可以做到醫(yī)療看護,尤其是在長期的輔助生活中,人臉識別可以幫助護士密切關(guān)注患者或監(jiān)控行動不便老人的活動,以免發(fā)生意外事故。深度學(xué)習(xí)已在諸多領(lǐng)域中得到成功應(yīng)用,但依然會有更多的高精度算法被陸續(xù)提出,未來深度學(xué)習(xí)會有更廣闊的發(fā)展空間。如圖1所示為深度學(xué)習(xí)在自動駕駛中的應(yīng)用。
圖1 基于深度學(xué)習(xí)的自動駕駛
卷積神經(jīng)網(wǎng)絡(luò)具備的網(wǎng)絡(luò)層次比較多,包括輸入層、卷積層、池化層、全連接層等。
卷積層在整個網(wǎng)絡(luò)中的作用是對輸入數(shù)據(jù)進行特征提取,卷積層內(nèi)的任何一個神經(jīng)元都與上一層中位置接近的神經(jīng)元形成一對多的連接關(guān)系,并且卷積核的大小是決定區(qū)域大小的關(guān)鍵,這也被稱為“感受野”(receptive field)。此外,卷積層還有一個重要特點就是采用了參數(shù)共享機制,對于不同的區(qū)域,我們都共享同一個卷積核,這個機制可以大大減少網(wǎng)絡(luò)參數(shù)的數(shù)量。減少參數(shù)數(shù)量會使模型的訓(xùn)練更有效,從而避免過擬合問題。
池化層在整個網(wǎng)絡(luò)中的作用是逐步減小數(shù)據(jù)的空間大小,目的是減少網(wǎng)絡(luò)中的參數(shù)數(shù)量以及降低計算復(fù)雜度,以便很好地控制過擬合。其中池化的方式也有很多,如最大池化、平均池化等。因為圖片具有平移不變性的特征,所以池化層的作用會更加有效,通過不斷的下采樣操作圖片不會損失本身具有的特征。我們可以將圖片縮小到合適的尺寸,這樣能夠極大地降低卷積運算時間,減少最后在全連接層的參數(shù),進而提升了計算的效率。
全連接層在整個網(wǎng)絡(luò)中的作用是連接之前的卷積層、池化層等進行的多種操作的特征,最后把輸出的值分配給一個分類器。簡單來說就是通過特征提取實現(xiàn)分類。在實際的應(yīng)用當中,全連接層也可由卷積操作實現(xiàn)。全連接層的長度、神經(jīng)元數(shù)、激活函數(shù)是全連接層對模型影響的三個參數(shù)。
Krizhevsky等提出了由5個卷積層和3個全連接層組成的Alex Net網(wǎng)絡(luò)結(jié)構(gòu),采用Re Lu激活函數(shù)解決之前Le-Net使用的Sigmoid函數(shù)在深層網(wǎng)絡(luò)中出現(xiàn)的梯度彌漫問題;同時,為了減少過擬合問題,提出了Dropout方法,還可在一定程度上減少訓(xùn)練任務(wù)量。如表1所示,他們在ILSVRC-2012競賽中top-5錯誤率為15.4%,并且取得了當時的冠軍。這一成果成為當時學(xué)術(shù)界的一大焦點,此后卷積神經(jīng)網(wǎng)絡(luò)會向網(wǎng)絡(luò)的更深層次或網(wǎng)絡(luò)結(jié)構(gòu)改進的方向出發(fā)。當然,這個網(wǎng)絡(luò)會具有一定的局限性,也就是受限于GPU的可用內(nèi)存量以及我們愿意接受的訓(xùn)練時間長度。
表1 ILSVRC大賽的錯誤率比較
Simonyan等提出了VGG網(wǎng)絡(luò),使用的是較小的卷積核(3×3)并采用堆疊的方式,這樣可以減少參數(shù)的數(shù)量,他們沒有違背Le Cun等人提出的經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)架構(gòu),只是對其進行了一些改進即增加了深度,并且證實了加深網(wǎng)絡(luò)結(jié)構(gòu)可以提高分類的精度和性能??梢酝ㄟ^尺度抖動增強訓(xùn)練集的方式來獲取多尺度圖像的統(tǒng)計信息。這個模型在ILSVRC 2014中獲得了第二名的成績,遜色之處是這樣的網(wǎng)絡(luò)模型使用的參數(shù)過多,會導(dǎo)致訓(xùn)練速度較慢,建議之后在這個問題上多加改進,但網(wǎng)絡(luò)的最佳深度限制到16~19層。
GoogLeNet是由Christian Szegedy等人在ILSVRC 2014中提出的一種新型網(wǎng)絡(luò)模型,引入一個新的模塊(也就是如圖2所示的Inception-V1模塊)。利用這個模塊增加網(wǎng)絡(luò)結(jié)構(gòu)的深度,進而提高效率和準確率,指出1×1卷積的關(guān)鍵作用:主要用于降維,抵消計算瓶頸,否則我們的網(wǎng)絡(luò)規(guī)模將受到限制,在增加網(wǎng)絡(luò)深度的前提下還可以增加網(wǎng)絡(luò)的寬度,并且保持性能不會有損失。如果提升了網(wǎng)絡(luò)的模型,參數(shù)就會增多,容易出現(xiàn)過擬合問題,應(yīng)用起來會有一定的難度。
圖2 Inception-v1模塊結(jié)構(gòu)
之后谷歌團隊相繼提出了Inception-V2、Inception-V3、Inception-V4等模塊,減少一定的參數(shù)量;提高了網(wǎng)絡(luò)訓(xùn)練速度;緩解了梯度彌漫問題。
Kaiming He等提出了Res Net更深層次的網(wǎng)絡(luò)模型,在ILSVRC2015中斬獲第一名,他們提出了利用殘差學(xué)習(xí)框架對網(wǎng)絡(luò)的一些訓(xùn)練進行簡化,證實這些殘差網(wǎng)絡(luò)更容易優(yōu)化,而且在大幅度增加深度的同時還可以保持有效的精度。他們的殘差網(wǎng)高達152層,而且復(fù)雜度還低于VGG網(wǎng)絡(luò),在圖像分類領(lǐng)域中取得了較好的成果。因為梯度消失的問題會成為一些障礙,所以Res Net采用殘差模塊來解決退化問題。如圖3所示,他們構(gòu)思了一個體系結(jié)構(gòu)也就是添加一個身份映射,把最初的底層映射表示為(),結(jié)合堆疊的非線性層的另一個映射可轉(zhuǎn)換為()+,得到一個恒等式:()=()+。
圖3 殘差學(xué)習(xí)模塊
Zhang等提出了DenseNet的網(wǎng)絡(luò)模型,它以前饋方式將每一層連接起來,與之前的卷積網(wǎng)絡(luò)不同的是,在DenseNet中,會有(+1) /2個連接,每一層的輸入都來自之前所有層的輸出。其中DenseNet的特點有:減輕了梯度消失、加強了feature傳遞、鼓勵了特征重用、減少了參數(shù)數(shù)量。DenseNet能夠改善整個網(wǎng)絡(luò)的信息流和梯度,這樣使得它們更容易訓(xùn)練。DenseNet因為其緊湊的內(nèi)部表示以及減少的特征冗余,對于特征轉(zhuǎn)移這方面還沒有突破?;贑NN圖像分類模型的ImageNet數(shù)據(jù)集錯誤率對比如表2所示。
表2 基于CNN圖像分類模型的ImageNet數(shù)據(jù)集錯誤率對比
回顧了卷積神經(jīng)網(wǎng)絡(luò)在圖像分類領(lǐng)域中所取得的一些優(yōu)異成績,同時也點明了其在圖像分類識別中仍然存在一些問題。通過本文的綜述,提出一些可能會對圖像分類領(lǐng)域的學(xué)者有所幫助的方法,抑或為他們指明一些方向。
卷積神經(jīng)網(wǎng)絡(luò)模型在應(yīng)用方面對計算機硬件的要求非常高,對于較大規(guī)模的數(shù)據(jù)集其計算能力可能會受到影響,所以可以嘗試基于小樣本數(shù)據(jù)集進行遷移學(xué)習(xí)。如何正確使用小樣本數(shù)據(jù),其中的方法值得我們做進一步的研究。
目前卷積神經(jīng)網(wǎng)絡(luò)在圖像分類領(lǐng)域中使用的大都是監(jiān)督式學(xué)習(xí),耗費大量的人力和物力,而對于半監(jiān)督學(xué)習(xí)以及非監(jiān)督學(xué)習(xí)的圖像分類算法還不太完善,不過可以彌補一些監(jiān)督學(xué)習(xí)的不足之處,如何把卷積神經(jīng)網(wǎng)絡(luò)更好地應(yīng)用于該領(lǐng)域值得諸多學(xué)者們做進一步的深入探究。