本發(fā)明涉及計算機(jī)視覺領(lǐng)域和深度學(xué)習(xí)領(lǐng)域,特別涉及一種面向圖像分類的深度卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)化方法,屬于基于深度學(xué)習(xí)的計算機(jī)視覺領(lǐng)域。
背景技術(shù):
以卷積神經(jīng)網(wǎng)絡(luò)為代表的深度學(xué)習(xí)技術(shù)近些年來已經(jīng)在很多方面取得了重大突破,特別是在計算機(jī)視覺領(lǐng)域,如圖像分類,目標(biāo)檢索等,都取得了很好的效果。
圖像分類指利用計算機(jī)的特征表達(dá)來模擬人類對圖像的理解,自動將圖像按照人類的理解方式劃分到不同的語義空間。在圖像分類任務(wù)中,為了獲得更高的分類精度,需要對圖像提取不同層次的特征信息。目前,圖像分類研究領(lǐng)域仍然存在一個巨大挑戰(zhàn),即由機(jī)器表達(dá)出來的底層圖像特征和人類所感知的高層語義信息之間存在一個“語義鴻溝”,這個“語義鴻溝”往往會影響最后的分類效果。而卷積神經(jīng)網(wǎng)絡(luò)對高層語義特征的強(qiáng)大表達(dá)能力,能夠很好的縮小這個“語義鴻溝”。
技術(shù)實(shí)現(xiàn)要素:
為了解決現(xiàn)有技術(shù)存在的語義鴻溝及分類準(zhǔn)確率不高的問題,本發(fā)明提供一種有效縮小語義鴻溝、分類準(zhǔn)確性較高的面向圖像分類的深度卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)化方法。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:
一種面向圖像分類的深度卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)化方法,包括以下步驟;
步驟一、構(gòu)建圖像分類卷積神經(jīng)網(wǎng)絡(luò),過程如下:
步驟1.1:該網(wǎng)絡(luò)由五個卷積層、三個池化層和三個全連接層,和一個softmax層組成;
步驟1.2:池化層用最大值-均值池化方式,將卷積層的輸出分別用最大值、均值池化方式先處理,再將最大值和均值池化后的輸出用eltwise函數(shù),采用總和操作輸出;
步驟1.3:在全連接層采用maxout激活函數(shù),把fc-6層和fc-7層的輸出后接slice函數(shù)隨機(jī)將輸出分為兩個部分;
步驟1.4:在slice層后接eltwise函數(shù),采用最大值輸出操作,通過步驟1.3和1.4實(shí)現(xiàn)全連接層的maxout激活;
步驟1.5:在全連接層的fc-7和fc-8層之間增加一個新的隱層h,隱層h是一個全連接層,其神經(jīng)元的活動由后續(xù)的網(wǎng)絡(luò)層的語義編碼和分類調(diào)節(jié);
步驟1.6:隱層h后接一個sigmoid激活函數(shù)來控制隱層神經(jīng)元的活動,把輸出控制為{0,1};
步驟二、訓(xùn)練圖像分類卷積神經(jīng)網(wǎng)絡(luò),過程如下:
步驟2.1:在網(wǎng)絡(luò)的輸入層對輸入的圖像進(jìn)行隨機(jī)裁剪,并將裁剪后的圖像和裁剪旋轉(zhuǎn)180度后的圖像一起輸入上述網(wǎng)絡(luò)模型中;
步驟2.2:計算訓(xùn)練數(shù)據(jù)集的均值文件;
步驟2.3:采用預(yù)訓(xùn)練網(wǎng)絡(luò)模型的方式,即用在imagenet數(shù)據(jù)集上預(yù)訓(xùn)練好alexnet的權(quán)值來初始化網(wǎng)絡(luò),并對隱層和輸出層的權(quán)值采用隨機(jī)初始化的方式;
步驟2.4:向初始化后的網(wǎng)絡(luò)模型中輸入訓(xùn)練樣本和標(biāo)簽,通過反向傳播算法在目標(biāo)數(shù)據(jù)集上微調(diào)網(wǎng)絡(luò)參數(shù),使損失函數(shù)值最小;
步驟三、測試圖像分類卷積神經(jīng)網(wǎng)絡(luò),過程如下:
將預(yù)處理好的測試數(shù)據(jù)集送入訓(xùn)練好的網(wǎng)絡(luò)模型,網(wǎng)絡(luò)的accuracy層根據(jù)softmax層輸出的概率值以及輸入層的標(biāo)簽值輸出一個精確度值,即測試圖像被正確分類的概率;
經(jīng)過上述步驟的操作,即可實(shí)現(xiàn)面向圖像分類的深度卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)化。
本發(fā)明的效果和益處是:本發(fā)明提出了一種面向圖像分類的深度卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)化方法,通過在卷積層使用最大-均值池化方式和在全連接層采用maxout激活函數(shù),能夠?qū)W習(xí)精確特征表達(dá)。并且隱層的二值哈希編碼使網(wǎng)絡(luò)能夠?qū)W習(xí)高效二值哈希編碼,減少計算開銷。
附圖說明
圖1是一種面向圖像分類的深度卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)化方法的示意圖。
具體實(shí)施方式
為了更好的說明本發(fā)明的技術(shù)方案,下面結(jié)合附圖,通過1個實(shí)施例,對本發(fā)明做進(jìn)一步說明。
參照圖1,一種面向圖像分類的深度卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)化方法,包括構(gòu)建、訓(xùn)練和測試三個過程。
本實(shí)施案例中的圖片分為100類,每類圖片有600張。在每類圖片中隨機(jī)挑選500張圖片用于訓(xùn)練,剩余100張圖片用于測試。一種面向圖像分類的深度卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)化方法,其結(jié)構(gòu)框架如圖1所示,操作步驟包括網(wǎng)絡(luò)構(gòu)建,訓(xùn)練和測試,具體如下:
步驟一、構(gòu)建圖像分類卷積神經(jīng)網(wǎng)絡(luò),如圖1所示:
步驟1.1:該網(wǎng)絡(luò)的基本框架由五個卷積層、三個池化層、三個全連接層、一個隱層和一個softmax層組成。每層由多個二維平面組成,每個平面包含多個獨(dú)立神經(jīng)元。前兩個卷積層后relu激活、歸一化和池化操作,后兩個卷積層后跟relu激活,最后一個卷積層后跟relu激活、池化操作。全連接層fc6和fc7后跟relu激活、dropout稀疏操作。全連接層fc8后跟softmax線性分類器,輸出分類圖像屬于某一類別的概率。
步驟1.2:三個池化層用最大值-均值池化方式。即將卷積層的輸出分別用最大值、均值池化處理。兩種方式的池化操作核大小為3,偏移量為2,邊緣填充為1。輸出最大池化值和平均池化值。再將最大池化值和平均池化值作為eltwise函數(shù)的輸入,采用總和操作輸出總池化值。
步驟1.3:在全連接層采用maxout激活函數(shù)。即把fc-6層和fc-7層的輸出后接slice函數(shù)隨機(jī)將輸出分為兩個部分:slice1、slice2和slice3、slice4。
步驟1.4:在slice層后接eltwise函數(shù),采用最大值操作方式輸出slice1和slice2兩個輸入中的最大值以及slice3和slice4兩個輸入中的最大值。通過步驟1.3和1.4實(shí)現(xiàn)全連接層的maxout激活。
步驟1.5:在全連接層的fc-7和fc-8層之間增加一個新的隱層h,設(shè)定隱層神經(jīng)元個數(shù)n=128。隱層的其他設(shè)計和其他全連接層相同。
步驟1.6:隱層h后接一個sigmoid激活函數(shù)來控制隱層神經(jīng)元的活動,把128維的輸出控制為{0,1}。
步驟1.7:fc-8層輸出節(jié)點(diǎn)數(shù)設(shè)定為100。
圖像分類卷積神經(jīng)網(wǎng)絡(luò)參數(shù)如表1所示。
表1
步驟二、訓(xùn)練圖像分類卷積神經(jīng)網(wǎng)絡(luò),過程如下:
步驟2.1:對256*256的輸入圖像隨機(jī)裁剪到227*227大小,并將裁剪后的圖像和裁剪旋轉(zhuǎn)180度后的圖像一起輸入網(wǎng)絡(luò)。
步驟2.2:計算訓(xùn)練數(shù)據(jù)集的均值文件,保存為.binaryproto格式的文件,并在網(wǎng)絡(luò)的輸入層指定均值文件的位置。
步驟2.3:采用預(yù)訓(xùn)練網(wǎng)絡(luò)模型的方式,用在imagenet數(shù)據(jù)集上預(yù)訓(xùn)練好alexnet的權(quán)值來初始化網(wǎng)絡(luò),并對隱層和輸出層的權(quán)值采用隨機(jī)初始化的方式。
步驟2.4:向初始化后的網(wǎng)絡(luò)中輸入訓(xùn)練樣本和標(biāo)簽,計算輸入的softmax損失值,通過反向傳播算法在cifar100數(shù)據(jù)集上微調(diào)網(wǎng)絡(luò)參數(shù),最小化損失函數(shù)值。
步驟2.5:設(shè)定批處理數(shù)據(jù)大小為64,初始學(xué)習(xí)率0.001,最大迭代次數(shù)50000次,迭代25000次的時候?qū)W習(xí)率乘以0.1,并采用隨機(jī)梯度下降法訓(xùn)練數(shù)據(jù)。設(shè)定迭代10000次保存一次網(wǎng)絡(luò)模型。
步驟2.6:一次訓(xùn)練完成之后,將最終保存的網(wǎng)絡(luò)模型作為預(yù)訓(xùn)練模型,將初始學(xué)習(xí)率乘以0.1,重新訓(xùn)練網(wǎng)絡(luò),直到損失函數(shù)基本不再變化。保留最終的網(wǎng)絡(luò)模型作為最終結(jié)果。
步驟三、測試圖像分類卷積神經(jīng)網(wǎng)絡(luò),過程如下:
將預(yù)處理好的測試數(shù)據(jù)集送入訓(xùn)練好的網(wǎng)絡(luò)模型,網(wǎng)絡(luò)輸出測試圖像被正確分類的概率;
經(jīng)過上述步驟的操作,即可實(shí)現(xiàn)面向圖像分類的深度卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)化。
以上所述的具體描述,對發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施例,用于解釋本發(fā)明,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。