杜師帥,邱 天,李靈巧,胡錦泉,鄭安兵,馮艷春,胡昌勤,楊輝華,+
1.北京郵電大學(xué) 自動(dòng)化學(xué)院,北京 100876
2.北京理工大學(xué) 光電學(xué)院,北京 100081
3.桂林電子科技大學(xué) 電子工程與自動(dòng)化學(xué)院,廣西 桂林 541004
4.中國(guó)食品藥品檢定研究院,北京 100050
假藥或劣質(zhì)藥品大約占據(jù)世界藥品貿(mào)易10%的份額,在全球范圍內(nèi)摧殘人民群眾的身體健康,同時(shí)擾亂市場(chǎng)經(jīng)濟(jì)秩序,是世界各國(guó)共同面臨的挑戰(zhàn)。2006年,世界衛(wèi)生組織在羅馬召開“打擊假藥建立有效的國(guó)際合作”國(guó)際研討會(huì)議,促進(jìn)國(guó)際合作打擊假劣藥制售。我國(guó)建設(shè)的藥品快速識(shí)別系統(tǒng),針對(duì)不同企業(yè)生產(chǎn)的藥品中的活性成分進(jìn)行定性分析或定量鑒別,以確保藥品在市場(chǎng)流通過程中的質(zhì)量。因此,為了建立更加完善的藥品監(jiān)督系統(tǒng)及維護(hù)市場(chǎng)穩(wěn)定,發(fā)展創(chuàng)造性的和有效的藥品鑒別方法具有重大意義。
近紅外(near-infrared,NIR)光譜分析技術(shù)能夠?qū)悠愤M(jìn)行快速、無損及無污染檢測(cè),實(shí)現(xiàn)對(duì)待測(cè)樣本的定性或定量分析,且可以通過光纖實(shí)現(xiàn)遠(yuǎn)程測(cè)量,這些優(yōu)勢(shì)使其在石油分析[1]、食品檢測(cè)[2]、藥品監(jiān)督[3]等領(lǐng)域有廣闊的應(yīng)用前景。直到現(xiàn)在,基于NIR分析技術(shù)的藥品鑒別算法仍得到廣泛的研究。Scafi等[4]提出NIR光譜能夠有效區(qū)分相似藥物,并通過構(gòu)建多變量模型驗(yàn)證了NIR在快速、現(xiàn)場(chǎng)和無損鑒別假藥方面的潛力。文獻(xiàn)[5]采用NIR相關(guān)系數(shù)法,通過藥品檢測(cè)車對(duì)藥品在流通領(lǐng)域中的變化進(jìn)行跟蹤,并快速篩查藥品的真?zhèn)?。Feng等[6]建立一種NIR光譜檢測(cè)算法,可快速鑒別非法摻入合成藥物的草藥。但由于NIR光譜具有譜帶寬、重疊嚴(yán)重及信息解析困難等缺點(diǎn),傳統(tǒng)的藥品鑒別技術(shù)有著一定的局限性。隨著信息時(shí)代的來臨,基于機(jī)器學(xué)習(xí)的NIR光譜分析技術(shù)被提出,能夠有效解決NIR光譜的缺陷,并在藥品分析領(lǐng)域有突破性的進(jìn)展。Deconinck等[7]運(yùn)用決策樹在Viagra和Cialis藥品數(shù)據(jù)集上建立分類模型,在二義性數(shù)據(jù)上表現(xiàn)良好。Xin等[8]利用偏最小二乘和隨機(jī)森林構(gòu)建分類器模型,改進(jìn)決策樹在多分類問題上的不足。文獻(xiàn)[9]針對(duì)藥品二類別不平衡問題,提出平衡級(jí)聯(lián)稀疏的分類方法。但隨著產(chǎn)業(yè)界數(shù)據(jù)的復(fù)雜多樣化,機(jī)器學(xué)習(xí)算法的特征學(xué)習(xí)遇到瓶頸,使得這類藥品鑒別算法對(duì)多類、高維且非線性的近紅外數(shù)據(jù)有較差的適應(yīng)性。
近年來,信息科學(xué)與技術(shù)的爆炸式發(fā)展導(dǎo)致人工智能逐漸成熟,而深度神經(jīng)網(wǎng)絡(luò)(deep neural network,DNN)是其最成功的產(chǎn)物[10-11]。無論在監(jiān)督學(xué)習(xí)還是在無監(jiān)督學(xué)習(xí)環(huán)境下,DNN都有優(yōu)秀的特征表示學(xué)習(xí)能力,并在計(jì)算機(jī)視覺、自然語言處理等領(lǐng)域[12-13]表現(xiàn)出極佳的性能。目前,NIR光譜分析技術(shù)與DNN緊密結(jié)合,在藥品鑒別任務(wù)中也取得一定的成果。文獻(xiàn)[14]采用主成分分析和反向傳播(back propagation,BP)神經(jīng)網(wǎng)絡(luò)結(jié)合的方法,有效提高多類別藥物的分類準(zhǔn)確率。Yang等[15]將dropout技術(shù)引入深度信念網(wǎng)絡(luò),克服藥品精細(xì)分類領(lǐng)域中小樣本帶來的過擬合問題。文獻(xiàn)[16]提出一種基于堆棧壓縮自編碼的NIR藥品鑒別方法,將高維光譜數(shù)據(jù)進(jìn)行特征映射,以低維特征進(jìn)行定性分析并大幅度提升分類效果。然而,神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練,主要采用BP算法迭代更新網(wǎng)絡(luò)參數(shù)及最小化目標(biāo)函數(shù)。因此對(duì)于難以獲取大量樣本的小規(guī)模藥品光譜數(shù)據(jù),DNN的BP復(fù)雜性導(dǎo)致模型容易陷入局部最優(yōu)解,在一定程度上限制了其強(qiáng)大的特征學(xué)習(xí)能力。
BP算法的弊端使得很多領(lǐng)域遇到瓶頸,甚至Hinton曾提出“拋棄反向傳播,重起爐灶”。因此,探索神經(jīng)網(wǎng)絡(luò)以外的方法具有重要的研究?jī)r(jià)值和開拓意義[17-18]。Feng等[19]提出的多層梯度提升決策樹(multi-layered gradient Boosting decision trees,MGBDT)算法,通過構(gòu)建“深層”的非可微梯度提升決策樹(gradient Boosting decision trees,GBDT)模塊,以目標(biāo)傳播的變體聯(lián)合優(yōu)化訓(xùn)練過程,探索其特征表示能力。目前尚未檢索到MGBDT在NIR分析領(lǐng)域的應(yīng)用,本文嘗試將MGBDT算法應(yīng)用于NIR藥品鑒別的實(shí)例分析,同時(shí)引入自適應(yīng)特征選擇和代價(jià)敏感學(xué)習(xí)以解決MGBDT模型內(nèi)存需求過大、樣本不均衡及特征冗余問題,并分別在膠囊和藥片兩種藥劑數(shù)據(jù)集上進(jìn)行驗(yàn)證。
特征選擇一直是模式識(shí)別領(lǐng)域的研究熱點(diǎn)。該領(lǐng)域的高維復(fù)雜性數(shù)據(jù)往往包含大量的冗余特征或噪聲信息,特征選擇的作用就是從原始特征集中選擇能夠最大化有效的數(shù)據(jù)信息及最優(yōu)化模型性能的特征子集。相關(guān)算法主要分為Filter[20]、Wrapper[21]和Embedded[22]三大類。其中,基于Embedded的特征選擇方法與模型本身緊密結(jié)合,在模型訓(xùn)練過程中優(yōu)先選擇對(duì)性能增益最大的特征,也是目前主流的特征提取思想。隨機(jī)森林[23]具有準(zhǔn)確率高、速度快、魯棒性好等優(yōu)點(diǎn),能夠應(yīng)用于特征選擇問題,可作為一種高效的Embedded特征選擇方法[24]。
然而,針對(duì)不同任務(wù),要耗費(fèi)大量人工成本對(duì)特征選擇過程進(jìn)行不同的研究和調(diào)整。為解決以上問題,在特征選擇的基礎(chǔ)上引入自動(dòng)調(diào)節(jié)比例因子λ,根據(jù)具體任務(wù)或數(shù)據(jù)自適應(yīng)選擇最優(yōu)特征,該方法目前廣泛應(yīng)用于各領(lǐng)域[25-26]。
本文將λ引入基于隨機(jī)森林的特征選擇,旨在高效且自適應(yīng)地選取最優(yōu)分類特征。具體來說,隨機(jī)森林首先計(jì)算原始數(shù)據(jù)每個(gè)特征的重要性并進(jìn)行排序,再根據(jù)某種規(guī)則選擇最小且最有效的特征子集。假設(shè)原始訓(xùn)練集為D,Bootstrap取樣后的訓(xùn)練子集為B,決策樹為T,決策樹個(gè)數(shù)為N,則特征X的重要程度計(jì)算及自適應(yīng)特征選擇的流程如下:
(1)從D中Bootstrap采樣N個(gè)子數(shù)據(jù)集Bi(i=1,2,…,N) 且分別對(duì)應(yīng)N個(gè)袋外數(shù)據(jù)OOBi(out of bag)。用子集Bi訓(xùn)練決策樹模型Ti,之后測(cè)試數(shù)據(jù)OOBi,計(jì)算袋外誤差errOOBi1,并記錄所有決策樹的袋外誤差之和errOOB1。
(2)對(duì)袋外數(shù)據(jù)OOBi所有樣本的特征X隨機(jī)加入噪聲干擾ε再次測(cè)試Ti模型,計(jì)算袋外誤差errOOBi2
(3)如果X加入隨機(jī)噪聲ε后,袋外數(shù)據(jù)準(zhǔn)確率大幅度下降,即errOOBi2遠(yuǎn)大于errOOBi1,說明X對(duì)于樣本的分類有很大影響,即重要度較高。則計(jì)算特征X的重要程度如下:
(4)將特征按照其重要度進(jìn)行降序排序,并根據(jù)自適應(yīng)比例因子λ,提取新的特征集。
(5)用新的特征集重復(fù)(1)~(4)步驟,直至特征數(shù)小于設(shè)置的最低特征維度停止。
(6)根據(jù)上述步驟得到各個(gè)特征子集及對(duì)應(yīng)的袋外誤差errOOB1,選取最低誤差的特征子集作為自適應(yīng)特征選擇的最終特征集。
強(qiáng)大的特征學(xué)習(xí)能力是DNN成功的關(guān)鍵[27],例如自編碼系列網(wǎng)絡(luò)[28-30]在監(jiān)督或無監(jiān)督學(xué)習(xí)中具有極佳的性能,廣泛應(yīng)用于圖像識(shí)別、語音識(shí)別等領(lǐng)域。Feng等[19]提出多層梯度提升決策樹算法,由多層非可微GBDT模塊構(gòu)成,汲取DNN的特征分層表示能力和梯度提升樹的集成能力兩大優(yōu)勢(shì),將原始數(shù)據(jù)映射至表征能力更強(qiáng)的特征空間。同時(shí),基礎(chǔ)構(gòu)建塊的非可微性,一定程度上避免了BP的弊端。
然而MGBDT也存在缺陷。經(jīng)實(shí)驗(yàn)研究發(fā)現(xiàn),該模型第一層構(gòu)建塊將原始數(shù)據(jù)進(jìn)行前向映射,其輸出往往存在較多冗余特征,進(jìn)而影響深層模型的特征學(xué)習(xí)。另外,每層構(gòu)建塊由與該層特征維度有相同數(shù)量的GBDT組成,高維數(shù)據(jù)的輸入會(huì)增加該模型的GBDT數(shù)量,從而消耗大量?jī)?nèi)存及運(yùn)行時(shí)間。針對(duì)高維度的藥品近紅外光譜數(shù)據(jù),本文提出一種基于特征選擇的多層梯度提升決策樹(multi-layered gradient Boosting decision trees based on feature selection,F(xiàn)GBDT),即用自適應(yīng)特征選擇模塊替換MGBDT第一層的GBDT模塊,旨在減少原始數(shù)據(jù)的冗余特征,同時(shí)降低MGBDT的空間復(fù)雜度對(duì)高維數(shù)據(jù)的敏感性,增強(qiáng)分層分布式表征能力。
Fig.1 Illustration of FGBDT structure圖1 FGBDT結(jié)構(gòu)示意圖
FGBDT具有一個(gè)原始特征輸入層、M個(gè)中間層以及一個(gè)最終輸出層,如圖1所示。其中,oi,i∈{0,1,…,M} 分別作為輸入層和中間層的前向輸出,zj,j∈{1,2,…,M}分別是中間層的逆向偽標(biāo)簽。中間層的第一層是特征選擇器,對(duì)原始數(shù)據(jù)特征按重要程度排序,在最小化特征信息損失的基礎(chǔ)上,選擇有益特征,提升深層模型的特征表示學(xué)習(xí)能力。之后的M-1個(gè)中間層來自MGBDT結(jié)構(gòu),每層結(jié)構(gòu)包含兩個(gè)GBDT模塊:F和G構(gòu)建塊。F用于特征的前向映射,G用于特征的逆向映射。學(xué)習(xí)任務(wù)是指學(xué)習(xí)每層的映射模塊,使得最終輸出在訓(xùn)練集上最小化經(jīng)驗(yàn)損失。
具體來說,算法流程分為三個(gè)階段。首先,初始化階段。產(chǎn)生一些高斯噪聲作為中間層的輸出,并訓(xùn)練一些非常小的樹結(jié)構(gòu)以獲得,其中索引0表示在該初始化階段中獲得的樹結(jié)構(gòu),從而訓(xùn)練過程可以繼續(xù)進(jìn)行迭代更新前向映射和逆向映射。其次,Gi,i∈{2,3,…,M}更新階段。在迭代t過程,假設(shè)給出前一次迭代的前向映射,獲取與對(duì)應(yīng)的“偽逆”映射,使得式(6)成立:
其中,oi-1是第i-1層Fi-1的輸出;是第t-1次迭代過程的第i層的前向映射構(gòu)建塊;是第t次迭代過程的第i層的逆向映射構(gòu)建塊??赏ㄟ^最小化重建損失函數(shù)的期望值來實(shí)現(xiàn),如式(7):
其中,L是重建損失函數(shù);Ex是L的期望。從而更新,進(jìn)一步更新前一層。最后,F(xiàn)i,i∈{2,3,…,M}更新階段。在迭代t過程,關(guān)鍵在于為分配偽標(biāo)簽,且每層的偽標(biāo)簽被定義如式(8):
那么,只要設(shè)置好第M層的偽標(biāo)簽,就可以使整個(gè)結(jié)構(gòu)進(jìn)行更新。這里使用真實(shí)標(biāo)簽y定義M層的偽標(biāo)簽,如式(10):
其中,α是殘差梯度系數(shù);y是真實(shí)標(biāo)簽。用計(jì)算該層偽標(biāo)簽,如式(11):
一般的分類任務(wù),將最終輸出層設(shè)置為線性分類器。主要有兩個(gè)原因:首先,淺層將被迫學(xué)習(xí)一個(gè)盡可能線性可分的特征重新表示,這是一個(gè)有用的屬性。其次,輸出層和前層之間的維度的差異通常很大,因此可能難以學(xué)習(xí)準(zhǔn)確的逆映射。當(dāng)使用線性分類器作為頂層的前向映射時(shí),不需要計(jì)算該特定的對(duì)應(yīng)逆映射,因?yàn)榭梢酝ㄟ^關(guān)于最后一個(gè)隱藏層的輸出的全局損失的梯度來計(jì)算下面層的偽標(biāo)簽。本文最終輸出層用的是Softmax層,如式(12)。
其中,C是類別個(gè)數(shù);xi是第i個(gè)Softmax神經(jīng)元的輸入;y(xi)是第i類別的預(yù)測(cè)概率。
現(xiàn)實(shí)任務(wù)的數(shù)據(jù)大多都存在樣本不均衡的缺陷,往往是樣本的類別不平衡或樣本的難分易分問題。在類別失衡的分類任務(wù)中,少數(shù)類樣本對(duì)分類器的影響較小,容易降低其泛化能力,尤其少數(shù)類樣本可能更為重要。另外,不同樣本可能有不同的區(qū)分難度,而簡(jiǎn)單樣本與困難樣本在訓(xùn)練中所占的權(quán)重相同,會(huì)導(dǎo)致較難學(xué)習(xí)樣本很難被挖掘分析。藥品鑒別是典型的類別不均衡問題,相比于真藥,假劣藥的樣本往往較少且較難學(xué)習(xí),但其被誤判的損失會(huì)更加嚴(yán)重,故針對(duì)樣本不均衡問題進(jìn)行研究很有必要。
樣本不均衡問題的研究日益成熟[31-33],其中代價(jià)敏感學(xué)習(xí)[34]表現(xiàn)最為突出。目前Lin等[35]提出一種新的損失函數(shù)Focal Loss,解決了目標(biāo)檢測(cè)中正負(fù)樣本的不平衡問題及樣本的難訓(xùn)練問題。本文將Focal Loss引入NIR光譜的藥品鑒別任務(wù),并結(jié)合FGBDT算法,旨在抑制藥品樣本不均衡的學(xué)習(xí)敏感性。
Focal Loss是基于交叉熵函數(shù)的一種損失函數(shù),故本文首先以二分類為例,介紹說明交叉熵?fù)p失函數(shù)(cross entropy loss),如式(13)所示:
其中,y是類別的真實(shí)標(biāo)簽;y'是類別的預(yù)測(cè)概率。交叉熵?fù)p失函數(shù)根據(jù)正負(fù)樣本相應(yīng)的概率輸出,以調(diào)整損失值大小,即預(yù)測(cè)輸出越接近真實(shí)值,損失越??;反之越大。然而,該函數(shù)收斂緩慢,優(yōu)化困難。更重要的是,它無法解決正負(fù)樣本的平衡問題及簡(jiǎn)單與困難樣本的區(qū)分問題。
而Focal Loss是在交叉熵?fù)p失函數(shù)基礎(chǔ)上進(jìn)行的修改,期望少數(shù)樣本及困難樣本對(duì)損失的貢獻(xiàn)變大,使模型更傾向于從這些樣本上學(xué)習(xí),如式(14):
其中,α對(duì)類別不均衡問題的損失函數(shù)進(jìn)行控制,以平衡正負(fù)樣本本身的比例不均。γ對(duì)易分/難分樣本問題的損失函數(shù)進(jìn)行調(diào)節(jié),以調(diào)整簡(jiǎn)單樣本權(quán)重降低或困難樣本權(quán)重增加的速率。
對(duì)于多類樣本的情況,原理相同。如果某一類或某幾類樣本較多,模型肯定也會(huì)偏向于數(shù)目多或者易訓(xùn)練的樣本類別,進(jìn)而影響模型的泛化能力,在藥品鑒別領(lǐng)域是很常見且很重要的問題?;贔GBDT算法引入Focal Loss,利用平衡因子α和γ對(duì)類別不平衡及易分難分的樣本進(jìn)行控制,使樣本在訓(xùn)練集所占的學(xué)習(xí)權(quán)重達(dá)到一定程度的平衡,相應(yīng)損失函數(shù)可以快速收斂。
該數(shù)據(jù)由中國(guó)食品藥品檢定研究院提供,且所有樣品均通過了法定方法檢驗(yàn)。本文選取膠囊、藥片兩種類型藥劑的NIR數(shù)據(jù)為實(shí)驗(yàn)數(shù)據(jù),嘗試用新算法對(duì)主成分相同且僅輔料或生產(chǎn)工藝有差異的藥品NIR光譜進(jìn)行區(qū)分。
實(shí)驗(yàn)數(shù)據(jù)A,是哈藥集團(tuán)三精制藥諾捷有限責(zé)任公司及其他制藥公司生產(chǎn)的鋁塑包裝羅紅霉素膠囊,總計(jì)337個(gè)樣本;實(shí)驗(yàn)數(shù)據(jù)B,是北京中惠藥業(yè)、上海信誼藥廠、深圳市中聯(lián)制藥等10家藥廠生產(chǎn)的非鋁塑包裝鹽酸二甲雙胍片,共計(jì)691個(gè)樣本,如表1所示。
Table 1 Profile of experimental data A and B表1 實(shí)驗(yàn)數(shù)據(jù)A和B簡(jiǎn)介
Fig.2 NIR spectrum curves of dataset A and B圖2 數(shù)據(jù)集A和B的近紅外光譜曲線
Fig.3 NIR spectrum curves of dataset A and B after preprocessing圖3 預(yù)處理后數(shù)據(jù)集A和B的近紅外光譜曲線
使用Bruker Matrix光譜儀測(cè)定每個(gè)樣本在不同NIR波長(zhǎng)下的吸光度值得到相應(yīng)光譜曲線,如圖2所示。NIR光譜曲線的橫坐標(biāo)表示波數(shù)(波數(shù)=1/波長(zhǎng)),范圍約為11 995~4 000 cm-1,間隔4 cm-1,共2 074個(gè)波數(shù);縱坐標(biāo)表示不同波數(shù)對(duì)應(yīng)的吸光度值,共2 074個(gè)吸光點(diǎn)。因此,每個(gè)樣本的NIR光譜數(shù)據(jù)是不同波數(shù)下的一組吸光度值,具有一維的數(shù)據(jù)表示形式,包含2 074個(gè)特征。
為消除原始數(shù)據(jù)的噪聲干擾,且維持光譜的形狀、寬度不變,對(duì)數(shù)據(jù)A和B均采用Savitsky-Golay平滑求導(dǎo)方法進(jìn)行預(yù)處理,其窗口大小取9,多項(xiàng)式階數(shù)取2,求導(dǎo)次數(shù)取1。
預(yù)處理后的光譜數(shù)據(jù)具有一維表示形式,包含2 074維特征,對(duì)應(yīng)的NIR光譜曲線如圖3所示。
本文應(yīng)用的度量方法有分類準(zhǔn)確率(Accuracy,Acc)、準(zhǔn)確率標(biāo)準(zhǔn)差(standard deviation of accuracy,Std)、F1值及算法運(yùn)行時(shí)間(Time)。以二分類為例,設(shè)定TP、FN、TN、FP分別表示分類正確的正類、分類錯(cuò)誤的正類、分類正確的負(fù)類、分類錯(cuò)誤的負(fù)類。
分類準(zhǔn)確率是模型正確分類的樣本數(shù)與總樣本數(shù)之比,最能直觀反映分類模型性能的好壞,定義如下:
分類準(zhǔn)確率標(biāo)準(zhǔn)差是多次準(zhǔn)確率與其平均值偏差的算術(shù)平均數(shù)的平方根,用來衡量模型預(yù)測(cè)的穩(wěn)定性。其計(jì)算公式如下:
其中,N表示交叉驗(yàn)證的折數(shù);ai是第i折交叉驗(yàn)證的分類準(zhǔn)確率是N折交叉驗(yàn)證的準(zhǔn)確率均值。
但分類準(zhǔn)確率不能很好地反映各類的具體分類情況,尤其是處理類別不均衡問題,該指標(biāo)并不能充分驗(yàn)證算法的有效性。因此,為了更好地評(píng)估分類性能,增加F1值作為評(píng)價(jià)指標(biāo)。F1值是以每個(gè)類別為基礎(chǔ)進(jìn)行定義的,包括精確率(Precision)和召回率(Recall)。精確率是指正確預(yù)測(cè)為正類樣本占全部預(yù)測(cè)為正類樣本的比例;召回率是指正確預(yù)測(cè)為正類樣本占全部實(shí)際為正類樣本的比例。而F1值為兩者的調(diào)和平均數(shù)。相關(guān)定義如下:
為驗(yàn)證改進(jìn)MGBDT的特征重表示能力以及代價(jià)敏感學(xué)習(xí)的有效性,除以上評(píng)價(jià)指標(biāo)之外,本文引入特征表示圖及訓(xùn)練、測(cè)試狀態(tài)圖進(jìn)行分析。
本實(shí)驗(yàn)基于Linux操作系統(tǒng)、i7-6700 CPU和32 GB安裝內(nèi)存等環(huán)境,使用Python編程語言及PyCharm軟件開發(fā)平臺(tái)進(jìn)行設(shè)計(jì)與實(shí)現(xiàn)。針對(duì)藥品精細(xì)分類任務(wù),對(duì)近紅外光譜數(shù)據(jù)進(jìn)行預(yù)處理,并實(shí)現(xiàn)模型的訓(xùn)練、測(cè)試及對(duì)比研究。具體過程如下:
(1)預(yù)處理階段
為了消除噪聲干擾且保護(hù)光譜數(shù)據(jù)形狀、寬度不變,利用Savitsky-Golay平滑求導(dǎo)算法對(duì)兩個(gè)樣本集進(jìn)行預(yù)處理,詳細(xì)信息見3.2節(jié)。
(2)訓(xùn)練階段
將預(yù)處理后的光譜數(shù)據(jù),送入到各模型中訓(xùn)練。其中,支持向量機(jī)(support vector machines,SVM)選擇線性核函數(shù)。極限梯度提升樹(extreme gradient Boosting trees,XGBoost)包含100個(gè)樹分類器。多層感知機(jī)(multi-layer perceptron,MLP)有兩層隱藏層,分別包含1 024、256個(gè)神經(jīng)元,激活函數(shù)為ReLU,權(quán)重優(yōu)化器為Adam,損失函數(shù)為Cross Entropy。堆棧自編碼(stacked auto encoder,SAE)包含預(yù)訓(xùn)練和微調(diào)階段。預(yù)訓(xùn)練階段,分別訓(xùn)練具有input-1 024、1 024-256、256-output網(wǎng)絡(luò)結(jié)構(gòu)的3個(gè)編碼器,優(yōu)化器為Adam,損失函數(shù)為均方誤差(mean square error,MSE);微調(diào)階段,訓(xùn)練具有input-1 024-256-output網(wǎng)絡(luò)結(jié)構(gòu)的預(yù)訓(xùn)練模型,優(yōu)化器為Adam,損失函數(shù)為Cross Entropy。FGBDT結(jié)構(gòu)input-f-f/2-output(f表示模型自適應(yīng)的特征維度,自適應(yīng)比例因子為0.6,最低特征維數(shù)為256),優(yōu)化器為Adam,損失函數(shù)為Cross Entropy,目標(biāo)學(xué)習(xí)率為0.1。CS_FGBDT相比于FGBDT,損失函數(shù)為Focal Loss,經(jīng)實(shí)驗(yàn)證明平衡因子α取0.21,γ取0.2為最佳,其余配置不變。
(3)測(cè)試階段
用訓(xùn)練好的模型對(duì)測(cè)試樣本進(jìn)行測(cè)試。模型的最后一層分類器計(jì)算出測(cè)試樣本屬于每個(gè)類別的“概率”,概率最大的類別即為樣本的預(yù)測(cè)類別。將所有測(cè)試樣本的預(yù)測(cè)值與真實(shí)值進(jìn)行對(duì)比,計(jì)算測(cè)試準(zhǔn)確率、標(biāo)準(zhǔn)差及F1值等評(píng)價(jià)指標(biāo)。
(4)對(duì)比階段
經(jīng)初步分析,MGBDT算法在本文實(shí)驗(yàn)環(huán)境(CPU,32 GB)下易內(nèi)存溢出且時(shí)間復(fù)雜度過高,并不適于實(shí)際應(yīng)用下的高維NIR光譜藥品鑒別,因此該算法的實(shí)驗(yàn)意義不大,不用于模型對(duì)比。
本文選用經(jīng)典商業(yè)軟件算法(SVM)、梯度提升樹算法(XGBoost)、神經(jīng)網(wǎng)絡(luò)算法(MLP、SAE)作為對(duì)比方法,旨在以實(shí)際應(yīng)用和學(xué)術(shù)理論等角度綜合評(píng)估FGBDT、CS_FGBDT的性能。為驗(yàn)證各算法在不同大小訓(xùn)練集上的分類能力,以2∶8、3∶7、4∶6、5∶5、6∶4、7∶3、8∶2等7種不同比例選取訓(xùn)練集/測(cè)試集,并在每個(gè)比例數(shù)據(jù)集下進(jìn)行十折交叉驗(yàn)證。同時(shí),將分類準(zhǔn)確率及F1值作為模型分類指標(biāo);將準(zhǔn)確率標(biāo)準(zhǔn)差作為模型穩(wěn)定性指標(biāo);將運(yùn)行時(shí)間作為模型速度指標(biāo)。
本節(jié)對(duì)SVM、XGBoost、MLP、SAE、FGBDT等對(duì)比算法的實(shí)驗(yàn)細(xì)節(jié)進(jìn)行分析說明。
對(duì)于高維小樣本數(shù)據(jù),尤其特征維數(shù)遠(yuǎn)遠(yuǎn)大于樣本維數(shù),SVM一般選取線性核函數(shù)。研究表明,多項(xiàng)式核、徑向基核等SVM的藥品分類性能確實(shí)劣于線性核SVM。
MLP、SAE的網(wǎng)絡(luò)結(jié)構(gòu)為input-1 024-256-output,該配置主要參考文獻(xiàn)[16]。針對(duì)小規(guī)模NIR數(shù)據(jù),若加深神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),不僅會(huì)增加模型的時(shí)間復(fù)雜度,還易導(dǎo)致模型過擬合。另外,在具有不同規(guī)模訓(xùn)練集的實(shí)驗(yàn)中,可適當(dāng)調(diào)節(jié)輸入數(shù)據(jù)的批量大小(一般小比例訓(xùn)練集取32,大比例訓(xùn)練集取128),有效地提升不同階段模型的擬合能力、穩(wěn)定性和速度。
XGBoost是梯度提升樹算法,而FGBDT是基于多層梯度提升樹的分類方法,前者是后者構(gòu)建塊(block)的組成部分。兩者進(jìn)行對(duì)比,以突出多層非可微梯度提升樹對(duì)特征分層表示的有效性。經(jīng)廣泛實(shí)驗(yàn)驗(yàn)證,本實(shí)驗(yàn)FGBDT的最優(yōu)模型結(jié)構(gòu)設(shè)計(jì)為input-f-f/2-output(f為自適應(yīng)的特征維數(shù)),而過于深層的模型會(huì)導(dǎo)致特征信息丟失或過擬合,且時(shí)間代價(jià)較大。表2給出實(shí)驗(yàn)數(shù)據(jù)B的訓(xùn)練和測(cè)試集為3∶2時(shí),不同F(xiàn)GBDT模型結(jié)構(gòu)間的性能對(duì)比。
Table 2 Performance comparison of different FGBDT model structures表2 不同F(xiàn)GBDT模型結(jié)構(gòu)的性能對(duì)比
3.6.1 特征重表示
多層梯度提升樹算法的主體結(jié)構(gòu)由深層非可微模塊組成,避免了BP算法的缺陷,同時(shí)具有特征分布式學(xué)習(xí)的可探索性。針對(duì)藥品數(shù)據(jù)的高維復(fù)雜特性,本文將自適應(yīng)特征選擇與多層梯度提升樹方法結(jié)合,以消除內(nèi)存占用率過大及噪聲信息的影響,并在數(shù)據(jù)集A和B上分別對(duì)FGBDT的特征學(xué)習(xí)能力進(jìn)行驗(yàn)證,如圖4(a)、圖4(b)所示。左圖是原始數(shù)據(jù)的空間分布圖,可以看出部分不同類別的樣本之間的類間距離較小,而類內(nèi)距離較大。用FGBDT算法對(duì)原始數(shù)據(jù)進(jìn)行特征重表示,映射到新的特征空間,極大增加了類間距離并降低了類內(nèi)距離,如右圖所示。由此,可初步推論,F(xiàn)GBDT算法具備優(yōu)秀的特征學(xué)習(xí)能力及特征重表示能力,對(duì)后續(xù)非線性分類器的性能有較大的增益效果。
3.6.2 模型預(yù)測(cè)能力
Fig.4 Feature visualization of experimental data圖4 實(shí)驗(yàn)數(shù)據(jù)的特征可視化
Table 3 Classification accuracy of each algorithm on dataset A and B表3 各算法在數(shù)據(jù)集A和B上的分類準(zhǔn)確率
Fig.5 F1-score of each algorithm on dataset A and B圖5 各算法在數(shù)據(jù)集A和B上的F1值
在分類準(zhǔn)確率方面,如表3所示。MLP算法總體表現(xiàn)一般,尤其數(shù)據(jù)量較小時(shí),其分類準(zhǔn)確率明顯較低,說明模型沒有學(xué)到有效信息或者陷入局部最優(yōu)。而SAE算法解決了神經(jīng)網(wǎng)絡(luò)的參數(shù)初始化問題,使模型加速收斂,且避開局部最優(yōu)解,故其類性能優(yōu)于MLP,同時(shí)表明特征分層表示有益于分類。XGBoost算法的準(zhǔn)確率與SAE的相似,可知梯度提升樹算法對(duì)NIR光譜數(shù)據(jù)有一定的分析能力,但性能劣于SVM。隨著訓(xùn)練集增大,SVM的模型優(yōu)勢(shì)愈加明顯,特別是在二分類實(shí)驗(yàn)下,其預(yù)測(cè)精度達(dá)到最高。相比其他模型,F(xiàn)GBDT結(jié)合特征分層表示和決策樹集成思想,能有效學(xué)習(xí)數(shù)據(jù)特征,在各個(gè)規(guī)模數(shù)據(jù)下表現(xiàn)十分優(yōu)越,尤其在小數(shù)據(jù)量上具有明顯的分類優(yōu)勢(shì)。在此基礎(chǔ)上,F(xiàn)GBDT結(jié)合代價(jià)敏感學(xué)習(xí)機(jī)制,以提升其分類性能,使得CS_FGBDT的預(yù)測(cè)精度更優(yōu)。
在F1值方面,如圖5所示。隨著訓(xùn)練數(shù)據(jù)集的增加,各模型的F1值也逐漸增大,說明大數(shù)據(jù)量有利于提升模型的綜合分類性能。在各個(gè)比例的訓(xùn)練集/測(cè)試集下,F(xiàn)GBDT的F1值達(dá)到最優(yōu),表明該算法在各類別數(shù)據(jù)上的分類性能表現(xiàn)優(yōu)越。而CS_FGBDT的代價(jià)敏感學(xué)習(xí)進(jìn)一步降低不均衡數(shù)據(jù)對(duì)各類別預(yù)測(cè)能力的不利影響,相比FGBDT,其F1值得到提升。
綜合考慮模型的分類準(zhǔn)確率和F1值,F(xiàn)GBDT和CS_FGBDT在各個(gè)規(guī)模訓(xùn)練集下具有最佳的預(yù)測(cè)能力。
3.6.3 算法穩(wěn)定性
Fig.6 Standard deviation of accuracy of each algorithm on dataset A and B圖6 各算法在數(shù)據(jù)集A和B上的精度標(biāo)準(zhǔn)差
在算法穩(wěn)定性方面,如圖6所示。MLP的總體魯棒性較差,但隨著數(shù)據(jù)量增大,該模型逐漸穩(wěn)定,說明小數(shù)據(jù)量不適用于神經(jīng)網(wǎng)絡(luò)方法。由于逐層貪婪學(xué)習(xí)的SAE有預(yù)訓(xùn)練階段,其穩(wěn)定性能明顯優(yōu)于MLP,但不如XGBoost算法,表明梯度提升決策樹算法更適合NIR數(shù)據(jù)的穩(wěn)定分析。相比之下,SVM算法在二分類實(shí)驗(yàn)中表現(xiàn)十分穩(wěn)定,但在多分類實(shí)驗(yàn)中稍遜于FGBDT。而CS_FGBDT在各個(gè)比例訓(xùn)練集下表現(xiàn)出更加優(yōu)越的魯棒性,可以推斷多層梯度提升樹模型在多類復(fù)雜性的數(shù)據(jù)下適應(yīng)性良好。
3.6.4 時(shí)間復(fù)雜度
模型的時(shí)間復(fù)雜度(此實(shí)驗(yàn)僅在CPU環(huán)境下)如表4所示。SVM的運(yùn)行速度具有最為明顯的優(yōu)勢(shì),可快速地處理二分類或多分類問題。MLP的訓(xùn)練時(shí)間高于SVM,但稍低于XGBoost,主要因?yàn)閄GBoost是多決策樹集成的串行結(jié)構(gòu),相對(duì)耗時(shí)。SAE包含預(yù)訓(xùn)練階段,導(dǎo)致其時(shí)間復(fù)雜度最高。FGBDT是多層的梯度提升決策樹,每層構(gòu)建塊由XGBoost構(gòu)成,因此訓(xùn)練速度低于XGBoost,但高于結(jié)構(gòu)較為復(fù)雜的SAE。而CS_FGBDT與FGBDT的模型結(jié)構(gòu)一致且配置類似,因此兩者時(shí)間復(fù)雜度相似。
由以上分析可知,F(xiàn)GBDT的訓(xùn)練速度僅高于SAE,但遠(yuǎn)低于SVM等算法,表明其時(shí)間復(fù)雜度相對(duì)較高。在模型具備優(yōu)秀的分類性能和穩(wěn)定性的前提下,提升運(yùn)行速度對(duì)實(shí)際應(yīng)用有重大意義,是未來的探索點(diǎn)。在算法結(jié)構(gòu)層面,可考慮FGBDT構(gòu)建塊的多線程設(shè)計(jì);在硬件層面,由于該模型由決策樹和線性分類器構(gòu)成,可使用GPU進(jìn)行加速。
Fig.7 Learning curves of FGBDT and CS_FGBDT圖7 FGBDT與CS_FGBDT的學(xué)習(xí)曲線
3.6.5 代價(jià)敏感學(xué)習(xí)的影響
上文提出的FGBDT算法在分類準(zhǔn)確率及模型穩(wěn)定性方面,相比其他算法有更優(yōu)越的性能,是一種有效的藥品鑒別方法。但藥品NIR數(shù)據(jù)存在樣本不均衡問題,故本文在FGBDT算法的基礎(chǔ)上引入代價(jià)敏感學(xué)習(xí),期望緩解樣本不平衡對(duì)收斂速度及模型不穩(wěn)定等問題造成的影響,以提高模型分類效果。下面以評(píng)價(jià)指標(biāo)、訓(xùn)練及測(cè)試狀態(tài)來分析FGBDT與CS_FGBDT的性能。
評(píng)價(jià)指標(biāo)方面,如表3、圖5及圖6所示。CS_FGBDT的性能稍優(yōu)于FGBDT,特別是在樣本不均衡問題相對(duì)突出的小數(shù)據(jù)上,其分類準(zhǔn)確率、模型穩(wěn)定性及F1值都有較大提升。這表明代價(jià)敏感學(xué)習(xí)對(duì)FGBDT模型的性能有一定的提升作用,且適用于樣本不平衡的藥品數(shù)據(jù)。
訓(xùn)練及測(cè)試狀態(tài)方面,如圖7(a)、圖7(b)所示。相比FGBDT模型,CS_FGBDT的初始準(zhǔn)確率較高,隨著迭代次數(shù)逐步增加直至穩(wěn)定。同時(shí),CS_FGBDT損失收斂更快且更低。進(jìn)一步說明該模型有更優(yōu)秀的魯棒性,且更快地達(dá)到全局最優(yōu)點(diǎn)。
針對(duì)主流算法在鑒別藥品數(shù)據(jù)時(shí)存在的缺陷以及多層梯度提升樹算法的不足,提出一種新的藥品鑒別算法CS_FGBDT,用于處理樣本類別多、不均衡且高維非線性的藥品數(shù)據(jù)。所提出的模型在MGBDT基礎(chǔ)上引入特征選擇器,并替換第一層GBDT模塊,以降低原始數(shù)據(jù)的冗余特征及噪聲信息,同時(shí)保證模型的內(nèi)存低消耗;并引入代價(jià)敏感學(xué)習(xí),將Focal Loss用于最終輸出層,提升模型性能。將改進(jìn)的算法在樣本不均衡的羅紅霉素膠囊、鹽酸二甲雙胍藥片數(shù)據(jù)集上進(jìn)行分類鑒別。實(shí)驗(yàn)結(jié)果證明,與SVM、MLP、SAE、XGBoost等相比,其模型的分類精度及穩(wěn)定性表現(xiàn)優(yōu)越,且適用于不同規(guī)模數(shù)據(jù)。另外,引入代價(jià)敏感學(xué)習(xí)機(jī)制的CS_FGBDT在處理樣本不均衡問題的能力更優(yōu)于FGBDT,且模型學(xué)習(xí)狀態(tài)更加穩(wěn)定。綜合而言,該方法對(duì)于相似度較高、重疊嚴(yán)重、信息解析困難的藥品NIR光譜有更好的辨識(shí)能力,即使處理小規(guī)模數(shù)據(jù)的能力也十分突出。但是,如何有效地優(yōu)化模型速度及自適應(yīng)模型復(fù)雜度是今后研究的重點(diǎn)。