宮振華 王嘉寧 蘇 翀*
1(南京機(jī)電職業(yè)技術(shù)學(xué)院 江蘇 南京 211135)2(江蘇科技大學(xué)電氣與信息工程學(xué)院 江蘇 蘇州 215600)
現(xiàn)時(shí),深度學(xué)習(xí)網(wǎng)絡(luò)模型取得了長(zhǎng)足的進(jìn)步和發(fā)展,這一切要得益于大數(shù)據(jù)時(shí)代的到來(lái)。雖然深度學(xué)習(xí)網(wǎng)絡(luò)模型為數(shù)據(jù)分析提供了有力的工具,但其所具有的大量調(diào)解參數(shù)和復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)都在一定程度上決定了模型的學(xué)習(xí)效果。此外,由于深度學(xué)習(xí)網(wǎng)絡(luò)模型在訓(xùn)練時(shí)需要大量的訓(xùn)練樣本,因此,整個(gè)過(guò)程既耗時(shí)又對(duì)設(shè)備有較高的要求。而深度森林DF是一種基于深度模型提出的級(jí)聯(lián)隨機(jī)森林方法,它具有較少的調(diào)節(jié)參數(shù),允許使用者可以根據(jù)設(shè)備的資源決定訓(xùn)練的耗費(fèi),并能自適應(yīng)地調(diào)節(jié)訓(xùn)練模型層數(shù)。文獻(xiàn)[1]的實(shí)驗(yàn)結(jié)果充分表明,相較于深度學(xué)習(xí)網(wǎng)絡(luò)模型,深度森林取得了更好的分類性能。在結(jié)構(gòu)層面,深度森林由多粒度掃描和級(jí)聯(lián)森林兩個(gè)部分組成[1]。其中,多粒度掃描通過(guò)滑動(dòng)窗口技術(shù)獲取多個(gè)特征子集,以增強(qiáng)級(jí)聯(lián)森林的差異性。級(jí)聯(lián)森林則是將決策樹(shù)組成的森林通過(guò)級(jí)聯(lián)方式實(shí)現(xiàn)表征學(xué)習(xí)??梢哉f(shuō),深度森林沿用了深度學(xué)習(xí)對(duì)樣本特征屬性的逐層處理機(jī)制,利用多級(jí)結(jié)構(gòu)實(shí)現(xiàn)表征學(xué)習(xí)。與深度學(xué)習(xí)不同之處主要表現(xiàn)在以下幾個(gè)方面:
(1) 深度森林的級(jí)數(shù)是隨著訓(xùn)練的不斷不深入自動(dòng)調(diào)節(jié)的;
(2) 深度森林具有很少的超參數(shù)且對(duì)超參數(shù)不敏感;
(3) 深度森林具有較低的訓(xùn)練開(kāi)銷,既適用于大規(guī)模數(shù)據(jù)集,也適用于小規(guī)模數(shù)據(jù)集;
(4) 其結(jié)構(gòu)適用于并行處理。
深度森林在結(jié)構(gòu)上由多級(jí)組成,每級(jí)分別由隨機(jī)森林[2]和完全隨機(jī)森林[3]兩種森林組成。就每個(gè)樣本而言,每個(gè)森林將其各個(gè)子樹(shù)預(yù)測(cè)的類概率向量進(jìn)行算術(shù)平均后,作為該森林的預(yù)測(cè)結(jié)果,并與樣本的原始特征向量拼接,作為下一級(jí)的輸入。由于森林中各個(gè)子樹(shù)的預(yù)測(cè)精度是各不相同的,算術(shù)平均會(huì)導(dǎo)致子樹(shù)的錯(cuò)誤預(yù)測(cè)對(duì)整個(gè)森林的預(yù)測(cè)產(chǎn)生影響,進(jìn)而隨著級(jí)數(shù)增加,有可能使錯(cuò)誤被進(jìn)一步放大。為了避免上述影響,本文提出了一種加權(quán)的深度森林WDF(Weighted Deep Forest)。主要思想是根據(jù)森林中每棵子樹(shù)的預(yù)測(cè)精度計(jì)算其相應(yīng)權(quán)重,再對(duì)各個(gè)子樹(shù)的預(yù)測(cè)概率向量進(jìn)行加權(quán)求和,以提高深度森林的預(yù)測(cè)精度,降低級(jí)聯(lián)級(jí)數(shù)。
深度森林與深度神經(jīng)網(wǎng)絡(luò)都是通過(guò)多級(jí)結(jié)構(gòu)進(jìn)行表征學(xué)習(xí)[4],但深度森林以其簡(jiǎn)單的訓(xùn)練模型以及不依賴于大量數(shù)據(jù)進(jìn)行訓(xùn)練的特點(diǎn)彌補(bǔ)了深度神經(jīng)網(wǎng)絡(luò)的缺點(diǎn),并逐漸被應(yīng)用于工程實(shí)踐中[5-6]。
深度森林由多粒度掃描和級(jí)聯(lián)森林兩個(gè)部分組成。多粒度掃描主要處理高維數(shù)據(jù)和圖像數(shù)據(jù)。假設(shè)長(zhǎng)度為n的一維特征向量,若使用長(zhǎng)度為m的窗口進(jìn)行滑動(dòng)且每次滑動(dòng)一個(gè)單位長(zhǎng)度,將產(chǎn)生n-m+1個(gè)具有m維特征向量的數(shù)據(jù)子集;類似地,對(duì)于一個(gè)n×n的二維圖像數(shù)據(jù),若使用m×m的窗口進(jìn)行滑動(dòng),每次滑動(dòng)一個(gè)單位長(zhǎng)度,將產(chǎn)生(n-m+1)2個(gè)具有m×m特征向量的數(shù)據(jù)子集。這些數(shù)據(jù)集將分別輸入到1個(gè)完全隨機(jī)森林和1個(gè)隨機(jī)森林。對(duì)于c個(gè)類別的分類問(wèn)題,經(jīng)過(guò)兩個(gè)不同的隨機(jī)森林分類后,長(zhǎng)度為n的一維特征向量將產(chǎn)生長(zhǎng)度為2c(n-m+1)的類向量;類似地,對(duì)于一個(gè)n×n的二維圖像數(shù)據(jù),將產(chǎn)生長(zhǎng)度為2c(n-m+1)2的類向量。隨后,這些類向量將被拼接到原始的樣本的特征空間里,作為后面級(jí)聯(lián)森林的輸入特征。整個(gè)多粒度掃描結(jié)構(gòu)如圖1所示。
圖1 多粒度掃描
級(jí)聯(lián)森林主要由隨機(jī)森林和完全隨機(jī)樹(shù)森林兩種森林組成。森林之間通過(guò)層級(jí)方式形成級(jí)聯(lián)結(jié)構(gòu)。對(duì)于每一級(jí)森林,首先,訓(xùn)練樣本通過(guò)k折交叉驗(yàn)證,訓(xùn)練其中各棵子樹(shù),與此同時(shí),每棵子樹(shù)對(duì)每個(gè)訓(xùn)練樣本給出一個(gè)預(yù)測(cè)的類概率向量;其次,將測(cè)試樣本輸入訓(xùn)練得到的森林,每棵子樹(shù)對(duì)每個(gè)測(cè)試樣本也給出一個(gè)預(yù)測(cè)的類概率向量;再次,森林對(duì)所有子樹(shù)預(yù)測(cè)的類概率向量按訓(xùn)練樣本和測(cè)試樣本分別計(jì)算平均類概率向量;最后,該級(jí)的所有森林將所有樣本上的平均類概率向量與樣本的原始特征向量拼接后作為下一級(jí)森林的輸入特征。每級(jí)結(jié)束預(yù)測(cè)后,會(huì)在驗(yàn)證集上對(duì)預(yù)測(cè)結(jié)果進(jìn)行評(píng)估,以決定是否擴(kuò)展下一級(jí)。如果不再擴(kuò)展,則在已擴(kuò)展的級(jí)中,找出最優(yōu)評(píng)估結(jié)果所對(duì)應(yīng)的級(jí),將所有森林在測(cè)試樣本上的平均類概率向量算術(shù)平均后,取概率最高的類向量作為整個(gè)深度森林的預(yù)測(cè)結(jié)果。其中,級(jí)聯(lián)森林結(jié)構(gòu)和單個(gè)森林的結(jié)構(gòu)分別如圖2和圖3所示。
圖2 級(jí)聯(lián)森林結(jié)構(gòu)
圖3 單個(gè)森林結(jié)構(gòu)
深度森林中各棵子樹(shù)對(duì)應(yīng)不同的預(yù)測(cè)精度,簡(jiǎn)單的算術(shù)平均法,忽略了各棵子樹(shù)之間的預(yù)測(cè)差異,使預(yù)測(cè)錯(cuò)誤率較高的子樹(shù)對(duì)整個(gè)森林的預(yù)測(cè)結(jié)果產(chǎn)生較大影響。為此,本文對(duì)森林中各棵子樹(shù)的結(jié)合策略進(jìn)行改進(jìn),提出一種加權(quán)的深度森林WDF,其中每個(gè)森林的結(jié)構(gòu)如圖4所示。
圖4 單個(gè)加權(quán)森林結(jié)構(gòu)
假設(shè)訓(xùn)練樣本集T和測(cè)試樣本集S的示例個(gè)數(shù)分別為m和n,類別標(biāo)記的個(gè)數(shù)為c,記為L(zhǎng)={l1,l2,…,lc}。設(shè)森林F包含t棵子樹(shù),記第k棵子樹(shù)為T(mén)k(k∈[1,t]),第i個(gè)訓(xùn)練樣本被子樹(shù)Tk預(yù)測(cè)為類lj的概率為pij,則在訓(xùn)練樣本集T上,子樹(shù)Tk預(yù)測(cè)的類概率矩陣如下所示:
(1)
定義函數(shù)Max(X)表示獲取二維矩陣中行向量X的最大值元素所對(duì)應(yīng)的列下標(biāo),當(dāng)有多個(gè)相同的最大值時(shí),取最小的列下標(biāo)。令列下標(biāo)從1開(kāi)始,則子樹(shù)Tk對(duì)訓(xùn)練樣本集T的預(yù)測(cè)結(jié)果向量如下所示:
(2)
定義函數(shù)Acc(X1,X2)表示兩個(gè)同維向量X1、X2中相同位置元素相等的個(gè)數(shù)所占的比例。例如:
令Y(T)是由訓(xùn)練樣本集T的真實(shí)類映射到類集合中的下標(biāo)所組成的向量,則子樹(shù)Tk對(duì)訓(xùn)練樣本集T的預(yù)測(cè)準(zhǔn)確率ak為:
ak=Acc(Predict(Tk,T),Y(T))
(3)
至此,第k棵子樹(shù)的權(quán)重[7-8]Wk為:
Wk∝log2(ak/(1-ak))
(4)
最后,森林F在訓(xùn)練樣本集T和測(cè)試樣本集S上預(yù)測(cè)的類概率矩陣分別為:
(5)
(6)
更進(jìn)一步,假設(shè)級(jí)聯(lián)森林中每一級(jí)又包含h個(gè)森林,那么第e級(jí)森林組合Ce在訓(xùn)練樣本集T和測(cè)試樣本集S上預(yù)測(cè)的類概率矩陣分別為:
(7)
(8)
類似地,如果把上述矩陣改寫(xiě)成行向量組的形式,可分別得到第e級(jí)森林組合Ce對(duì)訓(xùn)練樣本集T和測(cè)試樣本集S的預(yù)測(cè)結(jié)果向量,具體如下:
(9)
(10)
同理,令Y(T)、Y(S) 分別表示由訓(xùn)練樣本集T、測(cè)試樣本集S的真實(shí)類映射到類集合中的下標(biāo)所組成的向量,則第e級(jí)森林組合分別在訓(xùn)練樣本集T和測(cè)試樣本集S上預(yù)測(cè)準(zhǔn)確率Aet和Aes分別為:
Aet=Acc(Predict(Ce,T),Y(T))
(11)
Aes=Acc(Predict(Ce,S),Y(S))
(12)
當(dāng)級(jí)聯(lián)森林不再擴(kuò)展時(shí),則在已擴(kuò)展的級(jí)中,找出在訓(xùn)練樣本集T上預(yù)測(cè)準(zhǔn)確率最高值所對(duì)應(yīng)的級(jí),將該級(jí)森林組合在測(cè)試樣本集S上預(yù)測(cè)結(jié)果向量和預(yù)測(cè)準(zhǔn)確率作為整個(gè)加權(quán)深度森林的預(yù)測(cè)結(jié)果。加權(quán)的深度森林(WDF)如算法1所示。
算法1加權(quán)的深度森林(WDF)
輸入 訓(xùn)練集T,測(cè)試集S,森林中子樹(shù)的數(shù)目N,每一級(jí)森林的數(shù)目M
1 ifT是高維數(shù)據(jù)集 then
2T=多粒度掃描(T);
3 end if
4 for i=1 to M
5 for j=1 to N
6 使用T訓(xùn)練子樹(shù);
7 根據(jù)式(1)-式(3)計(jì)算子樹(shù)的準(zhǔn)確率;
2)市外電源方面,形成了2+X格局:(1)華東電網(wǎng)內(nèi)的安徽煤電基地,(2)華東電網(wǎng)外的三峽和金沙江等西南水電,并在華東電網(wǎng)內(nèi)參與建設(shè)核電、抽水蓄能等項(xiàng)目。
8 根據(jù)式(4)計(jì)算當(dāng)前子樹(shù)的權(quán)重;
9 輸入測(cè)試集T到當(dāng)前子樹(shù);
10 end for
11 根據(jù)式(5)、式(6)分別計(jì)算當(dāng)前森林在訓(xùn)練集T和測(cè)試集S上的預(yù)測(cè)類概率矩陣;
12 end for
13 根據(jù)式(7)、式(8)分別計(jì)算當(dāng)前級(jí)聯(lián)森林在訓(xùn)練集T和測(cè)試集S上的預(yù)測(cè)類概率矩陣P;
14 if 評(píng)估后繼續(xù)擴(kuò)展下一級(jí) then
15 將概率矩陣P拼接到原始特征空間,形成新的訓(xùn)練集T*和測(cè)試集S*;
17 else
18 在所有擴(kuò)展的級(jí)中找出訓(xùn)練集上預(yù)測(cè)準(zhǔn)確率最高的那一級(jí)opt_lay_id,并輸出該級(jí)在測(cè)試集S預(yù)測(cè)的結(jié)果;
19 end if
對(duì)比圖2和圖4可以發(fā)現(xiàn),加權(quán)的深度森林可以利用權(quán)重值修正森林的類概率矩陣。當(dāng)修正的概率矩陣作為下一級(jí)的輸入時(shí),會(huì)使下一級(jí)森林在訓(xùn)練過(guò)程中不斷優(yōu)化并提高其預(yù)測(cè)精度,在一定程度上,不僅能提高最終預(yù)測(cè)精度,還可以減少擴(kuò)展級(jí)數(shù)。
本文在高維和低維數(shù)據(jù)集上分別對(duì)深度森林(DF)和加權(quán)的深度森林(WDF)進(jìn)行實(shí)驗(yàn)比較。實(shí)驗(yàn)平臺(tái)配置如下:160 GB內(nèi)存、24核CPU、64位Ubuntu16.04操作系統(tǒng)、Anaconda2(Python2.7)、類庫(kù)包括Numpy、Scikit-learn、Tensorflow等[9-10]。
采用文獻(xiàn)[1]中所使用的實(shí)驗(yàn)數(shù)據(jù)集,與原文相同,每個(gè)數(shù)據(jù)集的80%用于訓(xùn)練,20%用于驗(yàn)證。參與實(shí)驗(yàn)的高維數(shù)據(jù)集有:GTZAN[11]、SEMG[12]、MNIST[13]以及IMDB[14];低維數(shù)據(jù)集有:ADULT[15]、YEAST[16]、和LETTER[17],其中,低維數(shù)據(jù)集無(wú)需進(jìn)行多粒度掃描。參與實(shí)驗(yàn)的數(shù)據(jù)集描述如表1所示。
表1 實(shí)驗(yàn)數(shù)據(jù)集
實(shí)驗(yàn)分別采用測(cè)試集上的準(zhǔn)確率和擴(kuò)展的級(jí)數(shù)作為評(píng)價(jià)指標(biāo)。具體實(shí)驗(yàn)結(jié)果如表2所示。
表2 實(shí)驗(yàn)結(jié)果
從表2可以看出,在低維數(shù)據(jù)集上,加權(quán)的深度森林預(yù)測(cè)準(zhǔn)確率要略高于深度森林,但擴(kuò)展級(jí)數(shù)多于深度森林。與此相反的是,在高維數(shù)據(jù)集上,無(wú)論準(zhǔn)確率還是擴(kuò)展級(jí)數(shù),加權(quán)的深度森林都要優(yōu)于深度森林。出現(xiàn)這一現(xiàn)象,主要有以下幾點(diǎn)原因:
(1) 低維數(shù)據(jù)集包含的特征數(shù)較少,造成了森林中訓(xùn)練得到的子樹(shù)之間的差異較少,則每棵子樹(shù)的預(yù)測(cè)準(zhǔn)確率較為接近。從式(4)可以看出,每棵子樹(shù)的權(quán)重也較為接近。因此,其性能提高有限。
(2) 高維數(shù)據(jù)集往往包含較多的特征數(shù),再經(jīng)過(guò)多粒度掃描處理后,非常有利于增加后續(xù)級(jí)聯(lián)森林中訓(xùn)練所得子樹(shù)之間的差異。由于每棵子樹(shù)的預(yù)測(cè)準(zhǔn)確率波動(dòng)較大,最終導(dǎo)致差異較大的權(quán)重分布。
由上述分析可知,深度森林中訓(xùn)練得到的子樹(shù)之間的差異往往決定了最后的預(yù)測(cè)精度和級(jí)聯(lián)數(shù),而子樹(shù)之間的差異性卻受到數(shù)據(jù)集中特征數(shù)的影響。這與級(jí)聯(lián)森林主要由隨機(jī)森林和完全隨機(jī)樹(shù)森林兩種森林組成有關(guān)。通過(guò)表1和表2可以看出,由于高維數(shù)據(jù)集上訓(xùn)練得到的子樹(shù)之間的差異性增加,每棵子樹(shù)的預(yù)測(cè)準(zhǔn)確率差異也較大,加權(quán)的思想會(huì)賦予準(zhǔn)確率高的子樹(shù)較大的權(quán)重,以增加其在決策中的作用。因此,加權(quán)深度森林優(yōu)勢(shì)在高維數(shù)據(jù)集上具有明顯的優(yōu)勢(shì),在準(zhǔn)確率提高的同時(shí),森林的級(jí)聯(lián)數(shù)也有所減少,降低了訓(xùn)練時(shí)間;而在低維數(shù)據(jù)集上,由于權(quán)重之間差異性較小,延緩了收斂速度,增加了森林的級(jí)聯(lián)數(shù),雖然增加了訓(xùn)練時(shí)間。但與原算法相比,還是獲得了可比的性能。綜上所述,加權(quán)的深度森林更適合利用多粒度掃描處理高維數(shù)據(jù)集。
深度森林沿用了深度學(xué)習(xí)對(duì)樣本特征屬性的逐層處理機(jī)制,但克服了深度學(xué)習(xí)參數(shù)依賴性強(qiáng)、訓(xùn)練開(kāi)銷大以及僅適用于大數(shù)據(jù)等不足之處。然而,深度森林中各個(gè)子樹(shù)的預(yù)測(cè)精度是各不相同的,簡(jiǎn)單算術(shù)平均會(huì)導(dǎo)致子樹(shù)的錯(cuò)誤預(yù)測(cè),對(duì)整個(gè)森林的預(yù)測(cè)產(chǎn)生影響,進(jìn)而隨著級(jí)數(shù)增加,有可能使錯(cuò)誤被進(jìn)一步放大。為此,本文提出了一種根據(jù)森林中每棵子樹(shù)的預(yù)測(cè)精度進(jìn)行加權(quán)的深度森林。通過(guò)在高維和低維數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),結(jié)果表明:加權(quán)的深度森林在高維和低維數(shù)據(jù)集上性能都獲得了一定提升,特別在高維數(shù)據(jù)集上,這一優(yōu)勢(shì)較為明顯。由于目前所使用的加權(quán)方式較為簡(jiǎn)單,下一步將進(jìn)一步考慮更為全面的權(quán)重評(píng)估方式,比如綜合集成分類器的多樣性和分類性能的權(quán)重評(píng)估方式等。