卓 力 孫亮亮 張 輝 李曉光 張 菁
(北京工業(yè)大學(xué)信息學(xué)部 北京 100124)
(北京工業(yè)大學(xué)計(jì)算智能與智能系統(tǒng)北京重點(diǎn)實(shí)驗(yàn)室 北京 100124)
舌診是中醫(yī)(Traditional Chinese Medicine,TCM)望診中的核心內(nèi)容。舌色作為舌象診察重要特征之一,在中醫(yī)上一般分為淡紅舌、紅舌、暗紅舌、紫舌等4類,其顏色的變化反映了人體臟腑氣血津液的虛實(shí)和邪正盛衰[1]。長期以來,舌診主要是通過醫(yī)生的目測觀察、經(jīng)驗(yàn)來判斷病證。但在臨床實(shí)踐中,舌象的診察會受到光線、溫度等外界客觀因素以及醫(yī)生主觀性的影響,進(jìn)而影響后續(xù)的癥候診斷及依證施方。利用計(jì)算機(jī)對中醫(yī)舌象進(jìn)行定量化、客觀化和標(biāo)準(zhǔn)化的處理與分析,已成為當(dāng)前舌診客觀化研究中的一個基礎(chǔ)性問題。
中醫(yī)舌診客觀化的研究起步于20世紀(jì)80年代初期,其中以中醫(yī)舌質(zhì)、苔質(zhì)顏色自動分析為代表的工作可以分為兩個階段:第1階段是傳統(tǒng)方法,普遍采用人工特征+淺層機(jī)器學(xué)習(xí)的框架,對舌色、苔色等進(jìn)行分析和處理;第2階段是基于深度學(xué)習(xí)的方法,采用端到端的框架,實(shí)現(xiàn)中醫(yī)舌象的智能分析與處理。
在第1階段的研究工作中,通常提取舌圖像的人工特征,如顏色直方圖、顏色集、結(jié)構(gòu)元素描述符[2]、顏色共生矩陣[3]、圖像矩[4,5]等顏色特征,用于舌色分類。文獻(xiàn)[6]提出了一種多因素相關(guān)的塊截?cái)嗑幋a用于提取圖像的顏色特征,并在圖像分類中取得較好的結(jié)果。文獻(xiàn)[7]提出了一種AdaBoost級聯(lián)分類框架,提高了舌質(zhì)顏色分類的準(zhǔn)確率。文獻(xiàn)[8]在RGB空間提取了舌圖像的顏色特征,采用支持向量機(jī)作為分類器,實(shí)現(xiàn)了舌色分類。文獻(xiàn)[9]利用主色調(diào)直方圖作為顏色特征,在多標(biāo)記學(xué)習(xí)算法下對舌質(zhì)與舌苔進(jìn)行了分類。文獻(xiàn)[10]在先驗(yàn)?zāi)0搴蜆?biāo)準(zhǔn)的色塊作為輔助基礎(chǔ)上,利用K近鄰(KNearest Neighbor, KNN)作為分類器進(jìn)行分類。王愛民等人[11]采用Fisher比率作為色度空間選擇的依據(jù),實(shí)現(xiàn)了舌色和苔色的自動分類。
這一階段的研究工作普遍人工提取舌圖像的顏色特征進(jìn)行分類,由于顏色特征對于光照變化特別敏感,因此這些方法的魯棒性較差,分類準(zhǔn)確性難以令人滿意。
2012年以來,深度學(xué)習(xí)在圖像分類、自然語言處理等領(lǐng)域取得了巨大突破。在第2階段的研究工作中,研究者嘗試將深度學(xué)習(xí)應(yīng)用于中醫(yī)舌診研究中,利用深度學(xué)習(xí)強(qiáng)大的特征學(xué)習(xí)和語義表達(dá)能力,從大量的樣本數(shù)據(jù)中自動學(xué)習(xí)舌圖像的特征,實(shí)現(xiàn)舌色的分類。文獻(xiàn)[12]采用改進(jìn)后的CaffeNet網(wǎng)絡(luò)結(jié)構(gòu)對預(yù)處理后的舌圖像進(jìn)行分類。文獻(xiàn)[13]結(jié)合圖像預(yù)處理和深度學(xué)習(xí),在舌圖像數(shù)據(jù)集中驗(yàn)證了自搭建的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)的分類性能。文獻(xiàn)[14]為了減小在舌色、苔色分類時,兩者之間的相互干擾,將整張舌圖像按照舌色、苔色分布的區(qū)域分離開來分別送入輕型CNN網(wǎng)絡(luò)進(jìn)行分類。在圖像分類任務(wù)中,不同特征的融合往往會取得更好的分類結(jié)果,文獻(xiàn)[15,16]提出了不同的視覺與文本特征融合的方法,并在各自的分類任務(wù)中取得了更優(yōu)的性能。
研究結(jié)果表明,基于深度學(xué)習(xí)的方法可以獲得遠(yuǎn)超過傳統(tǒng)方法的性能,舌色分類精度有了顯著的提升。但是,目前基于深度學(xué)習(xí)的中醫(yī)舌色分類方法還存在以下問題需要解決:
(1)深度神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)復(fù)雜,計(jì)算復(fù)雜度和存儲需求會大大增加。同時,需要大量的有標(biāo)注樣本對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,才能獲得理想的性能。而在實(shí)際應(yīng)用中,由于有經(jīng)驗(yàn)的醫(yī)生標(biāo)注成本昂貴,數(shù)據(jù)采集困難,往往難以獲得大規(guī)模、有標(biāo)注的舌象樣本。如何利用小規(guī)模的數(shù)據(jù)集,有針對性地設(shè)計(jì)深度網(wǎng)絡(luò)模型,提升舌色分類的準(zhǔn)確性,還需要進(jìn)行深入的研究;
(2)受醫(yī)生的知識水平、診斷經(jīng)驗(yàn)的限制,也因?yàn)楣饩€、環(huán)境等客觀因素的影響,醫(yī)生的標(biāo)注樣本中經(jīng)常會出現(xiàn)錯誤,標(biāo)注的樣本數(shù)據(jù)中不可避免地會存在一定的噪聲,噪聲樣本的存在會對分類網(wǎng)絡(luò)模型的訓(xùn)練造成影響,導(dǎo)致舌色分類的魯棒性和準(zhǔn)確性難以令人滿意。針對有噪聲標(biāo)注樣本情況下的分類問題,學(xué)者開展了深入的研究工作,取得了有意義的研究進(jìn)展。比如,文獻(xiàn)[17]提出一種簡單而有效的注意力特征混合(Attentive Feature Mixup, AFM)策略,利用注意力機(jī)制降低噪聲樣本的權(quán)重,進(jìn)而抑制噪聲樣本對分類模型的影響。文獻(xiàn)[18]提出了置信學(xué)習(xí)的思想,用于識別和過濾錯誤樣本。在過濾錯誤樣本后,調(diào)整樣本類別權(quán)重,重新訓(xùn)練網(wǎng)絡(luò)。文獻(xiàn)[19]提出了一種框架用來構(gòu)建健壯的損失函數(shù),有效解決了損失函數(shù)對噪聲樣本的欠擬合問題。文獻(xiàn)[20]提出了一種基于噪聲分類器預(yù)測的標(biāo)簽校正算法,提升了分類網(wǎng)絡(luò)模型的性能。文獻(xiàn)[21]構(gòu)建了網(wǎng)絡(luò)參數(shù)和標(biāo)簽聯(lián)合優(yōu)化的框架,利用網(wǎng)絡(luò)輸出結(jié)果更新標(biāo)簽,提升分類性能。文獻(xiàn)[22]通過構(gòu)建一種自治愈網(wǎng)絡(luò)實(shí)現(xiàn)對噪聲樣本的抑制和噪聲標(biāo)注的修正,提高了分類的精度。文獻(xiàn)[23]提出了一種不一致的潛在真實(shí)偽標(biāo)注框架IPA2LT,該框架在一定程度上解決了人臉表情注釋的不一致性帶來的問題,提升了表情分類的精度。
上述的研究結(jié)果表明,對有噪聲的樣本進(jìn)行識別并加以清除,可以有效提升分類模型的性能。但是目前,針對有噪樣本下的舌色分類的研究工作很少,當(dāng)前舌色分類的魯棒性和準(zhǔn)確性難以令人滿意,嚴(yán)重阻礙了舌診客觀化研究的進(jìn)展。
為此,本文提出了一種有噪聲標(biāo)注情況下的中醫(yī)舌色分類方法,目的是實(shí)現(xiàn)舌色的魯棒、準(zhǔn)確分類。主要的創(chuàng)新點(diǎn)包括:(1)提出了一種基于2階段的數(shù)據(jù)清洗方法,用于對噪聲標(biāo)注樣本進(jìn)行識別并加以清除;(2)針對舌象樣本數(shù)據(jù)規(guī)模小的問題,設(shè)計(jì)了一種帶通道注意力機(jī)制(Channel Attention,CA)[24]的輕型卷積神經(jīng)網(wǎng)絡(luò),以實(shí)現(xiàn)舌色的準(zhǔn)確分類;(3)提出了一種帶有噪聲樣本過濾機(jī)制的知識蒸餾策略,該策略中加入了由教師網(wǎng)絡(luò)主導(dǎo)的噪聲樣本過濾機(jī)制,進(jìn)一步剔除噪聲樣本,同時利用教師網(wǎng)絡(luò)指導(dǎo)輕型卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,提升了分類模型的性能。在自建的中醫(yī)舌色分類數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,與現(xiàn)有的分類網(wǎng)絡(luò)模型相比,本文提出的方法能以較低的計(jì)算復(fù)雜度,顯著提升分類性能,分類準(zhǔn)確率達(dá)到了93.88%。
本文提出的有噪聲標(biāo)注情況下的中醫(yī)舌色分類方法整體框圖如圖1所示。下面介紹本文提出的兩階段數(shù)據(jù)清洗方法、輕型CNN網(wǎng)絡(luò)結(jié)構(gòu)、帶有噪聲樣本過濾機(jī)制的知識蒸餾策略等幾個關(guān)鍵部分的具體實(shí)現(xiàn)細(xì)節(jié)。
圖1 有噪聲標(biāo)注情況下的中醫(yī)舌色分類方法整體框圖
如上所述,由于舌色類別之間并沒有一個嚴(yán)格的界限和醫(yī)生標(biāo)注者的主觀性等因素的影響,舌象數(shù)據(jù)集中存在一些帶有噪聲標(biāo)注的樣本,影響分類模型的訓(xùn)練。為此,本文提出了一種基于2階段的數(shù)據(jù)樣本清洗方法,其處理流程如表1所示。在第1階段,采用ResNet18篩選出數(shù)據(jù)中的噪聲樣本。其基本思想是利用ResNet18網(wǎng)絡(luò)從大部分干凈樣本中學(xué)習(xí)到規(guī)律,篩選出噪聲樣本。通過多次隨機(jī)劃分和迭代,實(shí)現(xiàn)對數(shù)據(jù)集的初篩。由于在第1階段篩選數(shù)據(jù)的過程中,訓(xùn)練集中有噪聲樣本的存在,分類模型有可能會誤將干凈的樣本篩選掉。因此,本文又設(shè)計(jì)了第2階段,利用經(jīng)過第1階段清洗后的數(shù)據(jù)集微調(diào)ResNet18, VGGNet等CNN模型(均在ImageNet上進(jìn)行了預(yù)訓(xùn)練),對篩選出的噪聲樣本進(jìn)行修正,盡可能避免誤篩干凈的樣本。清洗后的樣本將用于訓(xùn)練舌色分類網(wǎng)絡(luò)模型。
表1 有噪聲標(biāo)準(zhǔn)舌圖像的數(shù)據(jù)清洗流程
深度學(xué)習(xí)依賴大數(shù)據(jù)作為支撐。然而,由于醫(yī)生標(biāo)注數(shù)據(jù)的成本高,臨床數(shù)據(jù)采集困難,因此難以獲得大規(guī)模、有標(biāo)注的中醫(yī)舌色樣本數(shù)據(jù)。訓(xùn)練樣本數(shù)據(jù)量的不足很容易導(dǎo)致過擬合現(xiàn)象的發(fā)生,影響網(wǎng)絡(luò)模型的訓(xùn)練性能。因此,本文設(shè)計(jì)了一種輕型CNN網(wǎng)絡(luò)結(jié)構(gòu),以防止由于訓(xùn)練樣本過少帶來的過擬合問題,同時也加入了通道注意力機(jī)制,獲得更具表達(dá)能力的深度特征。
2.2.1 整體網(wǎng)絡(luò)結(jié)構(gòu)
本文設(shè)計(jì)的輕型CNN網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。這是一個端到端的架構(gòu),輸入為舌圖像,輸出為預(yù)測的舌色類別。網(wǎng)絡(luò)由9層卷積層和2層全連接層組成。為了減少網(wǎng)絡(luò)的參數(shù)量、避免過擬合現(xiàn)象的發(fā)生,除了第1層使用7×7的卷積核,其余卷積層均采用了3×3的卷積核。此外,每個卷積層之間均使用了批量正則化(Batch Normalization,BN)和ReLU激活操作;其次,為了增強(qiáng)梯度傳播和網(wǎng)絡(luò)的泛化能力,采用了殘差網(wǎng)絡(luò)的連接方式。具體來說,從第2個卷積層開始,每兩個卷積層組成一個殘差塊;最后,在網(wǎng)絡(luò)中加入了通道注意力機(jī)制,引導(dǎo)網(wǎng)絡(luò)更關(guān)注對分類任務(wù)重要的特征通道,抑制無關(guān)的通道。最后兩個全連接層的神經(jīng)元個數(shù)分別設(shè)置為128和4。
圖2 輕型CNN網(wǎng)絡(luò)結(jié)構(gòu)圖
2.2.2 通道注意力機(jī)制
為了提升輕型CNN網(wǎng)絡(luò)的特征提取與表達(dá)能力,本文在網(wǎng)絡(luò)中加入了通道注意力機(jī)制。通道注意力機(jī)制認(rèn)為網(wǎng)絡(luò)中每層不同通道的特征的重要性不同,通過向重要的通道賦予更高的權(quán)重使得網(wǎng)絡(luò)更加注重對分類任務(wù)有用的信息,結(jié)構(gòu)如圖3所示。
在圖3中,輸入的特征圖(H×W×C)分別經(jīng)過最大池化和平均池化,得到兩個1×1×C的特征圖。接著,將其分別送入一個多層感知機(jī)(Multi-Layer Perception, MLP)中。MLP主要用于壓縮輸入特征圖的空間維數(shù)和生成對應(yīng)的權(quán)重,共有兩層:第1層神經(jīng)元個數(shù)為 C/r(r為減少率,本文中r設(shè)為16),激活函數(shù)為ReLU;第2層神經(jīng)元個數(shù)為C,這兩層的神經(jīng)網(wǎng)絡(luò)權(quán)值是共享的。之后,將MLP輸出的特征分別進(jìn)行加法和Sigmoid激活操作,生成最終的通道注意力特征,即Mc(F)。
圖3 通道注意力網(wǎng)絡(luò)結(jié)構(gòu)
整個通道注意力模塊的計(jì)算過程可以表示為
為了進(jìn)一步篩選數(shù)據(jù)集中的噪聲樣本,同時提高輕型CNN網(wǎng)絡(luò)的分類性能,本文提出了一種帶有噪聲樣本過濾機(jī)制的知識蒸餾策略,通過一個復(fù)雜的教師網(wǎng)絡(luò)去指導(dǎo)輕型學(xué)生網(wǎng)絡(luò)的學(xué)習(xí)。教師網(wǎng)絡(luò)中加入噪聲樣本的過濾機(jī)制,進(jìn)一步濾除噪聲樣本。該過濾機(jī)制是基于噪聲樣本相對于干凈樣本的分類損失值會更大的思路,利用教師網(wǎng)絡(luò)計(jì)算每個批次中樣本的分類損失值,然后按照一定的比例過濾掉損失值較大的樣本,只把損失值小的樣本用于訓(xùn)練學(xué)生網(wǎng)絡(luò)。該策略可以在教師網(wǎng)絡(luò)將知識傳遞到學(xué)生網(wǎng)絡(luò)的同時,降低噪聲樣本對學(xué)生模型訓(xùn)練的干擾,使學(xué)生網(wǎng)絡(luò)盡可能逼近亦或是超過教師網(wǎng)絡(luò)的性能,從而以較低的網(wǎng)絡(luò)復(fù)雜度,獲得較高的分類性能。噪聲樣本的過濾流程如表2所示。
表2 噪聲樣本過濾流程
教師網(wǎng)絡(luò)采用ResNet50[25]+SeNet[26]的網(wǎng)絡(luò)結(jié)構(gòu),而學(xué)生網(wǎng)絡(luò)則是本文設(shè)計(jì)的輕型CNN網(wǎng)絡(luò)。知識蒸餾策略的整體結(jié)構(gòu)如圖4所示。采用在ImageNet上訓(xùn)練好的ResNet50+SeNet對輸入樣本進(jìn)行分類,輸出結(jié)果作為軟標(biāo)簽,去指導(dǎo)輕型CNN網(wǎng)絡(luò)的訓(xùn)練。相比于硬標(biāo)簽來說,軟標(biāo)簽攜帶了更多有用的信息,可以有效提升學(xué)生網(wǎng)絡(luò)的訓(xùn)練性能。
圖4 知識蒸餾的結(jié)構(gòu)圖
在知識蒸餾中,本文采用的目標(biāo)函數(shù)為交叉熵?fù)p失函數(shù)與K-L散度損失的加權(quán)和,具體為
利用這種帶有噪聲樣本過濾機(jī)制的知識蒸餾策略,可以進(jìn)一步去除有噪樣本,同時提升輕型網(wǎng)絡(luò)的分類性能。
對待預(yù)測舌圖像進(jìn)行預(yù)測時,首先利用上述訓(xùn)練好的網(wǎng)絡(luò)模型提取到舌色特征,接著將特征送入分類器中進(jìn)行分類。本文采用了Softmax分類器,通過計(jì)算當(dāng)前樣本屬于每一類的概率,選擇具有最高概率的類作為當(dāng)前樣本的類別。本文將Softmax分類器與輕型網(wǎng)絡(luò)結(jié)構(gòu)相結(jié)合,通過一個端到端的網(wǎng)絡(luò)結(jié)構(gòu),實(shí)現(xiàn)舌色的分類。
為了驗(yàn)證所提方法的有效性,本文在自建的數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)。在實(shí)驗(yàn)中,首先對比了數(shù)據(jù)清洗前后的分類性能;其次,在清洗后的數(shù)據(jù)集上,對比了本文設(shè)計(jì)的輕型CNN網(wǎng)絡(luò)與其他CNN網(wǎng)絡(luò)的分類準(zhǔn)確率;然后,又比較了采用知識蒸餾策略之后,輕型CNN網(wǎng)絡(luò)的分類性能;最后,針對兩階段的數(shù)據(jù)清洗方法和輕型CNN網(wǎng)絡(luò)分別進(jìn)行了相關(guān)的消融實(shí)驗(yàn),驗(yàn)證各個部分對分類性能的影響。
數(shù)據(jù)集。本文自建了舌色分類數(shù)據(jù)集,所有數(shù)據(jù)樣本均采集自首都醫(yī)科大學(xué)附屬宣武醫(yī)院,采集設(shè)備為本課題組研制的中醫(yī)舌象儀,每個樣本由中醫(yī)專家人工進(jìn)行標(biāo)注。數(shù)據(jù)集共包含舌圖像樣本430例,舌色共分為4類,其中淡紅舌148例、紅舌133例、暗紅舌106例和紫舌43例。部分示例圖像如圖5所示。
圖5 舌色樣本的示例
分類性能評價指標(biāo)。本文采用準(zhǔn)確率來度量舌色分類性能,定義為
假設(shè)C表示舌色類別中的一類,式(7)TP表示類C中的樣本被正確預(yù)測為類C的數(shù)量,TN表示不屬于C類的其他類別樣本而被正確預(yù)測為其對應(yīng)類別的數(shù)量,N表示測試集中樣本的總數(shù)量。
數(shù)據(jù)擴(kuò)充。在訓(xùn)練輕型CNN網(wǎng)絡(luò)時,為了提高模型的訓(xùn)練性能,避免過擬合,數(shù)據(jù)擴(kuò)充是必不可少的。本文采用了多種數(shù)據(jù)擴(kuò)充方法,包括隨機(jī)水平和垂直翻轉(zhuǎn)、在—45°和45°之間隨機(jī)旋轉(zhuǎn),調(diào)整圖像的大小等。輸入網(wǎng)絡(luò)的圖像被統(tǒng)一調(diào)整為224像素×224像素。
參數(shù)的設(shè)置。本文設(shè)計(jì)的輕型CNN網(wǎng)絡(luò)是在Pytorch平臺上搭建的,實(shí)驗(yàn)中配置了NVIDIA Ge-Force TX 1080 Ti GPU。采用Adam算法對模型進(jìn)行優(yōu)化,其中Batch Size設(shè)為64、權(quán)重衰減為10—4。此外,本文采用自定義策略在訓(xùn)練過程中調(diào)整學(xué)習(xí)率,lr=lr0×(0.95)epoch,其中l(wèi) r0值為0.001,損失函數(shù)使用的交叉熵?fù)p失,epoch的值為200。實(shí)驗(yàn)中的測試準(zhǔn)確率均為每20輪取1次均值所得。
為了驗(yàn)證提出的兩階段數(shù)據(jù)清洗方法的有效性,本文進(jìn)行了數(shù)據(jù)清洗前后的分類性能對比實(shí)驗(yàn)。首先,利用表1算法對原始數(shù)據(jù)集進(jìn)行了清洗,共清洗出21例噪聲樣本。其中第1階段篩選出的樣本數(shù)量為74,第2階段校正了53例樣本。在清洗后的數(shù)據(jù)集中,舌圖像數(shù)量為409例,其中淡紅舌126例,紅舌128例,暗紅舌113例和紫舌42例。圖6所示的是清洗出來的部分樣本示例??梢钥闯觯@些舌圖像在視覺上很難區(qū)分其歸屬舌色類別中哪一類,導(dǎo)致醫(yī)生標(biāo)注時很有可能給出不一致的結(jié)果。
圖6 清洗出的部分噪聲樣本示例
接下來,將清洗后的數(shù)據(jù)集按照4:1比例隨機(jī)劃分為訓(xùn)練集與測試集。在驗(yàn)證數(shù)據(jù)清洗對于分類性能的影響時,為了保證測試集的一致性,本文選取清洗后的測試集做測試,而清洗前訓(xùn)練集的劃分則是由清洗前的數(shù)據(jù)集去除測試集之后得到的,之后采用清洗前后的訓(xùn)練集對在ImageNet上預(yù)訓(xùn)練后的ResNet18網(wǎng)絡(luò)進(jìn)行微調(diào),數(shù)據(jù)擴(kuò)充與參數(shù)設(shè)置均采用3.1節(jié)所述方式,得到優(yōu)化后的分類網(wǎng)絡(luò)模型。數(shù)據(jù)清洗前后的分類對比結(jié)果如表3所示。
從表3可以看出,數(shù)據(jù)清洗之后,無論是對于單個類別還是整體的分類性能都有了顯著的提升。具體來說,淡紅舌與紅舌的分類準(zhǔn)確率由75%,76.92%提升到了88%, 88.46%,分別提升了13%和11.54%。這是因?yàn)橥ㄟ^清洗,清除了淡紅舌與紅舌中帶有噪聲標(biāo)注的樣本,提升了分類模型的性能。整體準(zhǔn)確率在樣本清洗前僅為82.34%,而清洗后達(dá)到了91.81%,提升了9.47%。上述的實(shí)驗(yàn)結(jié)果表明,本文提出的數(shù)據(jù)清洗方法可以有效篩選出帶有噪聲的標(biāo)注樣本,顯著提升了分類準(zhǔn)確率。
表3 數(shù)據(jù)清洗前后分類準(zhǔn)確率(%)對比結(jié)果
為了驗(yàn)證本文設(shè)計(jì)的輕型CNN網(wǎng)絡(luò)的性能,本文將該網(wǎng)絡(luò)(未采用知識蒸餾策略)與AlexNet[27],VGG16[28], ResNet18和MobileNetV2[29]等幾種主流的輕型CNN網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了對比。對比時,將清洗后的數(shù)據(jù)按照4:1比例隨機(jī)劃分為訓(xùn)練集和測試集。除了本文提出的輕型CNN網(wǎng)絡(luò),其他網(wǎng)絡(luò)均在ImageNet上進(jìn)行了預(yù)訓(xùn)練,采用訓(xùn)練集對網(wǎng)絡(luò)模型進(jìn)行微調(diào)。訓(xùn)練時采用了相同的數(shù)據(jù)擴(kuò)充方法。
對比結(jié)果如圖7所示。可以看出,上述幾種主流的輕型CNN網(wǎng)絡(luò)分別取得了89.53%, 90.69%,90.86%, 91.81%和91.86%的分類準(zhǔn)確率。而本文設(shè)計(jì)的輕型CNN網(wǎng)絡(luò)在沒有預(yù)訓(xùn)練的情況下,仍然取得了92.87%的準(zhǔn)確率,分類準(zhǔn)確率提高了1.01%以上。這是因?yàn)楸疚脑O(shè)計(jì)的輕型CNN網(wǎng)絡(luò)中加入了通道注意力機(jī)制,使得網(wǎng)絡(luò)更加關(guān)注對分類有用的信息,從而提高了分類的準(zhǔn)確率。
圖7 不同分類模型準(zhǔn)確率對比
表4所示的是幾種CNN網(wǎng)絡(luò)結(jié)構(gòu)的參數(shù)量??梢钥闯?,相對于AlexNet, VGG16和ResNet18等網(wǎng)絡(luò)結(jié)構(gòu),本文提出的輕型CNN網(wǎng)絡(luò)的參數(shù)量小了很多。雖然比MobileNetV2結(jié)構(gòu)的參數(shù)量大了1 MB,但是網(wǎng)絡(luò)的分類精度卻提高了1.01%以上。綜上,本文設(shè)計(jì)的輕型CNN網(wǎng)絡(luò)不僅網(wǎng)絡(luò)結(jié)構(gòu)簡單,同時也能取得更優(yōu)的分類性能。
表4 各種CNN網(wǎng)絡(luò)結(jié)構(gòu)的參數(shù)量(MB)
為了驗(yàn)證所提帶有噪聲過濾機(jī)制的知識蒸餾策略對于提升輕型CNN網(wǎng)絡(luò)性能的有效性,本文將采用知識蒸餾策略前后的輕型CNN網(wǎng)絡(luò)分類性能做了對比。教師網(wǎng)絡(luò)分別采用了ResNet18+CBAM,R e s N e t 5 0, R e s N e x t 5 0[30], R e s N e t 1 0 1 和ResNet50+SeNet等5種復(fù)雜的CNN網(wǎng)絡(luò)結(jié)構(gòu),網(wǎng)絡(luò)訓(xùn)練方式如2.3節(jié)所述。采用知識蒸餾策略前后得到的實(shí)驗(yàn)結(jié)果如表5所示。
從表5結(jié)果可以看出,在沒有使用知識蒸餾的情況下,輕型CNN網(wǎng)絡(luò)的分類準(zhǔn)確率為92.87%。而使用了不同的CNN網(wǎng)絡(luò)模型作為教師網(wǎng)絡(luò)時,輕型CNN網(wǎng)絡(luò)的分類準(zhǔn)確率均有所提升,尤其是采用ResNet50+SeNet作為教師網(wǎng)絡(luò)時,輕型CNN網(wǎng)絡(luò)的分類性能達(dá)到了最優(yōu),為93.88%,提升了約1%。盡管輕型CNN網(wǎng)絡(luò)在分類的性能上可能略低于教師網(wǎng)絡(luò)(低0.59%),但是在網(wǎng)絡(luò)參數(shù)量方面要遠(yuǎn)小于教師網(wǎng)絡(luò)。例如ResNet50+SeNet網(wǎng)絡(luò)的參數(shù)量為28.1 MB,而本文設(shè)計(jì)的輕型CNN網(wǎng)絡(luò)只有5.2 MB,僅為18.5%。由以上實(shí)驗(yàn)結(jié)果可以看出,采用本文提出的知識蒸餾策略,在網(wǎng)絡(luò)參數(shù)量不變的情況下,可以進(jìn)一步提升輕型網(wǎng)絡(luò)模型的分類性能。
表5 采用知識蒸餾前后的對比實(shí)驗(yàn)結(jié)果
為了驗(yàn)證所提出方法的有效性,本文將其與目前主流的幾種分類網(wǎng)絡(luò)進(jìn)行了比較,主要包含DenseNet121[31], ResNet18, ResNext50, ShuffleNetV2[32], MobileNetV2, EfficientNet-b4[33]等。以上網(wǎng)絡(luò)均使用3.2節(jié)的測試集做測試,訓(xùn)練集由清洗前的數(shù)據(jù)集除去測試集組成,參數(shù)設(shè)置均采用3.1節(jié)所述方式。具體實(shí)驗(yàn)結(jié)果如表6所示。
從表6可以看出,本文所提方法取得了最優(yōu)的分類性能,相對于其他分類網(wǎng)絡(luò),提高了10.96%以上。主要原因在于本文所提方法對有噪聲標(biāo)注的樣本進(jìn)行了清洗,避免了這類樣本對網(wǎng)絡(luò)模型產(chǎn)生不利的影響。實(shí)驗(yàn)結(jié)果再次證明,噪聲樣本會對分類精度產(chǎn)生非常嚴(yán)重的影響,如果不進(jìn)行數(shù)據(jù)清洗,即便采用先進(jìn)的網(wǎng)絡(luò)結(jié)構(gòu),也無法獲得令人滿意的分類精度。
表6 不同分類網(wǎng)絡(luò)的比較結(jié)果(%)
為了驗(yàn)證本文方法的不同部分對分類性能的作用,本文進(jìn)行了消融實(shí)驗(yàn)。下面介紹消融實(shí)驗(yàn)結(jié)果。
(1)兩階段數(shù)據(jù)清洗。在實(shí)驗(yàn)中,分別利用原始舌象數(shù)據(jù)集與經(jīng)過第1階段和第2階段清洗后的數(shù)據(jù)集訓(xùn)練ResNet18網(wǎng)絡(luò),然后對比訓(xùn)練后的模型在相同測試集上的分類準(zhǔn)確率,結(jié)果如表7所示。數(shù)據(jù)集均按照訓(xùn)練集與測試集4:1比例隨機(jī)劃分,實(shí)驗(yàn)參數(shù)的設(shè)置如步驟3.1所述。從表7可以看出,經(jīng)過第1階段后得到的舌象數(shù)據(jù)集相對于原始數(shù)據(jù)集在準(zhǔn)確率方面提升了7.68%,主要原因是第1階段清洗掉了有噪樣本,提升了標(biāo)簽的準(zhǔn)確性。而第2階段在第1階段的基礎(chǔ)上,準(zhǔn)確率又提升了1.79%,其主要原因是通過對噪聲樣本的修正,增加了訓(xùn)練樣本的數(shù)量,從而獲得了比第1階段更高的分類準(zhǔn)確率。
表7 基于兩階段數(shù)據(jù)清洗方法的消融實(shí)驗(yàn)結(jié)果
(2)輕型CNN網(wǎng)絡(luò)。為了驗(yàn)證輕型CNN網(wǎng)絡(luò)中通道注意力機(jī)制模塊的有效性,本文在知識蒸餾的基礎(chǔ)上,進(jìn)行了相關(guān)的消融研究。結(jié)果如表8所示。其中基線模型包含9層卷積層和2層全連接層,然后將通道注意力機(jī)制模塊嵌入到基線模型中,驗(yàn)證其對于性能提升的作用。從表8可以得到,采用通道注意力機(jī)制,分類的準(zhǔn)確率提升了1.1%,這說明通道注意力機(jī)制可以提升特征的表達(dá)能力,從而提升分類性能。
表8 輕型CNN網(wǎng)絡(luò)的消融實(shí)驗(yàn)結(jié)果
本文針對中醫(yī)舌色分類中存在的噪聲樣本問題,提出了一種有噪聲標(biāo)注情況下的中醫(yī)舌色分類方法。首先,提出一種兩階段的數(shù)據(jù)清洗方法,可以對噪聲樣本進(jìn)行篩選,并加以清除;然后,設(shè)計(jì)了一種帶有通道注意力機(jī)制的輕型CNN網(wǎng)絡(luò)結(jié)構(gòu),用于舌色分類;此外,為了進(jìn)一步提升網(wǎng)絡(luò)的性能,采用了帶有噪聲樣本篩選機(jī)制的知識蒸餾策略,由教師網(wǎng)絡(luò)主導(dǎo)對噪聲樣本進(jìn)行過濾,利用較少的網(wǎng)絡(luò)參數(shù)量就可以獲得較高的分類性能。實(shí)驗(yàn)結(jié)果表明,采用本文提出的方法,可以顯著提升帶有噪聲標(biāo)注的舌色分類準(zhǔn)確性。鑒于實(shí)際應(yīng)用中,有標(biāo)注的中醫(yī)舌象樣本稀缺,且代價昂貴,未來的工作將考慮采用半監(jiān)督學(xué)習(xí)的方式,利用大量的無監(jiān)督樣本,進(jìn)一步提升舌色分類的性能。