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