譚潔帆,朱 焱,陳同孝,張真誠
(1.西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院,成都 611756; 2.臺(tái)中科技大學(xué) 資訊工程系,臺(tái)灣 臺(tái)中 404;3.逢甲大學(xué) 資訊工程系,臺(tái)灣 臺(tái)中407)(*通信作者電子郵箱yzhu@swjtu.edu.cn)
隨著網(wǎng)絡(luò)多媒體數(shù)據(jù)的日益增多,計(jì)算機(jī)圖像數(shù)據(jù)的分類已經(jīng)成為了近年來的一個(gè)研究熱點(diǎn)。然而,在某些領(lǐng)域數(shù)據(jù)的類別分布是不平衡的,采用傳統(tǒng)分類方法存在兩個(gè)問題:1)不同類別的誤分代價(jià)通常差別巨大。例如:醫(yī)院腫瘤病患的診斷,警局犯罪分子的人像追蹤和垃圾網(wǎng)頁的圖像識(shí)別等,在這些數(shù)據(jù)集中,少數(shù)類的識(shí)別更加地重要。少數(shù)類如果分類錯(cuò)誤可能導(dǎo)致病人得不到及時(shí)治療死亡,犯罪分子逃脫或者計(jì)算機(jī)重要資料泄露等嚴(yán)重的后果。然而傳統(tǒng)分類算法中,假設(shè)所有的誤分代價(jià)相等。2)當(dāng)少數(shù)類在數(shù)據(jù)集中的占比少于1%時(shí),即便是將所有樣本都分到多數(shù)類,總的分類正確率仍然大于99%,但是少數(shù)類的分類正確率為0。這說明了,傳統(tǒng)的分類方法雖然有很高的多數(shù)類識(shí)別率,但少數(shù)類的識(shí)別率有可能卻很低。
針對(duì)以上兩個(gè)問題,出現(xiàn)了代價(jià)敏感學(xué)習(xí)方法,目前主要包括兩種解決方案:一種是重構(gòu)數(shù)據(jù)集[1],包括閾值移動(dòng)法、采樣法和樣本加權(quán)法[2];第二種方法是通過改進(jìn)分類器模型的內(nèi)部結(jié)構(gòu),使其成為基于最小代價(jià)為目標(biāo)的代價(jià)敏感分類器。在傳統(tǒng)分類算法中引入代價(jià)因子,對(duì)少數(shù)類賦予較高的代價(jià),多數(shù)類賦予較小的代價(jià),以此來平衡樣本之間的數(shù)目差異[1]。
目前公開的數(shù)據(jù)集(例如Web Spam UK- 2006/UK- 2007),樣本特征是由大量人工選擇或判斷產(chǎn)生,創(chuàng)建過程主觀而且非常費(fèi)時(shí)費(fèi)力需要專業(yè)知識(shí)的輔助。近年新興的深度學(xué)習(xí)方法通過多層神經(jīng)網(wǎng)絡(luò)的多次迭代訓(xùn)練可以自動(dòng)學(xué)習(xí)數(shù)據(jù)的特征,很好地解決了上述問題。近年來,深度學(xué)習(xí)模型在提取圖像高層特征方面有著重要的突破?;趯哟位卣鲗W(xué)習(xí)的深度學(xué)習(xí)模型在各種圖像分類、識(shí)別、檢索領(lǐng)域都得到了廣泛的應(yīng)用,并且也取得了不錯(cuò)的性能。Krizhevsky等[3]提出深度卷積神經(jīng)網(wǎng)絡(luò),在大規(guī)模數(shù)據(jù)集ImageNet上取得了非常顯著的效果并證明了該模型在大型圖像數(shù)據(jù)集上進(jìn)行分類的潛力。Yan等[4]將卷積神經(jīng)網(wǎng)絡(luò)和bootstraping結(jié)合,解決了數(shù)據(jù)集不平衡的問題,在視頻檢索國際權(quán)威評(píng)測(TREC Video Retrieval Evaluation, TRECVID)2011 benchmark數(shù)據(jù)集上對(duì)視屏截圖進(jìn)行識(shí)別,取得了不錯(cuò)的效果。Chung等[5]提出了將代價(jià)信息應(yīng)用在深度學(xué)習(xí)預(yù)訓(xùn)練階段的方法,將深度學(xué)習(xí)與代價(jià)敏感的分類結(jié)合,實(shí)驗(yàn)得到了較好的效果。深度學(xué)習(xí)模型在學(xué)習(xí)圖像特征描述能力上顯示了強(qiáng)大的潛力,采用無監(jiān)督方式學(xué)習(xí)得到的層次特征描述,相比人工選取的特征更具有競爭力,提取的特征不僅表達(dá)能力強(qiáng),分類效率高,而且避免了人工費(fèi)時(shí)費(fèi)力的特征提取過程。
本文結(jié)合深度學(xué)習(xí)和代價(jià)敏感學(xué)習(xí)建立分類模型,旨在解決不平衡的圖像分類問題。提出了一種三元采樣結(jié)合卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)算法,應(yīng)用該算法自動(dòng)學(xué)習(xí)圖像數(shù)據(jù)的深層特征并重構(gòu)不平衡數(shù)據(jù)集,再使用代價(jià)敏感的支持向量機(jī)(Support Vector Machine, SVM)對(duì)學(xué)習(xí)到的特征進(jìn)行分類,期望得到代價(jià)最小的分類結(jié)果。
Triplet loss是Schroff等[6]提出的一種新的基于度量學(xué)習(xí)的誤差公式。它將圖像特征映射到歐幾里得空間,定義了同類樣本與異類樣本間的距離關(guān)系,即在歐氏空間中,兩張圖片的距離越近,則說明它們的相似度越高。通過Triplet loss,卷積神經(jīng)網(wǎng)絡(luò)每次學(xué)習(xí)到的特征使同類樣本的距離越來越近,同時(shí)使異類樣本的距離越來越遠(yuǎn)。
(1)
對(duì)應(yīng)的目標(biāo)函數(shù)為:
(2)
式(2)中,+表示當(dāng)[]中的值大于零時(shí),損失為該值,小于零時(shí),損失為零。根據(jù)目標(biāo)函數(shù),當(dāng)xa與xn的特征表達(dá)之間的距離小于xa與xp的特征表達(dá)之間的距離加α?xí)r,[]內(nèi)的值大于零,就會(huì)產(chǎn)生損失;反之損失為零。當(dāng)損失不為零時(shí),通過反向傳播算法來調(diào)節(jié)整個(gè)網(wǎng)絡(luò),優(yōu)化特征提取模型。
圖1 三元損失學(xué)習(xí)示意圖[6]
傳統(tǒng)的圖像分類中主要使用人工選擇的特征或是簡單提取的顏色、紋理等淺層特征,具有主觀性。卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)可以通過多次訓(xùn)練學(xué)習(xí)得到圖像更具代表性的特征,Triplet loss替代了傳統(tǒng)CNN中的softmax層,使用三元組計(jì)算距離的方式來優(yōu)化網(wǎng)絡(luò),學(xué)習(xí)到的圖像特征更加緊致;但是三元組的構(gòu)建十分重要,否則神經(jīng)網(wǎng)絡(luò)收斂很慢,并且該方法主要針對(duì)平衡數(shù)據(jù),并未對(duì)數(shù)據(jù)不平衡的情況作處理。
SVM是Vapnik根據(jù)統(tǒng)計(jì)學(xué)習(xí)理論提出的一種新的學(xué)習(xí)方法,它的最大特點(diǎn)是根據(jù)結(jié)構(gòu)風(fēng)險(xiǎn)最小化準(zhǔn)則,以最大化分類間隔構(gòu)造最優(yōu)分類超平面來提高學(xué)習(xí)機(jī)的泛化能力。對(duì)于分類問題,SVM在特征空間中找到一個(gè)超平面盡可能多地將兩類樣本正確地分開。假定有訓(xùn)練集RN={(xi,yi)}i=1,2,…,n超平面為(wT·x)+b=0,w∈RN,b∈R。SVM問題可以簡化為求max (2/‖w‖),即求‖w‖的最小值。公式表達(dá)為:
(3)
s.t.yi(wTxi+b)≥1;i=1,2,…,l
因?yàn)橛?xùn)練數(shù)據(jù)通常是線性不可分的,引入了松弛變量δi和懲罰系數(shù)C。針對(duì)不平衡數(shù)據(jù),代價(jià)敏感的支持向量機(jī)(Cost-Sensitive Support Vector Machine, CSSVM)是在傳統(tǒng)算法基礎(chǔ)之上引入了針對(duì)各類別不同的懲罰系數(shù),Cp和Cn分別是正類和負(fù)類樣本的代價(jià)因子[7]。此時(shí)SVM問題用公式表達(dá)為:
(4)
s.t.yi(wTxi+b)≥1-δi;i=1,2,…,l
式(4)中,不同類別的代價(jià)因子Cp和Cn通常是根據(jù)領(lǐng)域知識(shí)得到的。但是在具體應(yīng)用中,很難得到代價(jià)因子的精確值。Liu等[8]提出了代價(jià)區(qū)間敏感的支持向量機(jī)(Cost-Interval Sensitive Support Vector Machine, CISVM)方法,基于不同類別的代價(jià)區(qū)間來處理不平衡分類,避免了需要獲得精確值的問題并取得了不錯(cuò)的效果。
為了解決不平衡的圖像分類問題,本文提出了一個(gè)基于Triplet-sampling的卷積神經(jīng)網(wǎng)絡(luò)(Triplet-sampling CNN)和代價(jià)敏感支持向量機(jī)(CSSVM)的不平衡圖像分類方法——Triplet-CSSVM(imbalanced image classification approach based on Triplet-sampling CNN and CSSVM)模型,如圖2。本文將整個(gè)分類過程分為兩個(gè)部分:第一部分使用Triplet-sampling CNN,通過目標(biāo)函數(shù)為Triplet loss的卷積神經(jīng)網(wǎng)絡(luò)對(duì)圖像進(jìn)行特征學(xué)習(xí),在該過程中結(jié)合了采樣方法重構(gòu)數(shù)據(jù)集(算法1)。訓(xùn)練得到特征學(xué)習(xí)模型,使用該模型提取訓(xùn)練集中每張圖片的特征,作為第二部分的輸入。第二部分應(yīng)用CSSVM進(jìn)行代價(jià)敏感分類。
圖2 Triplet-CSSVM模型
算法1 Triplet-sampling CNN。
輸入:不平衡圖像數(shù)據(jù)集。
輸出:特征學(xué)習(xí)模型f(x)。
1)使用目標(biāo)函數(shù)為softmax的CNN進(jìn)行預(yù)訓(xùn)練,初始化CNN中的各權(quán)值參數(shù)。
2)去掉CNN中的softmax層,加入Triplet-sampling層。
3)迭代訓(xùn)練神經(jīng)網(wǎng)絡(luò):
a)從少數(shù)類和多數(shù)類樣本中隨機(jī)產(chǎn)生相同數(shù)量的三元組;
b)映射樣本數(shù)據(jù)x的特征表達(dá)f(x)到歐氏空間;
c)對(duì)樣本的特征表達(dá)進(jìn)行歸一化;
d)使用式(2)對(duì)特征表達(dá)f(x)進(jìn)行優(yōu)化。
4)停止迭代,得到最終的f(x)。
前文介紹了的Triplet loss CNN方法是在圖像數(shù)據(jù)平衡時(shí)的特征學(xué)習(xí)方法。盡管在數(shù)據(jù)集很小的情況下,可以得到大量的三元組,但如果三元組構(gòu)建不合適,神經(jīng)網(wǎng)絡(luò)收斂十分緩慢。圖1中三元組的Anchor是隨機(jī)得到的一個(gè)樣本,當(dāng)數(shù)據(jù)集不平衡時(shí),隨機(jī)的三元組也是不平衡的。Sampling方法是不平衡分類中常用的一種重構(gòu)數(shù)據(jù)集的方法,因此針對(duì)不平衡數(shù)據(jù),算法1中采用的策略是分類別隨機(jī)選取Anchor,即在多數(shù)類中隨機(jī)選擇一定數(shù)量的Anchor得到三元組后,在少數(shù)類中隨機(jī)采樣相等數(shù)量的Anchor得到新的三元組。例如,如果在一組訓(xùn)練數(shù)據(jù)中,希望得到10個(gè)三元組,在多數(shù)類中隨機(jī)選擇5個(gè)Anchor,得到相應(yīng)三元組,再在少數(shù)類中隨機(jī)選擇到5個(gè)Anchor得到相應(yīng)的三元組。這樣訓(xùn)練數(shù)據(jù)達(dá)到了類別分布平衡。為了減少訓(xùn)練時(shí)間,根據(jù)本文去掉了式(2)中的α[6],因此目標(biāo)公式變?yōu)椋?/p>
(5)
算法1中,第1步對(duì)目標(biāo)函數(shù)為softmax的CNN進(jìn)行預(yù)訓(xùn)練,由于Triplet-sampling CNN訓(xùn)練的復(fù)雜度高,收斂速度慢,從頭開始訓(xùn)練耗費(fèi)時(shí)間長,代價(jià)高。根據(jù)遷移學(xué)習(xí)的思想,使用經(jīng)典的CNN對(duì)ImageNet上的大的數(shù)據(jù)集進(jìn)行預(yù)訓(xùn)練,這樣做的原因在于預(yù)訓(xùn)練的網(wǎng)絡(luò)前幾層一般是通用的特征(比如邊緣提取器),而網(wǎng)絡(luò)的后幾層則是與數(shù)據(jù)集和分類任務(wù)相關(guān)的,因而在給定新的數(shù)據(jù)集和分類任務(wù)時(shí)可以僅調(diào)整后面幾層。建設(shè)了各權(quán)值初始化后的CNN后,再根據(jù)式(5)對(duì)網(wǎng)絡(luò)進(jìn)行微調(diào),可以節(jié)約大量的時(shí)間和資源。
經(jīng)典的CNN使用softmax作為目標(biāo)函數(shù),產(chǎn)生的特征維數(shù)很大,通常大于1 000維。例如AlexNet,全連接層fc7產(chǎn)生的特征有4 096維;但Triplet-sampling CNN產(chǎn)生的特征維數(shù)只有512,大幅度減輕了分類器的負(fù)擔(dān)。
CSSVM直接對(duì)式(4)所表示的優(yōu)化問題進(jìn)行求解,其中,應(yīng)提供代價(jià)因子Cp、Cn的具體值。本文采用了Wang等[9]定義的代價(jià)模型。該模型將正確分類的代價(jià)定義為0,即:Cost(1,1)=Cost(0,0)=0,1表示正類,0表示負(fù)類,括號(hào)中兩數(shù)相同代表分類正確。少數(shù)類的代價(jià)因子取決于不平衡的比例:
(6)
其中yi代表樣本i的類別。例如,多數(shù)類的樣本數(shù)為n=90,少數(shù)類的樣本數(shù)為p=10,根據(jù)式(6)少數(shù)類的代價(jià)因子則為Cp=90/10=9。該方法定義多數(shù)類代價(jià)因子Cn=1。
本文提出的不平衡圖像分類模型集成了深度學(xué)習(xí)和代價(jià)敏感學(xué)習(xí)方法。通過設(shè)計(jì)實(shí)驗(yàn)比較經(jīng)典CNN和傳統(tǒng)SVM方法,驗(yàn)證本文方法提升了檢測性能。所有的實(shí)驗(yàn)都在著名深度學(xué)習(xí)框架Caffe[10]上進(jìn)行,實(shí)驗(yàn)平臺(tái)為GeForce GTX 960。由于設(shè)備限制,CNN配置文件中的batch_size設(shè)置為6,網(wǎng)絡(luò)迭代次數(shù)為400 000。
實(shí)驗(yàn)數(shù)據(jù)為人臉數(shù)據(jù)集FaceScrub,該數(shù)據(jù)集包含530人超過100 000張正面圖像(圖3)。數(shù)據(jù)集的原始分布是平衡的且各類別代價(jià)因子相等。本文實(shí)驗(yàn)進(jìn)行了不平衡設(shè)計(jì),選擇兩類圖像進(jìn)行二分類,兩類數(shù)據(jù)的比例調(diào)整為1∶3。本文中少數(shù)類是正類,多數(shù)類是負(fù)類。
圖3 人臉圖像實(shí)例
實(shí)驗(yàn)采用三種分類評(píng)價(jià)指標(biāo):Precision(檢測的精確率)、Recall(召回率)、F-Score(Precision和Recall的調(diào)和均值)。評(píng)價(jià)指標(biāo)均基于實(shí)驗(yàn)結(jié)果的混淆矩陣計(jì)算,如表1所示。
表1 混淆矩陣[11]
在相同數(shù)據(jù)集上本文進(jìn)行了4組實(shí)驗(yàn),分別是:1)經(jīng)典VGGNet(Visual Geometry Group-Net)[12]結(jié)合傳統(tǒng)SVM分類——VGGNet-SVM(Visual Geometry Group Net-Support Vector Machine);2)經(jīng)典VGGNet結(jié)合CSSVM分類(VGGNet-CSSVM);3)Triplet-sampling CNN結(jié)合傳統(tǒng)SVM(Triplet-SVM);4)Triplet-CSSVM(本文方法)。實(shí)驗(yàn)結(jié)果如表2所示。
表2 實(shí)驗(yàn)結(jié)果比較(少數(shù)類)
結(jié)果表明,使用經(jīng)典VGGNet結(jié)合傳統(tǒng)SVM方法時(shí),分類性能最低。當(dāng)分類方法相同時(shí)(1,3/2,4),Triplet-sampling CNN的學(xué)習(xí)效果明顯優(yōu)于VGGNet。本文方法在Recall一項(xiàng)達(dá)到了0.93,比VGGNet-SVM提高了71個(gè)百分點(diǎn),說明本文方法在少數(shù)類的查全率上優(yōu)勝其他所有方法。
為了驗(yàn)證Triplet-sampling CNN 和CSSVM在不平衡圖像分類的作用。本文在類別比例為1∶3的圖像數(shù)據(jù)上進(jìn)行了特征學(xué)習(xí),然后在類別比為1∶1、1∶3、1∶6以及1∶9的圖像數(shù)據(jù)上使用上一步得到的特征學(xué)習(xí)模型提取圖像特征,再進(jìn)行代價(jià)敏感分類。表3為實(shí)驗(yàn)結(jié)果。
表3 不同不平衡比例下的CSSVM分類結(jié)果
實(shí)驗(yàn)結(jié)果顯示,當(dāng)Triplet-sampling CNN的訓(xùn)練集比例為1∶3時(shí),CSSVM能得到最佳分類效果的兩類數(shù)據(jù)的不平衡比例也是1∶3,即模型中兩部分訓(xùn)練的圖像數(shù)據(jù)集不平衡率相同時(shí),分類效果最好,證明了CSSVM對(duì)不平衡分類的有效性。當(dāng)CSSVM分類的兩類數(shù)據(jù)的不平衡比例為1∶3時(shí),少數(shù)類F-Score比1∶1的情況下提高了15個(gè)百分點(diǎn),這是由于特征提取模型是在1∶3的訓(xùn)練集上學(xué)習(xí)得到的,即在特征提取過程中,Triplet-sampling起到了作用,使通過該模型提取的特征根據(jù)1∶3的類別比進(jìn)行了采樣,導(dǎo)致1∶1比例下的數(shù)據(jù)提取到的特征反而不如1∶3比例下的數(shù)據(jù)提取到的特征平衡,所以其分類結(jié)果劣于1∶3。
本文提出了集成Triplet-sampling CNN和CSSVM(Triplet-CSSVM)的模型來解決圖像數(shù)據(jù)不平衡的分類問題。Triplet-CSSVM將不平衡處理過程分為兩部分,特征學(xué)習(xí)部分重構(gòu)數(shù)據(jù)集分布,在分類部分突出少數(shù)類的重要性。與傳統(tǒng)方法比較,得到更加優(yōu)秀的分類效果。在醫(yī)療診斷和犯罪識(shí)別等數(shù)據(jù)極度不平衡的領(lǐng)域可以得到廣泛的應(yīng)用。由于分類采用SVM方法,在后續(xù)的研究中,可以探究是否可以應(yīng)用深度學(xué)習(xí)同時(shí)特征學(xué)習(xí)和分類兩個(gè)問題。