楊濟海 李號號 彭汐單 張智成 黃 倩 李石君
(1.國網江西省電力有限公司信息通信分公司,南昌,330077;2.武漢大學計算機學院,武漢,430072;3.國網江西省電力有限公司,南昌,330077;4.南瑞集團有限公司,南京,210003)
遷移學習是機器學習的一個新方向,它是利用已存在的知識對不同但相關的領域進行訓練學習。遷移學習打破了傳統(tǒng)機器學習所需滿足的條件——訓練數(shù)據(jù)和測試數(shù)據(jù)獨立同分布,以及擁有足夠的數(shù)據(jù)來訓練一個好的模型[1]。研究表明,兩個不同領域的相似度越高,遷移學習就越容易,效果越好,否則往往效果不佳,甚至出現(xiàn)“負遷移”的結果。遷移學習已經成功應用到多個領域[2],如文本情感分析、圖像分類、人類活動識別、軟件缺陷分類和多語言文本分類等。表1總結了現(xiàn)有的各種遷移學習方法。
表1 各種遷移學習方法的舉例和描述Tab.1 Examples and descriptions of various migration learning methods
Dai等提出了基于實例的TrAdaBoost[4]算法,該算法的思想是最大限度利用源數(shù)據(jù),找到源數(shù)據(jù)中與目標數(shù)據(jù)相關的數(shù)據(jù),然后和目標數(shù)據(jù)一起訓練學習。但是TrAdaBoost算法只利用了單個源數(shù)據(jù),算法的結果依賴于源數(shù)據(jù)與目標數(shù)據(jù)的相關性,如果相關性很弱,容易產生負遷移。Cheng等人通過考慮多個源與目標的相關性,提出了兩種多源學習算法,MTrA和TTrA[11]。多源的遷移學習主要研究當源領域為多個時如何進行遷移的問題,主要的成果有Transitive transfer learning[12](兩個相似度不高的域利用從第三方中學習到的相似度關系,完成知識的傳遞遷移),Distant domain TL[13](在相似度極低的兩個域進行遷移時,用Autoencoder自動從多個中間輔助域中選擇知識)等,多源的遷移可以有效地利用多個領域的知識,綜合起來達到較好的效果。在多源的遷移學習問題中,現(xiàn)有的算法如MultiSource-TrAdaBoost,Task-TrAdaBoost,Weighted multi-source TrAdaBoost等研究的都是對稱的二分類問題,缺少對回歸問題的研究,回歸問題和二分類問題在目標函數(shù)的定義等方面還是有著很大的區(qū)別,所以本文將提出加權多源TrAdaBoost的回歸算法。
本文除了關注遷移學習的理論研究外,還將重點關注其在電力通信網中的應用。國家電網通信管理系統(tǒng)(TMS)中普遍存在賬物與實物不一致、數(shù)據(jù)錄入錯誤和數(shù)據(jù)缺失的問題。阮筠萃介紹了電力通信網管理系統(tǒng)的靜態(tài)資源與實際不符合、動態(tài)資源關聯(lián)錯誤、基礎數(shù)據(jù)保險不到位的各類型數(shù)據(jù)質量問題,以及這些問題帶來的巨大挑戰(zhàn)[14]。Liu等詳細分析了導致電力數(shù)據(jù)質量問題的原因[15]。在TMS系統(tǒng)中存在著一些業(yè)務記錄嚴重缺失的站點,本文將這些站點定義為異常站點。使用本文提出的加權多源TrAdaBoost的回歸算法對站點正確的業(yè)務數(shù)量進行預測,將極大地降低數(shù)據(jù)維護的成本,具有巨大的現(xiàn)實意義。
在分類的問題中,對于一個樣本xi的預測ht,要么是正確的,要么是不正確的,所以其誤差ei=|yi-ht(xi)|為0或者1。在回歸問題中,該誤差有可能極其大,所以需要將其歸一化,這樣才能使用TrAdaBoost的權重更新機制。本文將AdaBoost的誤差函數(shù)引入進來,誤差函數(shù)有如下3種方式,其中D表示最大的誤差。
在TrAdaBoost的權重更新機制中,由于源領域樣本的權值只會減少而不會增加,而目標領域樣本的權值只會增加卻不會減少,因此兩個領域的權重之差會越來越大,在迭代次數(shù)較多的情況下,會嚴重影響模型的效果。該問題在回歸問題中顯得尤為嚴重,因為ei幾乎不可能為0,即使很小的誤差,也會導致權重的縮減,所以在多次迭代之后,源領域的樣本權重很有可能縮減為0。為了解決該問題,本文引入了誤差容忍系數(shù)γ,如果某個樣本的誤差小于容忍系數(shù),那么其權重不發(fā)生變化,如果該樣本的誤差超過了容忍系數(shù),其權重才會發(fā)生變化。誤差容忍系數(shù)將一定程度解決源領域權重縮減的問題,提高遷移的效果,并控制模型對誤差的容忍程度。
表2 符號表Tab.2 Symbol table
在多源的加權學習中,每個源領域將得到一個弱的學習器,根據(jù)弱學習器在目標領域上的誤差情況,可以每次只選取誤差最?。ㄏ嚓P性最強)的源領域,也可以根據(jù)該誤差的大小對每個弱學習器進行加權,加權之后進行集成,得到本次迭代中的測試誤差,根據(jù)該測試誤差去調整樣本的權重。前者的做法往往會造成其他的源領域樣本失去輔助作用,所以本文選擇后者的做法。部分符號說明見表2。
算法1加權多源TrAdaBoost的回歸算法
輸入 (DS1,…,DSk,…,DSN),Dtarget,T,γ
輸出 回歸器f(·):X→Y
步驟:
(1)初始化參數(shù)φ(s),其中,ns為所有源領域的樣本數(shù)的總和
(2)初始化樣本權重。
(3)fort:1 →T。
(4)合并訓練數(shù)據(jù)集Dk=(DSk,Dtarget),同時對權重向量(wSk,wtarget)歸一化。
(5)對合并后的每一個訓練數(shù)據(jù)集Dk,(wSk,wtarget),將其代入到回歸模型。此處選擇帶參數(shù)的SVR模型(也可以選擇回歸樹等),即
(8)計算在第t次迭代得到的候選預測模型ht在Dtarget上的誤差
(9)更新所有樣本的權重。根據(jù)上面得到的誤差εt更新各個源領域和目標領域樣本的權重。對于目標領域中的樣本,需要根據(jù)預測的誤差大小增加樣本的權重,即表示對于預測錯誤的樣本,應增加此樣本的重要性,達到強調此樣本的目的。對于源領域中的樣本,如果樣本預測值小于γ,則此樣本的權重不變;相反,如果相差大于γ,則減小此樣本的權重,即表示預測錯誤的樣本對目標數(shù)據(jù)的學習沒有幫助,應該降低這些樣本的影響。設置φt為
更新目標領域樣本的權重
更新各個源領域樣本的權重
(10)如果t≤T,則轉到步驟(4);如果t>T,則計算出最終的預測模型f(x)。f(x)為ht(x)的加權中位數(shù),用ln(1/φt)作為ht(x)的權值。
異常站點的挖掘與糾正是國家電網根據(jù)實際的需求提取出來的研究課題,具有很大的研究價值和現(xiàn)實意義。在通信網管理系統(tǒng)中,小部分站點存在系統(tǒng)錄入的業(yè)務數(shù)量與實際的業(yè)務數(shù)量相差較大的問題,本文將這種現(xiàn)象稱為業(yè)務數(shù)量缺失,將業(yè)務數(shù)量缺失的站點稱為異常站點。這類問題給實際的運營和管理帶來巨大的困難,單靠人力無法完成這類數(shù)據(jù)質量的治理。
在對業(yè)務數(shù)量進行預測時,由于全國各省的站點數(shù)量不同——大的省份有兩千多個站點,而小的只有兩百個左右的站點,各省經濟、人口、基礎設施等因素的不同,導致了其數(shù)據(jù)分布也各不相同。如果放到同一個模型中進行訓練,無法得到滿意的預測精度。本文通過上述的加權多源TrAdaBoost的回歸算法,運用其他省份的數(shù)據(jù)來訓練目標數(shù)據(jù),使模型能夠達到較為滿意的效果。本文設計的異常站點檢測與真值預測的模型如圖1所示。
圖1 異常站點檢測與真值預測模型圖Fig.1 Abnormal site detection and true value prediction model
數(shù)據(jù)清洗是對初始數(shù)據(jù)進行缺失值處理、異常值處理和冗余去除等操作。在特征工程中,選取的特征主要來源于業(yè)務專家推薦和相關性分析方法,本文引入社交網絡分析的方法,提取中心度和PageRank值的特征,充分考慮了站點在拓撲結構中的重要度。使用圖G來表達某個省份的站點與光纜的拓撲圖,站點之間的權重為光纜的數(shù)量,以鄰接矩陣的方式來表達,其中g為站點的數(shù)量,如果i,j之間無光纜連接,則xij=0。CD(i)為站點i的中心度。圖2繪制了中心度與業(yè)務數(shù)量的曲線圖,也能驗證中心度與業(yè)務數(shù)量的強關聯(lián)關系。
本文為了引入其他站點對該站點業(yè)務數(shù)量的影響,使用了PageRank算法提取特征,節(jié)點xi的PageRank值的更新公式如式(1)所示,其中M(xi)為所有站點對站點xi有出鏈的站點集合,L(xj)表示xj到所有其他站點出鏈的權重之和,xji表示站點xj到xi的權重,d為阻尼系數(shù),一般經驗值取0.85。式(1)表明,如果與站點xi相連接的站點個數(shù)越多,則說明該站點的重要性越高,如果與該站點連接的其他站點越重要,那么該站點很可能也越重要,承載的業(yè)務越多,如果該站點所占連接源的站點的權重越高,則說明該站點重要性越高。除了上述特征外,還有站點類型、電壓等級、端口占有率、調度等級、建成年限、設備數(shù)量和機房數(shù)量等特征。
異常站點的挖掘首先是一個異常檢測問題,有很多從概念視角和具體應用視角的異常檢測相關的綜述[16-18]。本文選擇了無監(jiān)督算法iForest選擇初始的異常站點,使用iForest主要是因為該算法需調節(jié)的參數(shù)少、準確率高、運行效率快。剔除異常站點后剩下的站點就可以被輸入到回歸模型中。如果不過濾這些離群點數(shù)據(jù),將會嚴重影響模型最終的效果和泛化能力。如果要預測某個省份的站點業(yè)務數(shù)量,就將該省份的數(shù)據(jù)作為目標領域,其他省份的數(shù)據(jù)作為源領域。使用上述的加權多源TrAdaBoost的回歸算法,解決了不同省份之間數(shù)據(jù)分布不同、部分省份訓練數(shù)據(jù)過少的問題。使用帶參數(shù)的SVR作為基回歸器,因為SVR采用的是結構化風險最小化,更適合小樣本的使用場景且有更好的魯棒性。異常站點來自兩個部分,一是iForest發(fā)現(xiàn)的異常站點(離群點),二是回歸模型的預測值與觀測值殘差較大的站點。
圖2 站點中心度與業(yè)務平均數(shù)量的關系Fig.2 Relationship between site center degree and average number of businesse
Friedman#1(Friedman,1991)是一個非常著名的回歸問題,為了驗證提出的加權多源TrAdaBoost回歸算法,本文修改了Friedman問題,以便將其使用到遷移學習的問題中。通過式(2)可生成目標領域和源領域的數(shù)據(jù)集,其中N表示正態(tài)分布。為生成源領域的數(shù)據(jù)集,本文對式(2)的參數(shù)ai,bi,ci進行了改進,不再取固定值,ai,bi由N(0,0.1d)生成,ci由N(0,0.05d)生成,這里的d是一個參數(shù),控制目標領域樣本與源領域樣本的相似度。本文使用不同的d隨機生成了5個源領域的數(shù)據(jù)集,d的取值為[0.5,1]。每個源領域數(shù)據(jù)集的大小為200,目標訓練集的大小為15,測試數(shù)據(jù)集的大小為600,生成了60份目標領域和源領域的數(shù)據(jù)集,分為3組。圖3展示了生成的數(shù)據(jù)集,其中不同的數(shù)據(jù)集以不同的顏色表示。由于目標數(shù)據(jù)集的數(shù)據(jù)較少(黑色的點),難以訓練出有效的回歸模型。測試數(shù)據(jù)集的分布用藍線表示,可以觀察到源領域的數(shù)據(jù)分布(紅色、黃色等)明顯與目標領域不同,因此改造后的Friedman回歸問題是非常適合遷移學習的使用場景。
考慮以下幾組對比實驗:
(1)AdaBoostRegressor表示將所有的源領域數(shù)據(jù)和目標領域的數(shù)據(jù)進行合并,不使用遷移學習;
(2)Muti-TrAdaBoost表示使用本文提出的加權多源的TrAdaBoost回歸算法;
(3)Muti-TrAdaBoost withoutγ表示不使用本文提出的誤差容忍系數(shù),在實驗中誤差容忍系數(shù)γ取值為0.05(通過交叉驗證方式得到的最優(yōu)參數(shù))。
圖3 各個領域數(shù)據(jù)分布圖Fig.3 Distribution of data in various fields
本文考慮使用擬合度R2和均方誤差MSE兩個指標,綜合衡量回歸模型的效果,表3展示的結果為每組實驗的平均值。實驗驗證了加權多源的TrAdaBoost回歸算法的有效性,誤差容忍系數(shù)可以提高大約0.01的R2分數(shù)。
表3 實驗結果對比Tab.3 Comparison of experimental results
本文使用了10個省份的數(shù)據(jù),其中A,B,C三省的站點數(shù)量最少,分別為267,340,471,將作為目標領域,其他7個省份作為源領域。首先,在不使用遷移學習的情況下,單獨訓練每個省份的數(shù)據(jù),取R2平均值以選取最合適的基回歸器,實驗結果(見圖4)發(fā)現(xiàn)SVR最適合本任務。
圖4 各個回歸模型的模型分數(shù)對比圖Fig.4 Comparison of model scores for each regression model
本文考慮以下幾種對比實驗:Target表示只用目標省份的數(shù)據(jù)進行訓練;Target+Source表示將目標數(shù)據(jù)和輔助數(shù)據(jù)放在一起進行訓練;Muti-TrAdaBoost表示使用本文提出的加權多源的TrAdaBoost回歸算法進行訓練;Muti-TrAdaBoost withoutγ表示在算法執(zhí)行中不使用本文提出的誤差容忍系數(shù)γ。實驗結果見表4。通過實驗結果可以發(fā)現(xiàn):由于數(shù)據(jù)量過少,只用目標省份的數(shù)據(jù)很難訓練出滿意的模型;遷移學習考慮了目標領域與源領域數(shù)據(jù)分布的差別,在模型的分數(shù)上有一定的提升;容忍系數(shù)γ的引入,一定程度上解決了在回歸問題中,源領域樣本權重縮減太快的問題,從而提高了算法的效果。
召回率可以很好地衡量模型對異常站點的檢測能力。因為人工排查所有站點的業(yè)務數(shù)量耗時耗力,所以本文采用隨機抽樣的方式,每次抽樣100個站點,刪減其業(yè)務數(shù)量,然后觀測模型能否檢測到被刪減的站點。在A,B,C三省的站點中,隨機進行了3次無放回抽樣刪減,平均有93個站點被標記為異常,模型召回率達93%。截至目前,根據(jù)模型推薦的異常站點,電網運營人員對約10個異常站點的實際業(yè)務數(shù)量進行了線下排查,根據(jù)排查結果與真值預測結果,得到的R2分數(shù)為0.807 2。
表4 算法的結果分析Tab.4 Analysis of the results of the algorithm
本文提出了加權多源TrAdaBoost的回歸算法,多源的遷移學習擁有更廣泛的使用場景和有效避免負遷移的優(yōu)勢。同時提出了誤差容忍系數(shù),該系數(shù)能夠一定程度解決源領域樣本權重縮減過快的問題,提高了算法的效果。在修改后的Friedman#1回歸問題上進行了實驗,驗證了該算法的有效性。本文將提出的算法應用到電力通信網的行業(yè)問題中,提出了異常站點(業(yè)務數(shù)量缺失嚴重的站點)檢測與真值預測模型,在特征工程中使用了社交網絡分析的方法,最終的實驗效果進一步驗證了算法的有效性。本文將多源遷移學習應用到電力通信網的行業(yè)問題中,可以給該行業(yè)的問題帶來新的思路和方法。