




摘 要:卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)被廣泛用于圖像分類任務(wù)中。大多數(shù)現(xiàn)有的CNN模型都按照N路分類器的形式訓(xùn)練。然而,不同類別之間總存在差異性限制了N路分類器的分類能力。為了解決上述問題,提出的神經(jīng)網(wǎng)絡(luò)模型將混淆樹結(jié)構(gòu)(confusion tree,CT)和CNN模型結(jié)合,設(shè)計(jì)了性能更強(qiáng)的基于混淆樹的卷積神經(jīng)網(wǎng)絡(luò)模型(confusion tree CNN,CT-CNN)。該模型首先建立一個(gè)混淆樹來對(duì)類別之間的混淆性進(jìn)行建模;然后,將混淆樹的分層結(jié)構(gòu)嵌入到CNN模型中,通過這種方式可以引導(dǎo)CNN的訓(xùn)練過程更加關(guān)注混淆性強(qiáng)的類別集合。該模型在公共數(shù)據(jù)集上進(jìn)行了評(píng)估,實(shí)驗(yàn)結(jié)果證明,CT-CNN能克服大規(guī)模數(shù)據(jù)類別間的分類難度分布不均勻的局限,在復(fù)雜大規(guī)模的分類任務(wù)中取得穩(wěn)定的優(yōu)秀表現(xiàn)。
關(guān)鍵詞:深度學(xué)習(xí);社區(qū)發(fā)現(xiàn);圖像分類;混淆圖
中圖分類號(hào):TP183 文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1001-3695(2022)03-051-0938-05
doi:10.19734/j.issn.1001-3695.2021.07.0308
基金項(xiàng)目:國(guó)家自然科學(xué)基金資助項(xiàng)目
作者簡(jiǎn)介:劉運(yùn)韜(1994-),男,陜西西安人,博士研究生,主要研究方向?yàn)槿斯ぶ悄埽焕顪Y(1987-),男,山西永濟(jì)人,助理研究員,博士,主要研究方向?yàn)槿斯ぶ悄埽粍⑦d韻(1989-),男(通信作者),湖南婁底人,助理研究員,博士,主要研究方向?yàn)榉植际接?jì)算(xunyunliu@outlook.com).
CT-CNN:overlapping confusion tree based convolutional neural network
Liu Yuntao1,2,Li Yuan2,Liu Xunyun2?
(1.Dept.of Computer Science,National University of Defense Technology,Changsha 410073,China;2.Institute of War,Academy of Military Science,Beijing 100097,China)
Abstract:CNN(convolutional neural network) is widely used in image classification tasks.Most existing CNN-based classification models are trained as flat N-way classifiers.However,the difference among different image categories limits the capacity of the classifier.To solve the problem,this paper proposed CT-CNN(confusion tree convolutional neural network) model which combined the CT with CNN.CT-CNN first established a CT to identify the confused categories.Then it embedded the hierarchical structure of CT into CNN model,which leaded the CNN training procedure to pay more attention on strongly confused categories.Experiments on public datasets prove that CT-CNN can overcome the limitation of uneven distribution of classification difficulty between categories of large-scale datasets and achieve better performance on complex large-scale image classification tasks.
Key words:deep learning;community detection;image classification;confusion graph
0 引言
深度卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)模型非常適用于大規(guī)模的圖像分類任務(wù),其性能優(yōu)于其他任何傳統(tǒng)方法[1,2]。
隨著分類技術(shù)的進(jìn)步,用于分類的數(shù)據(jù)集構(gòu)建技術(shù)取得了極大的發(fā)展,這使得數(shù)據(jù)集規(guī)模變得越來越大,用于分類的類別數(shù)量也越來越多,因此數(shù)據(jù)集上的分類任務(wù)也變得越來越難[3]。這其中一個(gè)困難是如何區(qū)分具有高視覺相似度的類別[4]。圖像數(shù)據(jù)集是真實(shí)世界中物體的子集,因此,視覺相似性,也就是本文說的“混淆性”,是指人類所看到的某些物體在外觀、特征等方面有共同點(diǎn),是類似的。因此,視覺相似性,即本文所關(guān)注的“混淆性”,既存在于數(shù)據(jù)集中,也存在于現(xiàn)實(shí)世界中,文獻(xiàn)[5]也是如此。
現(xiàn)有的深度卷積神經(jīng)網(wǎng)絡(luò)(CNN)都按照N路分類器的形式訓(xùn)練[6],這意味著深度卷積神經(jīng)網(wǎng)絡(luò)對(duì)弱混淆的類別集合的分類任務(wù)和強(qiáng)混淆的類別結(jié)合的分類任務(wù)一視同仁。然而,很顯然,強(qiáng)混淆的類別集合上的分類任務(wù)的難度要比弱混淆的類別結(jié)合大[7]。因此,強(qiáng)混淆和弱混淆的兩種類別集合上的分類任務(wù)的難度分布不平衡與分類模型對(duì)這些不同難度任務(wù)的一視同仁的方式產(chǎn)生了不匹配,從而使普通的卷積神經(jīng)網(wǎng)絡(luò)模型的分類性能遇到了瓶頸。
一些傳統(tǒng)的方法[7,8]被提出來解決分類模型面對(duì)不同混淆程度的類別集合的分類任務(wù)所帶來的問題。這些傳統(tǒng)的方法將混淆程度較弱的類別集合放在樹狀結(jié)構(gòu)的低層,將混淆程度較強(qiáng)的類別集合放在高層。這樣做的好處是,一方面弱混淆的類別集合之間很容易被區(qū)分,所以樹狀分類器可以快速有效地完成這種分類任務(wù);另一方面,樹狀分類器就可以花更多的精力關(guān)注大規(guī)模分類任務(wù)中最困難的部分——強(qiáng)混淆類別集合的分類任務(wù)[9]。
考慮到樹狀結(jié)構(gòu)分類器的特點(diǎn)和卷積神經(jīng)網(wǎng)絡(luò)的強(qiáng)勁性能,本文將卷積神經(jīng)網(wǎng)絡(luò)模型與樹狀結(jié)構(gòu)分類器相結(jié)合,以處理不同混淆程度類別結(jié)合上的分類任務(wù)分布不平衡的問題。本文提出的想法是通過在普通卷積神經(jīng)網(wǎng)絡(luò)模型中嵌入根據(jù)數(shù)據(jù)集中的類別集合的混淆程度的層次粒度所構(gòu)建的混淆樹結(jié)構(gòu)來構(gòu)建新的卷積神經(jīng)網(wǎng)絡(luò)模型。這些卷積神經(jīng)網(wǎng)絡(luò)模型模仿了混淆樹的層次結(jié)構(gòu),當(dāng)對(duì)某個(gè)樣本進(jìn)行分類時(shí),該模型可以在其對(duì)應(yīng)的真實(shí)類別所屬的混淆類別集合中進(jìn)行精確分類。上述的混淆類別集合是整個(gè)數(shù)據(jù)集類別集合的子集,而不是數(shù)據(jù)集中的所有類別。但是與樹狀分類器不同之處是本文的卷積神經(jīng)網(wǎng)絡(luò)模型應(yīng)該輸出一個(gè)數(shù)據(jù)集中的所有類別。因此,本文提出的基于混淆樹結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)模型專注于一個(gè)樣本的真實(shí)類別所屬的混淆類別集合的分類,同時(shí)抑制其他非混淆類別集合的分類概率。為了在數(shù)據(jù)集中區(qū)分這些不同粒度的混淆類別集合,本文提出的基于混淆樹結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)模型要從混淆樹的樹狀結(jié)構(gòu)中獲得先驗(yàn)信息(不同類別集合的不同粒度的混淆信息),這與樹狀分類器中低層結(jié)構(gòu)的功能相似。
基于此,本文提出了一種新的卷積神經(jīng)網(wǎng)絡(luò)模型,稱為基于混淆樹結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)模型(confusion tree convolutional neural network,CT-CNN),模型的結(jié)構(gòu)如圖1所示。構(gòu)建CT-CNN模型包含兩個(gè)主要步驟:a)在數(shù)據(jù)集上建立一個(gè)混淆樹,受文獻(xiàn)[10]中視覺混淆標(biāo)簽樹的啟發(fā),本文將非重疊社區(qū)檢測(cè)算法改編為可重疊社區(qū)檢測(cè)算法,通過這種方式,可以生成更合適的樹狀結(jié)構(gòu),稱為基于可重疊社區(qū)的混淆樹(confusion tree,CT);b)再將混淆樹嵌入到卷積神經(jīng)網(wǎng)絡(luò)模型中,最終得到本文的基于混淆樹結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)模型。本文將CT-CNN模型的結(jié)構(gòu)分為主干層和分支層兩部分,所有分支層共享主干層的網(wǎng)絡(luò)層,每個(gè)分支層代表某一個(gè)混淆粒度的類別集合的分類問題。此外,本文還提出了一個(gè)新的損失函數(shù),使負(fù)責(zé)弱混淆粒度類別結(jié)合分類任務(wù)的分支層比負(fù)責(zé)強(qiáng)混淆粒度類別集合分類任務(wù)的分支層更早接受訓(xùn)練,并且加強(qiáng)了這些分支層之間的結(jié)合程度。
1 基于可重疊混淆樹的神經(jīng)網(wǎng)絡(luò)算法
1.1 混淆樹基本結(jié)構(gòu)
1.2 混淆樹構(gòu)建算法
混淆樹需要由從數(shù)據(jù)集類別生成的混淆社區(qū)來引導(dǎo)樹狀結(jié)構(gòu)中分支的構(gòu)建。本節(jié)首先引入構(gòu)建混淆樹樹狀結(jié)構(gòu)依賴的混淆社區(qū)的基礎(chǔ)算法,即社區(qū)發(fā)現(xiàn)算法,然后基于混淆社區(qū)介紹混淆樹的構(gòu)建算法。
1.2.1 基于Louvain的可重疊社區(qū)發(fā)現(xiàn)算法
為了構(gòu)建混淆樹結(jié)構(gòu),按照混淆社區(qū)對(duì)類別集合進(jìn)行劃分是必要的[10]。通常利用效率很高的Louvain社區(qū)發(fā)現(xiàn)算法[11]生成混淆社區(qū),然而,Louvain算法總是產(chǎn)生非重疊的社區(qū),而不是重疊的社區(qū),本文希望能消除上述的可分離性約束。因此,本文在此擴(kuò)展Louvain算法,以實(shí)現(xiàn)重疊社區(qū)的檢測(cè)。
算法1描述了基于Louvain算法擴(kuò)展的重疊社區(qū)發(fā)現(xiàn)算法。給定一個(gè)圖G和一個(gè)閾值θ,該算法有三個(gè)主要步驟:a)使用基礎(chǔ)的社區(qū)發(fā)現(xiàn)算法來發(fā)掘輸入圖中的社區(qū)劃分;b)計(jì)算并記錄G中每個(gè)節(jié)點(diǎn)對(duì)于第一步所發(fā)掘得到的每個(gè)社區(qū)的放入和取出前后的模塊度變化值;c)在步驟b)記錄的模塊度變化值結(jié)果按照閾值θ篩選符合將節(jié)點(diǎn)加入到社區(qū)的節(jié)點(diǎn)集合,并將它們加入到所對(duì)應(yīng)的社區(qū)中,最后本文得到重疊的社區(qū)劃分結(jié)果。
具體來分析算法1,其第3行的“CommunityDetection”函數(shù)是基于社區(qū)發(fā)現(xiàn)算法Louvain的第一次迭代過程實(shí)現(xiàn),返回非重疊社區(qū)劃分的結(jié)果,包括社區(qū)的數(shù)量N,從社區(qū)到社區(qū)內(nèi)包含的點(diǎn)的映射集P和每個(gè)社區(qū)的標(biāo)簽L;第5行的函數(shù)“GetCommunity”根據(jù)輸入頂點(diǎn)返回其所屬的社區(qū)的標(biāo)簽;第8行的函數(shù)“CalcModularity”使用來自文獻(xiàn)[12]的模塊度計(jì)算公式(式(2))來計(jì)算節(jié)點(diǎn)v對(duì)于已挖掘的每個(gè)社區(qū)的放入和取出前后的模塊度變化值。其他需要注意的點(diǎn)是,算法1中的第12行按第三維(模塊度值所載的維度)的降序排序;第9~11,13行中的“{…}”表示元組,這些元組在本文算法中都是有3個(gè)元素的元組;另外“'M”和“M_all”都代表元組列表。
1.2.2 混淆樹構(gòu)建算法
混淆樹的建立算法由三部分組成:a)利用混淆圖生成算法[13],從CNN模型的輸出建立數(shù)據(jù)集類別混淆圖;b)利用算法1的多層次檢測(cè)版本算法挖掘混淆圖中不同混淆粒度的社區(qū)劃分;c)利用步驟b)的層次結(jié)構(gòu)社區(qū)劃分結(jié)果建立可重疊混淆樹。
本文以在CIFAR-10數(shù)據(jù)集上構(gòu)建可重疊混淆樹的具體過程來形象闡述混淆樹的構(gòu)建算法。如圖1所示,圖左邊是不同混淆粒度的混淆圖及其內(nèi)部社區(qū),右邊是可重疊混淆樹。混淆樹構(gòu)建算法首先應(yīng)用混淆圖生成算法[13]從CIFAR-10數(shù)據(jù)集的CNN模型中獲得一個(gè)混淆圖;緊接著用Louvain算法[11]的可迭代層次化版本來發(fā)掘混淆圖上的非重疊社區(qū),得到了四種不同混淆粒度的混淆圖結(jié)果,在圖中分別被標(biāo)記為“Initial”“Iter.1”“Iter.2”和“Iter.3”;然后在被標(biāo)記為“Initial”的混淆圖上應(yīng)用算法1來挖掘重疊社區(qū)劃分,結(jié)果用來替換“Iter.1”中的混淆圖社區(qū)劃分結(jié)果;最后根據(jù)在每個(gè)層次中,為每個(gè)社區(qū)在混淆樹中的對(duì)應(yīng)層級(jí)上設(shè)置相應(yīng)的節(jié)點(diǎn),并根據(jù)每相鄰兩層的社區(qū)之間的從屬關(guān)系來連接混淆樹中兩個(gè)層級(jí)的相應(yīng)節(jié)點(diǎn),最終完成重疊混淆樹的構(gòu)建過程。以圖1右圖混淆樹的部分構(gòu)建過程為例,左邊“Iter.1”層級(jí)混淆圖中存在五個(gè)社區(qū),此時(shí)可以在右圖混淆樹相應(yīng)層級(jí)上設(shè)置五個(gè)節(jié)點(diǎn),被標(biāo)記為“node11~15:level3”,而該層級(jí)的社區(qū)中的每個(gè)成員代指一個(gè)類別,因此可以將葉子節(jié)點(diǎn)連接到上一層的“l(fā)evel3”的節(jié)點(diǎn),例如,“node4:cat”和“node6:dog”可以被連接到“node14:level3”;重復(fù)這個(gè)過程,直到“node16~17:level2”中的節(jié)點(diǎn)被連接到根節(jié)點(diǎn)“node18:level1”,此時(shí)完成可重疊混淆樹的構(gòu)建過程。
1.3 基于可重疊混淆樹的神經(jīng)網(wǎng)絡(luò)架構(gòu)
本節(jié)首先介紹將會(huì)使用的公式符號(hào),一個(gè)圖像數(shù)據(jù)集由{xi,yi}的圖像組成,xi和yi分別表示圖像數(shù)據(jù)和標(biāo)簽,混淆樹有N個(gè)層級(jí),第j層級(jí)有Kj個(gè)標(biāo)簽。
如圖2所示,基于可重疊混淆樹的神經(jīng)網(wǎng)絡(luò)模型被設(shè)計(jì)成模仿可重疊混淆樹的分層結(jié)構(gòu)。CT-CNN由四個(gè)部分組成,分別是主干層、多個(gè)粗粒度的分支層、一個(gè)細(xì)粒度的分支層和一個(gè)全局集成層。主干層的具體結(jié)構(gòu)與原始CNN模型中的前幾層相同,接收原始圖像作為輸入,并提取低層次的圖像特征。當(dāng)CT有N個(gè)層級(jí)時(shí),CT-CNN有N-2個(gè)粗粒度分支,每個(gè)粗粒度分支中的層的配置與原始CNN模型中后幾層的配置相似,其中第i個(gè)粗粒度分支為{Ccij}Kij,它對(duì)圖像xi產(chǎn)生粗粒度社區(qū)劃分的預(yù)測(cè)。粗粒度的分支層的設(shè)立有兩個(gè)目的:a)主干層可以從這些分支中學(xué)習(xí)圖像數(shù)據(jù)集中的粗粒度特征信息表達(dá);b)粗粒度分支層對(duì)細(xì)粒度分支層的分類準(zhǔn)確性有影響。CT-CNN模型的右下方有一個(gè)細(xì)粒度分支層{Fj}KN-1j,由KN-1個(gè)細(xì)粒度分類器組成,每個(gè)細(xì)粒度分類器都進(jìn)行細(xì)粒度的分類預(yù)測(cè)任務(wù)。細(xì)粒度分支中的層配置都是從原始CNN模型的最末端的層結(jié)構(gòu)復(fù)制過來的。最后的全局集成層將所有來自細(xì)粒度分支的分類預(yù)測(cè)整合,并歸一化為分?jǐn)?shù)向量,作為最后的分類結(jié)果輸出。
所有的粗粒度的分支和細(xì)粒度的分支與主干層進(jìn)行參數(shù)共享,原因有兩個(gè)方面:a)CNN模型中的前部分層可以學(xué)習(xí)低層次的圖像特征,如角和邊緣,這些特征適用于所有分支;b)無論哪個(gè)分支被訓(xùn)練,主干層的參數(shù)都可以被微調(diào),這意味著主干層可以從粗粒度和細(xì)粒度的分類中學(xué)習(xí)有用的特征。
1.4 基于可重疊混淆樹的神經(jīng)網(wǎng)絡(luò)訓(xùn)練方法
CT-CNN遵循端到端的訓(xùn)練模式,接下來主要介紹CT-CNN訓(xùn)練時(shí)的損失函數(shù)設(shè)計(jì)和總體訓(xùn)練過程。
1.4.1 損失函數(shù)
其中:i表示小批量中的第i個(gè)樣本;K是CT-CNN模型中所有分支的數(shù)量;Wl是對(duì)損失函數(shù)有貢獻(xiàn)的第l個(gè)分支的損失權(quán)重;plc(x)j表示類分?jǐn)?shù)向量plc(x)中的第j個(gè)元素。該損失函數(shù)LC計(jì)算這些分支上的softmax交叉熵,并把它們加在一起。
細(xì)粒度分支{Fj}KN-1j的損失函數(shù)被定義為
其中:pf是所有細(xì)粒度分類器的分?jǐn)?shù)向量的全局整合。
為了使粗粒度和細(xì)粒度的分支結(jié)合得更緊密,本文在CT-CNN模型的損失函數(shù)中加入了一個(gè)相關(guān)項(xiàng)。相關(guān)項(xiàng)的目的是保證圖像在粗粒度的對(duì)于某一類別的分類得分大于其在細(xì)粒度中的分類得分。這意味著細(xì)粒度分支可以繼承粗粒度分支的學(xué)習(xí)成果,并且前者應(yīng)該對(duì)于圖像樣本生成最可信的分類結(jié)果,因?yàn)檫@個(gè)分?jǐn)?shù)是CT-CNN整體模型的輸出。
綜上所述,CT-CNN模型的總體損失函數(shù)被定義為
1.4.2 訓(xùn)練方式
在CT-CNN模型的設(shè)計(jì)原理中,粗粒度的分支用于學(xué)習(xí)粗粒度的圖像特征,而細(xì)粒度的分支則學(xué)習(xí)比前者更復(fù)雜的細(xì)粒度圖像特征。因此,CT-CNN模型應(yīng)該先訓(xùn)練粗粒度的分支,然后訓(xùn)練細(xì)粒度的分支。
在訓(xùn)練過程中,通過改變權(quán)重Wk來控制哪個(gè)分支將被訓(xùn)練。假設(shè)CT-CNN一共有K個(gè)分支,首先要訓(xùn)練粗粒度的分支,則首先設(shè)置∑K-1l=1Wl=1,WK=0;然后逐漸增加WK的權(quán)重值,同時(shí)設(shè)置∑K-1l=1Wl+WK=1;最后訓(xùn)練細(xì)粒度分支,權(quán)重被設(shè)置為∑K-1l=1Wl=0,WK=1,直至訓(xùn)練完成。
2 實(shí)驗(yàn)與分析
2.1 實(shí)驗(yàn)數(shù)據(jù)
本文在實(shí)驗(yàn)中使用了兩個(gè)圖像數(shù)據(jù)集,CIFAR-100[14]和ImageNet-12[15]來評(píng)估本文提出的方法的性能。CIFAR-100數(shù)據(jù)集有60 000張圖像,分為100個(gè)類別,每個(gè)類別有600張圖片,其中500張用于訓(xùn)練,100張用于測(cè)試。ImageNet-12數(shù)據(jù)集被分為訓(xùn)練集、測(cè)試集和驗(yàn)證集,有超過120萬張圖片,包含1 000個(gè)類別,通常用于評(píng)估大規(guī)模的圖片分類算法,本文使用訓(xùn)練集進(jìn)行訓(xùn)練,使用驗(yàn)證集進(jìn)行測(cè)試。
2.2 實(shí)驗(yàn)設(shè)置
top-N平均準(zhǔn)確率(%)被用來評(píng)估每種方法的性能,本文使用Intel Core I7型號(hào)CPU、32 GB內(nèi)存和兩張NVIDIA TITAN Xp顯卡的電腦來完成所有實(shí)驗(yàn)。
深度卷積神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練的時(shí)候非常容易發(fā)生梯度消失或者爆炸以及模型過擬合的問題。對(duì)于梯度消失問題,本文首先使用正確的損失函數(shù),即交叉熵函數(shù)來訓(xùn)練本文的網(wǎng)絡(luò)模型,同時(shí)在每一個(gè)卷積層后使用ReLU非線性激活函數(shù),使梯度經(jīng)過該激活函數(shù)計(jì)算后導(dǎo)數(shù)為1,避免了梯度消失問題;對(duì)于梯度爆炸問題,本文主要采取了梯度裁剪技術(shù),即設(shè)置一個(gè)閾值,在更新梯度時(shí)如果梯度超過該閾值則將其強(qiáng)制限制在一個(gè)范圍內(nèi),避免了梯度爆炸問題;針對(duì)模型欠擬合問題,本文對(duì)數(shù)據(jù)集進(jìn)行了數(shù)據(jù)增廣,采用的數(shù)據(jù)增廣方法包括隨機(jī)亮度變換、隨機(jī)尺寸裁剪和隨機(jī)翻轉(zhuǎn)三種方式,有效地緩解了模型欠擬合問題,提升其泛化性。網(wǎng)絡(luò)退化則是大型深度卷積神經(jīng)網(wǎng)絡(luò)會(huì)遇到的問題,在本文的實(shí)驗(yàn)中,以ResNet-56和HRNet-32為基礎(chǔ)模型拓展來的CT-CNN模型參數(shù)量很大,存在網(wǎng)絡(luò)退化的可能性,所以為這兩種模型,本文利用卷積層的殘差連接方法將輸入直接與輸出結(jié)合,使梯度信息可以非常暢通地在高層和低層之間相互傳導(dǎo),避免了大型網(wǎng)絡(luò)模型訓(xùn)練會(huì)面臨的網(wǎng)絡(luò)退化問題。
本文提出的CT-CNN模型的構(gòu)建過程中,需要調(diào)優(yōu)的超參數(shù)只有在1.2.1節(jié)重疊社區(qū)發(fā)現(xiàn)算法1中提到的輸入閾值θ,而根據(jù)生成的重疊混淆樹構(gòu)建的CT-CNN模型的過程是以每個(gè)基礎(chǔ)卷積神經(jīng)網(wǎng)絡(luò)模型拓展構(gòu)建的,例如基于ResNet-56模型構(gòu)建的CT-CNN模型的超參數(shù)就與ResNet-56模型的相應(yīng)網(wǎng)絡(luò)結(jié)構(gòu)的超參數(shù)相同,即主干網(wǎng)和分支網(wǎng)都是由卷積核大小分別為1、3、1的三層卷積層組成的殘差塊構(gòu)成,CT-CNN模型中殘差塊的個(gè)數(shù)也與ResNet-56中殘差塊的個(gè)數(shù)相同。超參數(shù)θ與每個(gè)重疊社區(qū)中包含類別的種類和數(shù)目息息相關(guān),θ的取值范圍為0~1,當(dāng)θgt;0.5,算法1輸出的結(jié)果與所有社區(qū)完全重合,即每個(gè)社區(qū)均包含所有的類別,這種社區(qū)發(fā)現(xiàn)是沒有意義的,因此θ的調(diào)優(yōu)范圍就是0~0.5。經(jīng)過多次實(shí)驗(yàn)本文發(fā)現(xiàn),在CIFAR-100數(shù)據(jù)集上,θ=0.2時(shí),社區(qū)發(fā)現(xiàn)結(jié)果中每個(gè)社區(qū)包含的類別種類和數(shù)目比較均衡和合理,而在ImageNet-12數(shù)據(jù)集上,達(dá)到同樣效果的θ取值為0.25。
2.3 實(shí)驗(yàn)結(jié)果與分析
2.3.1 CIFAR-100數(shù)據(jù)集實(shí)驗(yàn)結(jié)果與分析
本文選擇NIN(network in network)[16]、VGG16[17]、ResNet[18]和HRNet[19]作為基準(zhǔn)模型。為了在這三個(gè)模型上建立混淆視覺樹,本文利用數(shù)據(jù)增強(qiáng)算法[20]從訓(xùn)練集生成10 000張?jiān)鰪V圖像,并使用預(yù)訓(xùn)練的模型來生成混淆圖。然后本文使用1.2節(jié)中的可重疊混淆樹構(gòu)建算法來建立重疊混淆樹。在NIN、VGG-16、ResNet-56和HRNet-32基準(zhǔn)模型上建立的CT分別有3、4、4和4層級(jí)。CT-CNN模型的訓(xùn)練輪數(shù)設(shè)置為500輪,數(shù)據(jù)批次大小是128張。為實(shí)現(xiàn)對(duì)細(xì)粒度和粗粒度分支的全面訓(xùn)練,調(diào)整損失權(quán)重,在前400輪訓(xùn)練中對(duì)粗粒度和細(xì)粒度的分支進(jìn)行充分訓(xùn)練。
本文將CT-CNN模型與不同的模型進(jìn)行比較,這些模型包含基準(zhǔn)模型、相近模型(如專家網(wǎng)絡(luò)NofE(network of expert)[1]、HD-CNN[21]和HCNN[22])以及CT-CNN模型的變種模型(消融實(shí)驗(yàn))。表1包含了所有實(shí)驗(yàn)結(jié)果,其中變種模型一欄里,OL指依賴可重疊混淆樹構(gòu)建的模型,CL指確保粗粒度和細(xì)粒度分支之間分類結(jié)果緊密相關(guān)的損失函數(shù)相關(guān)項(xiàng),而這里的CT-CNN是指不包含OL和CL兩個(gè)模塊的最基礎(chǔ)模型。
從表1的實(shí)驗(yàn)結(jié)果可看出:CT-CNN模型與基準(zhǔn)模型的對(duì)比實(shí)驗(yàn)中,本文的CT-CNN模型“+OL+CL”在CIFAR-100數(shù)據(jù)集上達(dá)到了69.57%、73.33%和77.67%的最高準(zhǔn)確率,遠(yuǎn)高于基準(zhǔn)模型的64.73%、69.98%和73.52%的準(zhǔn)確率;CT-CNN模型與相關(guān)模型的對(duì)比實(shí)驗(yàn)中,對(duì)于HD-CNN(這里直接使用其論文中的結(jié)果),HD-CNN僅在基于NIN的基準(zhǔn)模型上達(dá)到65.27%的準(zhǔn)確率,而CT-CNN完全模型比HD-CNN高4.3%;對(duì)于NofE(本文同樣采用其論文中的結(jié)果),同時(shí)以NofE為基礎(chǔ)模型結(jié)構(gòu)構(gòu)建CT-CNN完全模型并進(jìn)行訓(xùn)練,實(shí)驗(yàn)結(jié)果表明,CT-CNN完全模型比NofE基礎(chǔ)模型在NIN、VGG-16、ResNet-56和HRNet-32三種基準(zhǔn)模型的對(duì)比實(shí)驗(yàn)中分別高1.61%、2.54%、1.43%和2.14%。接下來對(duì)CT-CNN展開了消融實(shí)驗(yàn),這里涉及到對(duì)兩個(gè)模塊三個(gè)變種模型的實(shí)驗(yàn)。第一個(gè)模塊是CT-CNN的可重疊混淆樹結(jié)構(gòu),首先訓(xùn)練無可重疊混淆樹和無損失函數(shù)相關(guān)性的CT-CNN模型,在表1中標(biāo)記為“CT-CNN”,然后訓(xùn)練基于可重疊混淆樹的CVT-CNN,標(biāo)記為“+OL”,實(shí)驗(yàn)結(jié)果表明“+OL”基于三種基準(zhǔn)模型的實(shí)驗(yàn)中分別取得了69.07%、73.07%、77.53%和85.63%的準(zhǔn)確率,比“CT-CNN”高出0.88%、1.52%、0.72%和0.44%;第二個(gè)模塊涉及到損失函數(shù)中粗粒度分支與細(xì)粒度分支的相關(guān)項(xiàng),首先訓(xùn)練帶相關(guān)項(xiàng)的CT-CNN模型,標(biāo)記為“+CL”,與“CT-CNN”相比較,以驗(yàn)證在CVT-CNN的損失函數(shù)中粗粒度和細(xì)粒度的分支相關(guān)項(xiàng)的有效性,最終發(fā)現(xiàn)“+CL”比“CT-CNN”取得了更高的top-1準(zhǔn)確率,分別高0.45%、1.78%、0.36%和0.16%。
2.3.2 ImageNet-12數(shù)據(jù)集實(shí)驗(yàn)結(jié)果與分析
在ImageNet-12數(shù)據(jù)集上的實(shí)驗(yàn)中,本文選取了性能較好的ResNet-56作為基準(zhǔn)模型。至于CT-CNN模型,首先在ImageNet-12數(shù)據(jù)集的隨機(jī)10萬張圖像上應(yīng)用數(shù)據(jù)增廣技術(shù)得到增廣后的圖像,并使用預(yù)訓(xùn)練的基準(zhǔn)模型ResNet-56和HRNet-32從這些圖像中構(gòu)建可重疊混淆樹,這兩種CT均有四個(gè)層級(jí),ResNet-32模型構(gòu)建的CT的每個(gè)層級(jí)分支數(shù)量分別為329、29和3,而HRNet-32的CT的每個(gè)層級(jí)分支數(shù)量分別為351、24和5;然后基于已建立的CT上構(gòu)建CT-CNN模型并訓(xùn)練,訓(xùn)練過程中的批次大小被設(shè)定為512張,訓(xùn)練迭代次數(shù)設(shè)置為100,并在前60輪完成損失權(quán)重的調(diào)整。
本節(jié)完成了兩個(gè)實(shí)驗(yàn),即CT-CNN模型與基準(zhǔn)模型的性能對(duì)比實(shí)驗(yàn),將CT-CNN模型與基準(zhǔn)模型進(jìn)行比較,實(shí)驗(yàn)結(jié)果如表2所示。相比于ResNet-56模型,CT-CNN模型分別取得了77.39%的準(zhǔn)確率,比基準(zhǔn)模型高出1.37%,而相比于HRNet-32模型,CT-CNN模型分別取得了79.64%的準(zhǔn)確率,比基準(zhǔn)模型高出1.14%;基于可重疊混淆樹的神經(jīng)網(wǎng)絡(luò)模型與基于不同樹結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)之間性能對(duì)比實(shí)驗(yàn),這些樹型結(jié)構(gòu)是標(biāo)簽樹(label tree)[7]、增強(qiáng)的視覺樹(enhanced visual tree)[23]、HD-CNN結(jié)構(gòu)中的層次樹(hierarchical tree)[21]和ACNet結(jié)構(gòu)中的二元層次樹(ACNet binary tree)[24],實(shí)驗(yàn)結(jié)果如表3所示,可以發(fā)現(xiàn)基于傳統(tǒng)方法建立的樹結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),如標(biāo)簽樹和增強(qiáng)型視覺樹,分類性能是最差的,而層次樹是在訓(xùn)練CNN模型的過程中建立的,性能會(huì)高一些,而重疊混淆樹是根據(jù)完全訓(xùn)練好的CNN模型中蘊(yùn)涵的混淆信息來構(gòu)建的樹結(jié)構(gòu),因此與基礎(chǔ)神經(jīng)網(wǎng)絡(luò)模型嵌合得更緊密,相比于增強(qiáng)視覺樹、層次樹和二元層次樹結(jié)構(gòu)取得了非常高的性能提升,分別為8.12%、1.06%和0.67%。
2.3.3 分類測(cè)試
本節(jié)實(shí)驗(yàn)利用ImageNet-12數(shù)據(jù)集中五個(gè)案例對(duì)CT-CNN模型進(jìn)行分類測(cè)試,該實(shí)驗(yàn)CT-CNN模型的基礎(chǔ)模型是目前性能很好的HTNet-32,具體測(cè)試結(jié)果如圖3所示。圖3(a)是五個(gè)測(cè)試案例,它們的圖像類別分別是“水母”“凱旋門”“博美拉尼亞犬”“防撞頭盔”和“雛鳥”;圖3(b)~(d)分別是CT-CNN模型分類過程中粗粒度分支分值最高的五個(gè)分支結(jié)果、HRNet模型的測(cè)試分值最高的五個(gè)分類結(jié)果以及CT-CNN模型細(xì)粒度分支分值最高的五個(gè)結(jié)果。以第一個(gè)測(cè)試案例“凱旋門”圖片為例,可以觀察到(b)第一個(gè)測(cè)試案例的五個(gè)結(jié)果分別是3、5、43、28和24號(hào)粗粒度分支(“CB”);而(c)是HRNet-32模型的最后分類結(jié)果,其中“凱旋門”類別的分值排到了第二,而其他四個(gè)類別分別是“宮殿”“王座”“方尖紀(jì)念碑”和“斷頭臺(tái)”;(d)是CT-CNN模型細(xì)粒度分支的最后分類結(jié)果,可以觀察到“凱旋門”類別分值排名第一,且其他四類別分別是“宮殿”“寺廟”“三腳架”和“方尖紀(jì)念碑”,“凱旋門”類別一定被包含在(b)列中出現(xiàn)的3號(hào)粗粒度分支的類別集合中。從該實(shí)驗(yàn)結(jié)果中本文可以得出以下結(jié)論,粗粒度分支首先為圖像案例作了一次分類,將其按大類分開,粗粒度分類信息又可為后續(xù)細(xì)粒度分支的分類利用,也可使整個(gè)模型更加聚焦于比較困難的混淆程度高的類別之間的分類過程。與HRNet-32模型相比,本文提出的CT-CNN模型在五個(gè)測(cè)試案例中,真實(shí)類別的分值都是排名第一,說明本文模型的實(shí)際分類性能更加出色。
3 結(jié)束語
本文提出了可重疊混淆樹的構(gòu)建算法以及嵌入了可重疊混淆樹結(jié)構(gòu)的基于混淆樹的神經(jīng)網(wǎng)絡(luò)模型混淆視覺樹(CT-CNN)。與原來的CNN模型相比,CT-CNN從粗粒度的分支中學(xué)習(xí)圖像間的重要混淆信息,并同時(shí)專注于細(xì)粒度分支的分類,從而大大提高了性能。在CIFAR-100和ImageNet-12數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果證實(shí)了CT-CNN相對(duì)于原始CNN模型例如VGG-16、ResNet-56和HRNet-32以及其他相關(guān)模型的優(yōu)勢(shì)。
下一步的研究方向主要集中于混淆樹的自動(dòng)學(xué)習(xí)方面,目前的模型在訓(xùn)練環(huán)節(jié)中,必須先構(gòu)建混淆圖,再將混淆圖的結(jié)構(gòu)嵌入到CT-CNN模型中,才能展開對(duì)CT-CNN模型的訓(xùn)練,這使得混淆樹的結(jié)構(gòu)不能根據(jù)CT-CNN模型的訓(xùn)練進(jìn)行實(shí)時(shí)調(diào)優(yōu),這就限制了CT-CNN的最終性能。因此,對(duì)混淆樹結(jié)構(gòu)與CT-CNN模型的結(jié)合的端到端訓(xùn)練的研究就很有必要,這將是本文下一步研究關(guān)注的重點(diǎn)。
參考文獻(xiàn):
[1]Ahmed K,Baig M H,Torresani L.Network of experts for large-scale image categorization[C]//Proc of European Conference on Computer Vision.Cham:Springer,2016:516-532.
[2]蔣夢(mèng)瑩,林小竹,柯巖,等.基于權(quán)值分布的多模型分類算法研究[J].計(jì)算機(jī)應(yīng)用研究,2020,37(1):313-316.( Jiang Mengying,Lin Xiaozhu,Ke Yan,et al.Research on multi-model classification algorithm based on weight distribution[J].Application Research of Computers,2020,37(1):313-316.)
[3]Li Wen,Wang Limin,Li Wei,et al.Webvision database:visual lear-ning and understanding from Web data[EB/OL].[2017-08-09].https://arxiv.org/abs/1708.02862.
[4]Khosla A,Jayadevaprakash N,Yao Bangpeng,et al.Novel dataset for fine-grained image categorization:Stanford dogs[C]//Proc of CVPR Workshop on Fine-Grained Visual Categorization.2011.
[5]Deng Jia,Berg A C,Li Kai,et al.What does classifying more than 10 000 image categories tell us?[C]//Proc of European Conference on Computer Vision.Berlin:Springer,2010:71-84.
[6]LeCun Y,Bengio Y,Hinton G.Deep learning[J].Nature,2015,521(7553):436-444.
[7]Bengio S,Weston J,Grangier D.Label embedding trees for large multi-class tasks[C]//Proc of the 23rd International Conference on Neural Information Processing Systems.2010:163-171 .
[8]Fan Jianping,Zhou Ning,Peng Jinye,et al.Hierarchical learning of tree classifiers for large-scale plant species identification[J].IEEE Trans on Image Processing.2015,24(11):4172-4184.
[9]胡偉,高博川,黃振航,等.樹型結(jié)構(gòu)卷積神經(jīng)網(wǎng)絡(luò)優(yōu)化的城區(qū)遙感圖像語義分割[J].中國(guó)圖象圖形學(xué)報(bào),2020,25(5):1043-1052.(Hu Wei,Gao Bochuan,Huang Zhenhang,et al.Semantic segmentation of urban remote sensing image optimized by tree structure convolution neural network[J].Journal of Image amp; Graphics,2020,25(5):1043-1052).
[10]Liu Yuntao,Dou Yong,Jin Ruochun,et al.Visual confusion label tree for image classification[C]//Proc of International Conference on Multimedia and Expo.Piscataway,NJ:IEEE Press,2018:1-6.
[11]Blondel V D,Guillaume J L,Lambiotte R,et al.Fast unfolding of communities in large networks[J].Journal of Statistical Mechanics:Theory and Experiment,2008,2008(10):P10008.
[12]Newman M E.Modularity and community structure in networks[J].Proceedings of the National Academy of Sciences.2006,103(23):8577-8582.
[13]Jin Ruochun,Dou Yong,Wang Yueqing,et al.Confusion graph:detecting confusion communities in large scale image classification[C]//Proc of IJCAI.2017:1980-1986.
[14]Krizhevsky A.Learning multiple layers of features from tiny images[D].Toronto:University of Toronto,2009.
[15]Deng Jia,Dong Wei,Socher R,et al.ImageNet:a large-scale hierarchical image database[C]//Proc of Conference on Computer Vision and Pattern Recognition.2009:248-255.
[16]Lin Min,Chen Qiang,Yan Shuicheng.Network in network[EB/OL].[2013-12-16].https://arxiv.org/abs/1312.4400.
[17]Simonyan K,Zisserman A.Very deep convolutional networks for large-scale image recognition[EB/OL].[2014-09-04] https://arxiv.org/abs/1409.1556.
[18]He Kaiming,Zhang Xiangyu,Ren Shaoqing,et al.Deep residual learning for image recognition[C]//Proc of IEEE Conference on Computer Vision and Pattern Recognition.Piscataway,NJ:IEEE Press,2016:770-778.
[19]Wang Jingdong,Sun Ke,Cheng Tianheng,et al.Deep high-resolution representation learning for visual recognition[EB/OL].(2019-08-20).https://arxiv.org/abs/1908.07919v2.
[20]Wu Ren,Yan Shuicheng,Shan Yi,et al.Deep image:scaling up image recognition[EB/OL].[2015-01-13].https://arxiv.org/abs/1501.02876.
[21]Yan Zhicheng,Zhang Hao,Piramuthu R,et al.HD-CNN:hierarchical deep convolutional neural networks for large scale visual recognition[C]//Proc of IEEE International Conference on Computer Vision.Piscataway,NJ:IEEE Press,2015:2740-2748.
[22]Zheng Yu,Chen Qinyu,F(xiàn)an Jianping,et al.Hierarchical convolutional neural network via hierarchical cluster validity based visual tree learning[J].Neurocomputing,2020,409(10):408-419.
[23]Zheng Yu,F(xiàn)an Jianping,Zhang Ji,et al.Hierarchical learning of multi-task sparse metrics for large-scale image classification[J].Pattern Recognition,2017,67(7):97-109.
[24]Ji Ruyi,Wen Longyin,Zhang Libo,et al.Attention convolutional binary neural tree for fine-grained visual categorization[C]//Proc of Conference on Computer Vision and Pattern Recognition.2020:10468-10477.