林加潤 殷建平 張曉峰 蔡志平 明月偉
(1.國防科技大學(xué)計(jì)算機(jī)學(xué)院 長沙 410073)(2.中國人民解放軍61070部隊(duì) 福州 350002)
在大數(shù)據(jù)和云計(jì)算時(shí)代,數(shù)據(jù)規(guī)模越來越大,數(shù)據(jù)類型越來越復(fù)雜,對計(jì)算的資源要求也隨著越來越高。在豐富的動(dòng)態(tài)數(shù)據(jù)的基礎(chǔ)上,要挖掘大數(shù)據(jù)的價(jià)值,必然需要大量計(jì)算資源和高效的學(xué)習(xí)算法。在云計(jì)算環(huán)境中使用機(jī)器學(xué)習(xí)算法對大數(shù)據(jù)進(jìn)行數(shù)據(jù)內(nèi)容上的分析與計(jì)算,以低廉的價(jià)格調(diào)用云計(jì)算豐富的資源,分析數(shù)據(jù)模式并挖掘信息,已成為當(dāng)前學(xué)術(shù)界與企業(yè)界的一種趨勢。
極限學(xué)習(xí)機(jī)(Extreme Learning Machine,ELM)因?yàn)橛?xùn)練速度和較高的訓(xùn)練精度,其應(yīng)用已經(jīng)越來越普及。極限學(xué)習(xí)機(jī)是G.Huang等提出的面向單隱層前饋神經(jīng)網(wǎng)絡(luò)(Single Layer Feed-forward Networks,SLFNs)的學(xué)習(xí)算法[2~4]。ELM不僅學(xué)習(xí)速度極快,而且會(huì)達(dá)到訓(xùn)練誤差最小的效果,同時(shí)具有最小輸出權(quán)重規(guī)范,因而能夠提供良好的泛化性能。其中,隱層節(jié)點(diǎn)的參數(shù)隨機(jī)分配,輸出權(quán)重矩陣可通過隱層輸出矩陣的廣義逆解析求解。
將極限學(xué)習(xí)機(jī)外包在云計(jì)算中,能最大限度地提高機(jī)器學(xué)習(xí)的訓(xùn)練速度,高效實(shí)現(xiàn)大數(shù)據(jù)的處理與分析。用戶將數(shù)據(jù)或程序外包給云計(jì)算服務(wù)商的同時(shí),也喪失了對數(shù)據(jù)或程序的直接控制權(quán)。然而,云計(jì)算服務(wù)商會(huì)有意或無意地對數(shù)據(jù)或程序進(jìn)行分析,挖掘各種隱私信息,從用戶的數(shù)據(jù)或程序中進(jìn)一步獲取潛在的利益。隱私泄露的潛在危險(xiǎn),使得云計(jì)算外包的發(fā)展受到了很大的阻礙[1]。云計(jì)算外包的隱私泄漏風(fēng)險(xiǎn),使得用戶很難在保證數(shù)據(jù)的安全隱私的同時(shí)充分利用云計(jì)算服務(wù)商提供的豐富資源。
J.Lin等[5]首先研究了將ELM外包到云計(jì)算中的安全機(jī)制。該機(jī)制一方面保證了數(shù)據(jù)隱私,另一方面又利用豐富的云計(jì)算資源大幅度提高了ELM的訓(xùn)練學(xué)習(xí)速度。在求解隱層輸出矩陣廣義逆時(shí),[5]采用奇異值分解(Singular Value Decomposition,SVD)算法求得。然而,該算法的復(fù)雜性較高,且會(huì)引入大量的通信開銷。本文對ELM的云計(jì)算外包部署機(jī)制進(jìn)行優(yōu)化,提出了新的部署方案。在該優(yōu)化部署方案中,采用正交投影法求解隱層輸出矩陣的廣義逆,在保護(hù)用戶輸入與輸出機(jī)密性的同時(shí)進(jìn)一步加快訓(xùn)練學(xué)習(xí)的速度,并降低客戶端與云計(jì)算服務(wù)器間的通信開銷。
在ELM中,隱層節(jié)點(diǎn)參數(shù)為隨機(jī)分配,輸出權(quán)重可通過矩陣計(jì)算解析地確定。在激活函數(shù)無窮可微的前提下,輸入層權(quán)重矩陣和隱含層偏置值無需迭代式調(diào)整,而輸出層權(quán)重矩陣可解析式獲得。與傳統(tǒng)學(xué)習(xí)算法和深度學(xué)習(xí)算法相比,ELM需要較少的人工干預(yù)和更少的訓(xùn)練時(shí)間。
任意N個(gè)不同的樣本用矩陣(X,T)來表示,X=(x1,x2,…,xN),T=(t1,t2,…,tN)。文獻(xiàn)[2~4]已經(jīng)證明,在訓(xùn)練SLFN時(shí),無需迭代調(diào)整神經(jīng)網(wǎng)絡(luò)中輸入層與隱藏層之間的參數(shù)。相反,如果隱層的激活函數(shù)g(·)是無窮可微的,則可以隨機(jī)分配隱層節(jié)點(diǎn)的參數(shù)。SLFN的結(jié)構(gòu)如圖1所示。其中(W,b)為隱含層的參數(shù),b表示隱含層節(jié)點(diǎn)上的偏置矩陣。wi為連接輸入層與第i個(gè)隱含層節(jié)點(diǎn)之間的輸入權(quán)重向量,βi為連接第i個(gè)隱含層節(jié)點(diǎn)與輸出層之間的輸出權(quán)重向量,β為輸出權(quán)重矩陣。N為訓(xùn)練樣本數(shù)量,M為隱層節(jié)點(diǎn)的數(shù)量。
然而,在應(yīng)用程序中涉及到的數(shù)據(jù)日益擴(kuò)大且結(jié)構(gòu)日益復(fù)雜,使得在大規(guī)模數(shù)據(jù)上運(yùn)行ELM仍然是一個(gè)極具有挑戰(zhàn)性的任務(wù)。為了應(yīng)對這一挑戰(zhàn),研究人員已經(jīng)提出了許多ELM變種。例如,M.van Heeswijk等[7]充分利用GPU資源對ELM進(jìn)行并行化和加速;Q.He等[6]提出在Map-Reduce的框架上并行ELM。
我們注意到,ELM最大的特點(diǎn)是隱層節(jié)點(diǎn)的參數(shù)是隨機(jī)分配的,因此ELM特別適合外包給云計(jì)算服務(wù)商。[5]將ELM中最為耗時(shí)的計(jì)算部分(即,隱層輸出矩陣的廣義逆求解)外包到云計(jì)算中,并采用SVD算法求解廣義逆。目前最優(yōu)的SVD算法的復(fù)雜性為O(C1N2M+C2M3)。訓(xùn)練集規(guī)模龐大時(shí),N?M,ELM的訓(xùn)練學(xué)習(xí)速度會(huì)大幅度下降。
圖1 極限學(xué)習(xí)機(jī)的SLFN結(jié)構(gòu)
將隱層輸出矩陣標(biāo)記為H,H的大小為N×M :
本文采用正交投影法計(jì)算隱層輸出矩陣廣義逆。G.Huang在文獻(xiàn)[2~4]中證明,當(dāng) HTH 或者HHT矩陣為可逆時(shí),可采用正交投影法來計(jì)算廣義逆;添加一個(gè)正則化項(xiàng),可提高ELM學(xué)習(xí)算法的泛化性能,并使得解決方案更加健壯。
隱層輸出矩陣H的廣義逆H?為
由于樣本數(shù)據(jù)的大小往往要比隱層節(jié)點(diǎn)數(shù)量大,甚至要遠(yuǎn)遠(yuǎn)大于隱層節(jié)點(diǎn)數(shù)量,因此本文后續(xù)只討論N≥M的情況。
為提高ELM算法的泛化性能與健壯性,添加了一個(gè)正則化項(xiàng)。即
則輸出權(quán)重矩陣為
我們定義一個(gè)中間矩陣Ω為
則
其中中間矩陣Ω的大小為M×M,遠(yuǎn)遠(yuǎn)小于H?的大小??紤]到多矩陣乘法的優(yōu)化,更好地提高訓(xùn)練速度,可先計(jì)算HTT再與Ω-1相乘,即
為減少ELM在大規(guī)模數(shù)據(jù)上的訓(xùn)練時(shí)間,可將其瓶頸計(jì)算外包到計(jì)算資源豐富的云計(jì)算中。然而,用戶選擇外包也意味著放棄對數(shù)據(jù)和應(yīng)用程序的直接控制,而數(shù)據(jù)和應(yīng)用程序中可能包含敏感信息。
ELM外包機(jī)制中,數(shù)據(jù)的安全威脅主要來自云計(jì)算服務(wù)商內(nèi)部。云計(jì)算服務(wù)商是“誠實(shí)但好奇”的(也被稱為半可信模型)。該假設(shè)被國內(nèi)外研究學(xué)者廣泛接受[1,9~10]。云計(jì)算服務(wù)商會(huì)有意或無意地對數(shù)據(jù)進(jìn)行分析,挖掘用戶的潛在信息和隱私。在本文中,我們假定,云服務(wù)器可能會(huì)有不誠實(shí)的行為。它可能會(huì)在希望不被發(fā)現(xiàn)的同時(shí)欺騙用戶,以節(jié)省資源或減少執(zhí)行時(shí)間。我們首先假設(shè)云服務(wù)器誠實(shí)執(zhí)行計(jì)算,然后討論結(jié)果的驗(yàn)證,以確保云計(jì)算服務(wù)商誠信地運(yùn)行用戶外包出去的業(yè)務(wù)。
在體系結(jié)構(gòu)中,云計(jì)算外包涉及兩種不同的實(shí)體:云計(jì)算用戶與云計(jì)算服務(wù)器。前者有若干計(jì)算量較大的ELM問題。后者擁有豐富的計(jì)算資源,如圖2所示。
由于篇幅有限,本文暫只考慮云計(jì)算中ELM的外包機(jī)制,省略了登錄驗(yàn)證過程等并假設(shè)兩者之間的通信渠道是可靠且高效的。
在本文中,我們顯式地將ELM算法分解成一個(gè)公共部分和一個(gè)私有部分。私有部分除負(fù)責(zé)產(chǎn)生隨機(jī)參數(shù)(W,b)和計(jì)算隱層輸出矩陣外,還負(fù)責(zé)按式(5)計(jì)算中間矩陣Ω。用戶在本地計(jì)算Ω后,將其發(fā)送到云計(jì)算服務(wù)器。云計(jì)算服務(wù)器負(fù)責(zé)公共部分,主要計(jì)算在此過程中最為耗時(shí)的Ω-1求解。云服務(wù)器計(jì)算出Ω-1后,將其發(fā)送回用戶。用戶在本地用戶端通過式(7)獲得所需要的輸出權(quán)重β。
Ω的求逆運(yùn)算的算法復(fù)雜度為O(M3),也遠(yuǎn)小于SVD算法的復(fù)雜度,從而提高ELM的訓(xùn)練學(xué)習(xí)速度。
圖2 云計(jì)算中ELM外包機(jī)制的體系結(jié)構(gòu)
ELM是非常適合于外包的,而且能確保神經(jīng)網(wǎng)絡(luò)訓(xùn)練樣本和所需參數(shù)的機(jī)密性。ELM算法的輸入為訓(xùn)練集(X,T),輸出為ELM算法所訓(xùn)練的SLFN網(wǎng)絡(luò)參數(shù)(W,b,β)。
在ELM的私有部分,隱含層節(jié)點(diǎn)的參數(shù)(W,b),作為所訓(xùn)練的SLFN神經(jīng)網(wǎng)絡(luò)的所需參數(shù)的一部分,是隨機(jī)分配的。這些參數(shù)必須由用戶自身產(chǎn)生。注意到,無窮可微的激活函數(shù)g(·)是無窮多的。而且,正則化常數(shù)C也是未知的,因此,云計(jì)算服務(wù)提供商單從所接收到的Ω是無法推算出確切的X或者(W,b)。
需要注意的是,即使云計(jì)算服務(wù)商知道具體的激活函數(shù) g(·)與正則化參數(shù)C并能推導(dǎo)出矩陣HTH、隱層輸出矩陣H以及矩陣WX+b,也仍然無法推導(dǎo)出ELM算法的輸入或者輸出,因?yàn)閄和(W,b)對于云計(jì)算服務(wù)商來說都是未知的。云計(jì)算服務(wù)商只負(fù)責(zé)計(jì)算H的廣義逆H?,并將其發(fā)送回用戶。而T也一直保留在本地,并未暴露給云計(jì)算服務(wù)商。ELM算法的另外一部分輸出β是在本地按照式(7)計(jì)算的,因此云計(jì)算服務(wù)商也無法推導(dǎo)出β。
總之,在整個(gè)外包過程中,云計(jì)算服務(wù)商始終無法獲取所訓(xùn)練的SLFN神經(jīng)網(wǎng)絡(luò)的參數(shù)(W,b,β)或者(X,T)。ELM算法輸入和輸出的安全性在本文提出的外包優(yōu)化部署機(jī)制中得到了保證。
本文到目前為止一直假設(shè)云計(jì)算服務(wù)商雖然對隱藏的信息感興趣,但仍然誠實(shí)地執(zhí)行用戶所指定的操作。然而,實(shí)際上,為了節(jié)省資源或減少執(zhí)行時(shí)間,云計(jì)算服務(wù)商可能并不會(huì)始終誠實(shí)地執(zhí)行,而選擇返回近似的計(jì)算結(jié)果。因此,外包機(jī)制必須確保用戶能夠驗(yàn)證結(jié)果的正確性和可靠性。
在本文提出的外包機(jī)制中,從云計(jì)算服務(wù)器返回的計(jì)算結(jié)果,也就是SLFN神經(jīng)網(wǎng)路中中間矩陣Ω的逆Ω-1本身可以作為驗(yàn)證結(jié)果正確性和可靠性的證據(jù)。根據(jù)矩陣逆的定義,只需引入少量的計(jì)算開銷就能驗(yàn)證結(jié)果的正確性和穩(wěn)健性,而無需引入額外的通信開銷。
在文獻(xiàn)[5]提出的ELM外包機(jī)制中,ELM用戶和云計(jì)算服務(wù)器之間的通信開銷為Td=2×,B為用戶與云計(jì)算服務(wù)商之間的通信帶寬。在本文提出的ELM優(yōu)化部署方案中,通信開銷為
由于在數(shù)據(jù)規(guī)模非常龐大時(shí),N?M,本文提出的ELM外包部署機(jī)制引入的通信開銷將遠(yuǎn)遠(yuǎn)小于文獻(xiàn)[5]中提出的ELM外包機(jī)制所引入的通信開銷。
使用t0和t來分別標(biāo)記原始ELM算法和在本文所提出的外包機(jī)制下ELM的訓(xùn)練時(shí)間。t主要為兩個(gè)部分,即客戶端和云計(jì)算服務(wù)器端的計(jì)算時(shí)間,分別用tl和tc來表示。定義非對稱加速比為λ=t0tl。λ表示用戶端計(jì)算資源的節(jié)約數(shù)量比,且僅與ELM問題的規(guī)模大小相關(guān),而與云計(jì)算的資源豐富程度無關(guān)[1]。
使用一個(gè)普通工作站(英特爾酷睿i5-3210M CPU,2.50GHz,4GB RAM)模擬客戶端。云計(jì)算服務(wù)器由一個(gè)英特爾酷睿i5-3470 CPU工作站(3.20GHz,6GB RAM)模擬。通過將ELM中最耗時(shí)的瓶頸計(jì)算從一個(gè)具有較少計(jì)算資源的工作站外包到另外一個(gè)資源較為豐富的工作站,可以評價(jià)本文提出的外包優(yōu)化部署機(jī)制,而無需真實(shí)的云計(jì)算環(huán)境。我們的外包機(jī)制關(guān)注于提高訓(xùn)練速度,不影響原先ELM算法的訓(xùn)練準(zhǔn)確率和測試準(zhǔn)確率。
我們在CIFAR-10[11]數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)。該數(shù)據(jù)集由50000個(gè)訓(xùn)練彩圖(32×32)和10000個(gè)10級的測試圖像組成。為了減少屬性的數(shù)量,首先將彩色圖像轉(zhuǎn)化為灰度圖像。對每個(gè)M進(jìn)行了5個(gè)試驗(yàn)并取平均值,隨機(jī)選取兩個(gè)集合作為訓(xùn)練樣本和測試樣本。實(shí)驗(yàn)結(jié)果如表1所示。
表1 在部分CIFAR-10數(shù)據(jù)集上ELM外包優(yōu)化部署機(jī)制的實(shí)驗(yàn)結(jié)果
從實(shí)驗(yàn)結(jié)果可以看出,M越大,ELM問題的規(guī)模越大,內(nèi)存逐漸成為瓶頸資源,云計(jì)算下ELM的外包機(jī)制所獲取的非對稱加速比也在顯著上升。也就是說,隨著問題規(guī)模的增大,本文提出的外包優(yōu)化部署機(jī)制能獲取更高的非對稱加速比λ,即能夠更好的節(jié)約本地的計(jì)算資源。整體加速比與云計(jì)算的計(jì)算資源息息相關(guān),隨著問題規(guī)模的增大,整體加速比也穩(wěn)步提升,如圖3所示。
圖3 非對稱加速比與整體加速比對比圖
從一些列的實(shí)驗(yàn)可以看出,訓(xùn)練準(zhǔn)確率隨著隱含層節(jié)點(diǎn)數(shù)量的增加,從83%穩(wěn)步增加到95%,測試準(zhǔn)確率在80%到84%之間變化。在本文實(shí)驗(yàn)中,M=2000時(shí)ELM能獲取最高測試準(zhǔn)確率,為83.45%。需要注意的是,本文提出的云計(jì)算環(huán)境下的ELM外包優(yōu)化部署機(jī)制并不影響ELM學(xué)習(xí)的訓(xùn)練準(zhǔn)確率和測試準(zhǔn)確率,僅提高訓(xùn)練學(xué)習(xí)的速度。
為了確定M值使得ELM算法取得最高的測試準(zhǔn)確率,用戶可能需要在不同M值下測試多次試驗(yàn)。在這種情況下,用戶可將同一訓(xùn)練集下的多個(gè)ELM問題同時(shí)外包給云計(jì)算服務(wù)提供商,從而更加充分地利用云計(jì)算服務(wù)器的豐富計(jì)算資源和存儲(chǔ)資源。
本文提出了一個(gè)在云計(jì)算環(huán)境下外包ELM的優(yōu)化部署機(jī)制,在降低訓(xùn)練時(shí)間的同時(shí),保證了輸入與輸出的安全性。本文提出的優(yōu)化部署機(jī)制并未將整個(gè)隱層輸出矩陣的廣義逆求解外包給云計(jì)算,而僅將中間矩陣的求逆外包,降低了通信延遲開銷,進(jìn)一步提高了ELM訓(xùn)練學(xué)習(xí)的速度。中間矩陣的逆可用于在不引入額外通信開銷的同時(shí)驗(yàn)證結(jié)果的正確性和可靠性。理論分析和實(shí)驗(yàn)結(jié)果表明,本文提出的ELM外包優(yōu)化部署機(jī)制可有效地使用戶從繁重的計(jì)算釋放出來,并有效保護(hù)用戶數(shù)據(jù)的安全與隱私。