繆澤鑫,張會(huì)生,任 磊
(1. 大連海事大學(xué)信息科學(xué)技術(shù)學(xué)院,遼寧 大連 116026;2. 大連海事大學(xué)理學(xué)院,遼寧 大連 116026)
AdaBoost是一種重要的集成學(xué)習(xí)算法[1]。它首先從弱學(xué)習(xí)算法出發(fā),通過反復(fù)學(xué)習(xí)得到一組弱分類器,最終將弱分類器組合成強(qiáng)分類器。其思想是:對(duì)于復(fù)雜任務(wù)而言,將多個(gè)專家的判斷進(jìn)行適當(dāng)綜合而作出的判斷,往往要比其中任何一個(gè)專家的單獨(dú)判斷好。AdaBoost有很多良好特性:首先弱分類器權(quán)重可以通過計(jì)算得到而非人工調(diào)整;其次在數(shù)學(xué)上可以證明隨著訓(xùn)練次數(shù)的增加,訓(xùn)練誤差以指數(shù)速率下降[1]。正因如此,它已被廣泛應(yīng)用于人臉識(shí)別、目標(biāo)檢測(cè)等領(lǐng)域。AdaBoost的學(xué)習(xí)過程可以分成三個(gè)步驟:①找到若干個(gè)誤差相互獨(dú)立的弱分類器;②訓(xùn)練得到弱分類器的權(quán)重;③弱分類器合并得到最終的強(qiáng)分類器。
廖紅文等人[2]對(duì)AdaBoost及其改進(jìn)算法進(jìn)行綜述,他們介紹了AdaBoost算法在權(quán)值更新方法上的研究進(jìn)展,指出原始AdaBoost算法在弱分類器權(quán)重和樣本權(quán)重的訓(xùn)練問題上存在缺陷。
從數(shù)學(xué)上看,AdaBoost的弱分類器參數(shù)的設(shè)定可以看作函數(shù)空間中的梯度下降算法[3],它在每一步選擇與負(fù)梯度下降方向最接近的分類器作為下降方向,并用精確線搜索確定下降步長(zhǎng)。這種計(jì)算方法本質(zhì)上是一種貪心算法,即只根據(jù)當(dāng)前樣本的分布來搜索使得誤差下降最快的方向和步長(zhǎng),但在全局上并不一定能保證最優(yōu)。針對(duì)該問題,蔣焰等人[4]認(rèn)為訓(xùn)練樣本的分布不僅與當(dāng)前分類器有關(guān),而且也需要考慮前面的若干分類器。他們進(jìn)而提出的新算法在每一個(gè)分類器集成進(jìn)來后會(huì)對(duì)前面產(chǎn)生的某些分類器權(quán)重進(jìn)行修正,所以前面訓(xùn)練好的弱分類器的權(quán)重不再是固定值,而會(huì)根據(jù)整體性能進(jìn)行調(diào)整。
從實(shí)際問題出發(fā),李闖等人[5]指出弱分類器的加權(quán)參數(shù)不但與錯(cuò)誤率有關(guān),還與其對(duì)正樣本的識(shí)別能力有關(guān),并在此基礎(chǔ)上提出AD AdaBoost算法。該算法采用更為有效的參數(shù)求解方法,使其在目標(biāo)檢測(cè)問題上具有更好的效果。Richard Machlin[6]認(rèn)為后來的分類器更關(guān)注于之前沒有被正確分類的樣本,因此可以猜想到之后的分類器在某些類別的樣本上表現(xiàn)很好,而在其它類別的樣本上表現(xiàn)一般。所以對(duì)于一個(gè)分類器來說,不考慮其對(duì)樣本擅長(zhǎng)處理與否而使用相同的權(quán)重,是不合理的。針對(duì)該問題,其提出的RegionBoost算法能對(duì)弱分類器權(quán)重進(jìn)行動(dòng)態(tài)調(diào)整。
在樣本權(quán)重的調(diào)整問題上,對(duì)多次分類錯(cuò)誤的樣本,弱分類器會(huì)不斷增加其權(quán)重進(jìn)而導(dǎo)致過擬合。針對(duì)該問題,Allende等人[7]提出了RADA算法,通過對(duì)誤分類樣本的權(quán)重作閾值限制,有效解決了誤分類樣本權(quán)值偏高的問題。Yunlong[8]提出的EAdaBoost算法則先用KNN剔除噪聲樣本再進(jìn)行樣本訓(xùn)練。
不同于上述分別單獨(dú)從樣本的權(quán)重調(diào)整或弱分類器的權(quán)重調(diào)整的角度對(duì)AdaBoost開展的研究,本文考慮將樣本和弱分類器的權(quán)重優(yōu)化納入統(tǒng)一框架,提出引入注意力機(jī)制的AdaBoost算法。這里注意力機(jī)制的思想是:對(duì)于損失函數(shù)的優(yōu)化而言,每一個(gè)樣本和分類器所提供的貢獻(xiàn)是不同的,因此可利用神經(jīng)網(wǎng)絡(luò)強(qiáng)大的自學(xué)習(xí)能力,為樣本和弱分類器的重要程度自動(dòng)打分。此模型不僅通過對(duì)損失函數(shù)引入關(guān)于樣本權(quán)值的L2正則項(xiàng)來控制錯(cuò)分類樣本權(quán)重的過分增長(zhǎng),而且為弱分類器的動(dòng)態(tài)調(diào)整問題提供了除多步校正算法[4]外的另一途徑。
AdaBoost算法的具體流程[1]如下:
設(shè)訓(xùn)練數(shù)據(jù)集T={(x1,y1),(x2,y2),…,(xN,yN)},其中xi∈X?Rn,yi∈Y={-1,+1}。初始化訓(xùn)練集的權(quán)重分布
對(duì)m=1,2,…,M
(a)使用具有權(quán)值分布Dm的訓(xùn)練數(shù)據(jù)集學(xué)習(xí),得到基本分類器
Gm(x):X→-1,+1
(b)計(jì)算Gm(x)在訓(xùn)練數(shù)據(jù)集上的分類誤差率
(1)
(c)計(jì)算Gm(x)的權(quán)重系數(shù)
(2)
(d)更新訓(xùn)練數(shù)據(jù)集的權(quán)值分布
Dm+1=(wm+1,1,…wm+1,i,…,wm+1,N)
(3)
(4)
這里Zm是規(guī)范因子,
(5)
得到基本分類器
(6)
和最終的分類器
(7)
其中sign(f(x))是使得結(jié)果為1或-1的符號(hào)函數(shù)。
機(jī)器學(xué)習(xí)中的注意力機(jī)制[9]源自于人類視覺的注意力機(jī)制:將有限的注意力集中在重點(diǎn)信息上,從關(guān)注全局到關(guān)注重點(diǎn),從而節(jié)省資源,快速獲得最有效的信息。從注意力機(jī)制的實(shí)現(xiàn)角度,可將其理解為一種權(quán)重參數(shù)的分配機(jī)制,目標(biāo)是協(xié)助模型捕捉重要信息。
目前注意力機(jī)制已經(jīng)應(yīng)用到越來越多的領(lǐng)域,如在機(jī)器翻譯[10]中引入注意力機(jī)制,只關(guān)注與當(dāng)前狀態(tài)有關(guān)的上下文,提高了翻譯系統(tǒng)的準(zhǔn)確度。在推薦系統(tǒng)方面,通過在原始的FM模型[11]上加上一個(gè)注意力層來自動(dòng)調(diào)節(jié)二階特征的權(quán)重,AFM模型[12]相比FM模型提高了預(yù)測(cè)準(zhǔn)確度。
引入注意力機(jī)制的AdaBoost模型結(jié)構(gòu)如圖1所示,其中第一個(gè)注意力層用來為樣本打分,第二個(gè)注意力層為弱分類器打分后輸出損失函數(shù)。定義損失函數(shù)
(8)
(9)
(10)
其中h1、h2分別是兩個(gè)神經(jīng)網(wǎng)絡(luò)的全連接層到softmax輸出層的權(quán)重向量,W1、b1分別是弱分類器到神經(jīng)網(wǎng)絡(luò)全連接層的權(quán)值矩陣和偏置向量,W2、b2分別是樣本到神經(jīng)網(wǎng)絡(luò)全連接層的權(quán)值矩陣和偏置向量。通過softmax層歸一化后樣本和弱分類的注意力得分為
(11)
(12)
模型的具體執(zhí)行過程如下:首先隨機(jī)初始化樣本和弱分類器的得分,并將樣本輸入到第一個(gè)注意力網(wǎng)絡(luò)層中,樣本經(jīng)過注意力層得到新的得分后輸入到第一個(gè)弱分類器中,弱分類器對(duì)樣本預(yù)測(cè)后輸入到第二個(gè)注意力層中得到損失函數(shù)。利用隨機(jī)梯度下降法最小化損失函數(shù)來反向更新樣本和弱分類器的注意力得分。當(dāng)?shù)谝粋€(gè)弱分類器訓(xùn)練結(jié)束后將樣本輸入到第二個(gè)弱分類器中,而在第二個(gè)弱分類器訓(xùn)練時(shí)綜合考慮當(dāng)前弱分類器和之前弱分類器的損失,即
floss=f第一個(gè)弱分類器的損失+f第二個(gè)弱分類器的損失
(13)
并重新更新第一個(gè)弱分類器的得分。第一個(gè)弱分類器在第二次訓(xùn)練時(shí)只更新弱分類器得分而不改變之前樣本在其上的得分,這樣保證了樣本在不同弱分類器上采用不同的得分。之后每次均采用相同方式更新弱分類器得分。同理在計(jì)算第n個(gè)弱分類器的注意力得分時(shí)會(huì)結(jié)合之前n-1個(gè)弱分類器的損失并更新前n-1個(gè)弱分類器的注意力得分。傳統(tǒng)的 Adaboost 算法在訓(xùn)練弱分類器時(shí)每一次都是由貪心算法來獲得局部最佳弱分類器權(quán)重,不能確保全局最佳。而本文考慮了整體性,認(rèn)為新加入的弱分類器會(huì)對(duì)之前的弱分類器權(quán)重產(chǎn)生影響,所以當(dāng)加入了新的弱分類器后會(huì)結(jié)合之前所有的弱分類器重新訓(xùn)練,最終求得一組最優(yōu)的弱分類器權(quán)重。模型參數(shù)的學(xué)習(xí)借鑒了GAN[13]網(wǎng)絡(luò)的訓(xùn)練方式,分為兩個(gè)過程。首先固定后半部分,先訓(xùn)練樣本的權(quán)重,當(dāng)樣本權(quán)重收斂后固定前半部分,再訓(xùn)練弱分類器的權(quán)重。
圖1 引入注意力機(jī)制的AdaBoost模型
在(8)式中,在損失函數(shù)中引入了L2正則項(xiàng),下面簡(jiǎn)要分析該正則化方法對(duì)樣本權(quán)重的影響。為方便表述,將(8)式改寫為
(14)
其中
(15)
(16)
由于采用隨機(jī)梯度下降法更新參數(shù),對(duì)損失函數(shù)關(guān)于參數(shù)cj求偏導(dǎo)可得
(17)
此時(shí)權(quán)值的更新公式變?yōu)?/p>
(18)
(19)
實(shí)驗(yàn)數(shù)據(jù)集分別來自Kaggle的Titanic[14]、信用卡欺詐[15]和員工離職率以及科賽網(wǎng)的銀行精準(zhǔn)營銷解決方案[16],數(shù)據(jù)集的具體統(tǒng)計(jì)信息如表1所示。實(shí)驗(yàn)在表2所示的實(shí)驗(yàn)環(huán)境中完成。
表1 實(shí)驗(yàn)數(shù)據(jù)集
表2 實(shí)驗(yàn)環(huán)境及配置
通過數(shù)值實(shí)驗(yàn)將本文算法與動(dòng)態(tài)調(diào)整權(quán)重算法(MSC-AdaBoost)[4]、RegionBoost[6]以及對(duì)樣本作閾值限定的RADA-AdaBoost[7]算法作對(duì)比。本文算法采用Cart作為弱分類器,設(shè)置最大迭代次數(shù)為100。注意力層采用ReLU函數(shù)作為激活函數(shù)。取各數(shù)據(jù)集前75%的樣本作為訓(xùn)練集,后25%作為驗(yàn)證集。首先嘗試將本文算法的正則項(xiàng)系數(shù)設(shè)置為0。表3對(duì)比了不同隱藏層個(gè)數(shù)對(duì)模型的影響。從表3可以看出,隨著網(wǎng)絡(luò)層數(shù)增加算法的準(zhǔn)確率不斷上升,在n=3時(shí)本文算法在所有數(shù)據(jù)集上已經(jīng)優(yōu)于文獻(xiàn)中算法。由于n=4時(shí)與n=3相比準(zhǔn)確率提升較小,但是會(huì)額外增加較大計(jì)算量,所以接下來的實(shí)驗(yàn)都取三個(gè)隱藏層。通過網(wǎng)格搜索找到本文算法在四個(gè)數(shù)據(jù)集上的最優(yōu)正則項(xiàng)系數(shù)分別為:0.4,1.2,6.4和3.2,對(duì)應(yīng)的準(zhǔn)確率分別為:0.8274,0.9301,0.9524和0.8704。由此可以看出,相比于原始沒有正則項(xiàng)的算法,加入了正則項(xiàng)之后算法準(zhǔn)確度有了一定提升。圖2到圖5繪制了隨著弱分類器個(gè)數(shù)的增加四種算法在正則項(xiàng)系數(shù)最優(yōu)情況下的誤差變化曲線。從圖中可以看出本文算法的性能整體上優(yōu)于其它三個(gè)改進(jìn)的算法,從而驗(yàn)證了其有效性。
表3 不同網(wǎng)絡(luò)層數(shù)四種算法的對(duì)比
圖2 Titanic數(shù)據(jù)集下四種算法的性能對(duì)比
圖3 信用卡欺詐數(shù)據(jù)集下四種算法的性能對(duì)比
圖4 銀行精準(zhǔn)營數(shù)據(jù)集下四種算法的性能對(duì)比
圖5 員工離職數(shù)據(jù)集下四種算法的性能對(duì)比
針對(duì)AdaBoost算法的弱分類器權(quán)重?zé)o法動(dòng)態(tài)調(diào)整以及對(duì)多次分類錯(cuò)誤的樣本設(shè)置過高權(quán)重這兩個(gè)缺陷,本文提出了結(jié)合注意力機(jī)制的改進(jìn)算法,通過引入兩個(gè)注意力層,利用神經(jīng)網(wǎng)絡(luò)分別為樣本和弱分類器的重要程度打分,實(shí)現(xiàn)了弱分類器權(quán)重的動(dòng)態(tài)調(diào)整,并結(jié)合L2正則化方法有效控制了錯(cuò)分類樣本權(quán)值的大小,數(shù)值實(shí)驗(yàn)驗(yàn)證了所提算法的有效性。未來工作包括如何將深度學(xué)習(xí)和打分機(jī)制結(jié)合來進(jìn)一步提高算法性能以及將此算法推廣應(yīng)用到多分類任務(wù)中去。