本期開小灶Heyro將帶領(lǐng)大家進入下一趟旅程——基于卷積神經(jīng)網(wǎng)絡(luò)的圖像分類算法講解,從而幫助大家了解在卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)下衍生出的被用于圖像分類的經(jīng)典算法。
在了解圖像分類算法以前,我們先來了解“何為圖像分類”。
圖像分類的核心是從給定的分類集合中給圖像分配一個標簽的任務(wù)。簡言之,我們需要對一個輸入圖像進行分析后返回一個對應(yīng)的分類標簽,標簽來自預先定義的可能類別集。圖像分類的任務(wù)即為正確給出輸入圖像的類別或輸出不同類別的概率。例如,我們先假設(shè)一個含有可能類別的類別集:
Categories = {cat, dog, fox}
然后,我們向分類系統(tǒng)提供一張狐貍?cè)膱D片。
經(jīng)過分類系統(tǒng)的處理,最終輸出可以是單一標簽dog,也可以是基于概率的多個標簽,例如cat:1%, dog:94%,fox:5% 。
計算機并不能像人類一樣快速通過視覺系統(tǒng)識別出圖像信息的語義。對于計算機而言,RGB圖像是由一個個像素數(shù)值構(gòu)成的高維矩陣(張量)。計算機識別圖像的任務(wù)即尋找一個函數(shù)關(guān)系,該函數(shù)可將高維矩陣信息映射到一個具體的類別標簽中。利用計算機實現(xiàn)圖像分類目的過程隨即衍生出圖像分類算法。
圖像分類算法的起源——神經(jīng)認知機
傳統(tǒng)的圖像識別模型一般包括:底層特征學習>特征編碼>空間約束>分類器設(shè)計>模型融合等幾個流程。
2012年Alex Krizhevsky提出的CNN(卷積神經(jīng)網(wǎng)絡(luò))模型在ImageNet大規(guī)模視覺識別比賽(ILSVRC)中脫穎而出,其效果大大超越了傳統(tǒng)的圖像識別方法,該模型被稱為AlexNet。
基于卷積神經(jīng)網(wǎng)絡(luò)的圖像分類算法起源最早可追溯到日本學者福島邦彥提出的neocognition(神經(jīng)認知機)神經(jīng)網(wǎng)絡(luò)模型。
福島邦彥于1978年至1984年研制了用于手寫字母識別的多層自組織神經(jīng)網(wǎng)絡(luò)——認知機。福島邦彥在認知機中引入了最大值檢出等概念。簡言之,當網(wǎng)格中某種神經(jīng)元損壞時,該神經(jīng)元立即可由其他神經(jīng)元來代替。由此一來,認知機就具有較好的容錯能力。
但是,認知機的網(wǎng)絡(luò)較為復雜,它對輸入的大小變換及平移、旋轉(zhuǎn)等變化并不敏感。雖然它能夠識別復雜的文字,但卻需要大量的處理單元和連接,這使得其硬件實現(xiàn)較為困難。
而福島邦彥在1980年提出的“神經(jīng)認知機”神經(jīng)網(wǎng)絡(luò)模型卻能夠很好地應(yīng)對以上問題。
該模型借鑒了生物的視覺神經(jīng)系統(tǒng)。它對模式信號的識別優(yōu)于認知機。無論輸入信號發(fā)生變換、失真,抑或被改變大小等,神經(jīng)認知機都能對輸入信號進行處理。但是,該模型被提出后一直未受到較大關(guān)注,直至AlexNet在ILSVRC中大獲全勝,卷積神經(jīng)網(wǎng)絡(luò)的潛力才為業(yè)界所認知。
深度學習算法
自AlexNet之后,深度學習的發(fā)展極為迅速,網(wǎng)絡(luò)深度也在不斷地快速增長,隨后出現(xiàn)了VGG(19層)、GoogleNet(22層)、ResNet(152層),以及SENet(252層)等深度學習算法。
隨著模型深度和結(jié)構(gòu)設(shè)計的發(fā)展,ImageNet分類的Top-5錯誤率也越來越低。在ImageNet上1000種物體的分類中,ResNet的Top-5錯誤率僅為3.57%。在同樣的數(shù)據(jù)集上,人眼的識別錯誤率約為5.1%,換言之,目前深度學習模型的識別能力已經(jīng)超過了人眼。
在卷積神經(jīng)網(wǎng)絡(luò)的歷史上,比較有里程碑意義的算法包括AlexNet、VGG、Inception (GoogleNet是Inception系列中的一員),以及ResNet。
在本期開小灶中,我們將首先為大家介紹經(jīng)典圖像分類算法AlexNet。
AlexNet 網(wǎng)絡(luò)結(jié)構(gòu)
作為G. Hinton代表作的AlexNet是深度學習領(lǐng)域最重要的成果之一。下面讓我們一起從左到右依次認識這個結(jié)構(gòu)。
在AlexNet網(wǎng)絡(luò)結(jié)構(gòu)(如下圖所示)中,輸入為一個224×224大小的RGB圖像。
AlexNet網(wǎng)絡(luò)結(jié)構(gòu)
第一層卷積,用48個11×11×3的卷積核計算出48個55×55大小的特征圖,用另外48個11×11×3的卷積核計算出另外48個55×55大小的特征圖,這兩個分支的卷積步長都是4,通過卷積把圖像的大小從224′224減小為55×55。第一層卷積之后,進行局部響應(yīng)歸一化 (LRN) 以及步長為2、池化窗口為3×3的最大池化,池化輸出的特征圖大小為27×27。
第二層卷積,用兩組各128個5×5×48的卷積核對兩組輸入的特征圖分別進行卷積處理,輸出兩組各128個27×27的特征圖。第二層卷積之后,做局部響應(yīng)歸一化和步長為2、池化窗口為3×3的最大池化,池化輸出的特征圖大小為13×13。
第三層卷積,將兩組特征圖合為一組。采用192個3×3×256的卷積核對所有輸入特征圖做卷積運算,再用另外192個3×3×256的卷積核對所有輸入特征圖做卷積運算,輸出兩組各192個13×13的特征圖。
第四層卷積,對兩組輸入特征圖分別用192個3×3×192的卷積核做卷積運算。
第五層卷積,對兩組輸入特征圖分別用128個3×3×192的卷積核做卷積運算。第五層卷積之后,做步長為2、池化窗口為3×3的最大池化,池化輸出的特征圖大小為6×6。
第六層和第七層的全連接層都有兩組神經(jīng)元(每組2048個神經(jīng)元)。
第八層的全連接層輸出1000種特征并送到softmax中,softmax輸出分類的概率。
AlexNet 技術(shù)創(chuàng)新點
相較于傳統(tǒng)人工神經(jīng)網(wǎng)絡(luò)而言,AlexNet的技術(shù)創(chuàng)新體現(xiàn)在四個方面。
其一為Dropout(隨機失活)。Dropout于2012年由G. Hinton等人提出。該方法通過隨機舍棄部分隱層節(jié)點來緩解過擬合。目前,Dropout已經(jīng)成為深度學習訓練常用的技巧之一。
使用Dropout進行模型訓練的過程為:a. 以一定概率隨機舍棄部分隱層神經(jīng)元,即將這些神經(jīng)元的輸出設(shè)置為0;b.一小批訓練樣本經(jīng)過正向傳播后,在反向傳播更新權(quán)重時不更新其中與被舍棄神經(jīng)元相連的權(quán)重;c. 恢復被刪除神經(jīng)元,并輸入另一小批訓練樣本;d. 重復步驟a ~ c ,直到處理完所有訓練樣本。
其二為LRN(局部響應(yīng)歸一化)。LRN對同一層的多個輸入特征圖在每個位置上做局部歸一化,從而提升高響應(yīng)特征并抑制低響應(yīng)特征。LRN的輸入是卷積層輸出特征圖經(jīng)過ReLU激活函數(shù)后的輸出。但近年來業(yè)界發(fā)現(xiàn)LRN層作用有限,因此目前使用LRN的研究并不多。
其三是Max Pooling(最大池化)。最大池化可以避免特征被平均池化模糊,從而提高特征的魯棒性。在AlexNet之前,很多研究用平均池化;從AlexNet開始,業(yè)界公認最大池化的效果比較好。
其四是ReLU激活函數(shù)。在AlexNet之前,常用的激活函數(shù)是sigmoid和tanh。而ReLU函數(shù)很簡單,我們在之前的開小灶中為大家講解過ReLU激活函數(shù)的特征,即輸入小于0時輸出0,輸入大于0時輸出等于輸入??此品浅:唵蔚腞eLU函數(shù)卻在訓練時帶來了非常好的效果,這是業(yè)界在AlexNet之前未曾料想到的。AlexNet在卷積層和全連接層的輸出均使用ReLU激活函數(shù),從而有效提高訓練時的收斂速度。
AlexNet通過把看似平凡的技術(shù)組合起來取得了驚人的顯著效果。
正是由于AlexNet采用了深層神經(jīng)網(wǎng)絡(luò)的訓練思路,并輔以ReLU函數(shù)、Dropout及數(shù)據(jù)擴充等操作,使得圖像識別真正走向了與深度學習結(jié)合發(fā)展的方向。
原文標題:基于卷積神經(jīng)網(wǎng)絡(luò)的圖像分類算法講解
文章出處:【微信公眾號:機器視覺智能檢測】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
審核編輯:湯梓紅
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4771瀏覽量
100772 -
算法
+關(guān)注
關(guān)注
23文章
4612瀏覽量
92900
原文標題:基于卷積神經(jīng)網(wǎng)絡(luò)的圖像分類算法講解
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論