劉 振,吳 宇
(東莞理工學(xué)院網(wǎng)絡(luò)空間安全學(xué)院,廣東東莞 523808)
近年來,人工智能[1](Artificial Intelligence,AI)的研究主要在機(jī)器人[2]、語言識(shí)別[3]、圖像識(shí)別[4]等方面,這些研究領(lǐng)域使得人工智能的發(fā)展不斷成熟,應(yīng)用領(lǐng)域也不斷擴(kuò)大。21 世紀(jì)初,人工智能進(jìn)入以深度學(xué)習(xí)[5]為主導(dǎo)的大數(shù)據(jù)時(shí)代,深度學(xué)習(xí)被引入機(jī)器學(xué)習(xí)使得其更接近于最初的人工智能目標(biāo)。深度學(xué)習(xí)的訓(xùn)練是含多個(gè)隱藏層和多個(gè)層感知器的深度學(xué)習(xí)結(jié)構(gòu),需要聯(lián)合多方數(shù)據(jù)進(jìn)行機(jī)器學(xué)習(xí)模型的訓(xùn)練。
聯(lián)邦學(xué)習(xí)[6](Federated Learning,F(xiàn)L)可以在沒有集中訓(xùn)練數(shù)據(jù)的大量邊緣設(shè)備(客戶端)上實(shí)現(xiàn)協(xié)作式機(jī)器學(xué)習(xí),但是設(shè)備之間有限的網(wǎng)絡(luò)帶寬資源以及傳統(tǒng)聯(lián)邦學(xué)習(xí)依賴中心化服務(wù)器進(jìn)行模型訓(xùn)練的問題,給聯(lián)邦學(xué)習(xí)帶來了一系列的通信效率和擴(kuò)展性等問題,而這些問題都會(huì)影響機(jī)器學(xué)習(xí)模型的訓(xùn)練效果。為了解決以上問題,提出了一種新的聯(lián)邦學(xué)習(xí)方案,能夠在訓(xùn)練過程中自適應(yīng)獲取閾值,并以此篩選和全局模型更“一致”的客戶端本地模型,該方案不僅節(jié)省了大量訓(xùn)練過程中的網(wǎng)絡(luò)帶寬,提高了機(jī)器學(xué)習(xí)模型的收斂率和精確度,使得訓(xùn)練過程安全性得到保障。
網(wǎng)絡(luò)帶寬資源的緊缺成為阻礙聯(lián)邦學(xué)習(xí)獲得更高精確度機(jī)器學(xué)習(xí)模型的瓶頸之一,并且傳統(tǒng)的聯(lián)邦學(xué)習(xí)需要中心化服務(wù)器進(jìn)行全局模型的更新,這些都會(huì)影響到機(jī)器學(xué)習(xí)模型的訓(xùn)練效果。在對(duì)聯(lián)邦學(xué)習(xí)的研究中提出了多種緩解通信開銷的解決方案,其中,文獻(xiàn)[7]是根據(jù)每個(gè)客戶端節(jié)點(diǎn)的本地模型更新是否符合全局模型更新趨勢(shì)來篩選參與到全局模型更新的客戶端本地模型。但是該方案中的閾值選擇方式存在浪費(fèi)訓(xùn)練資源的現(xiàn)象,例如:通過手動(dòng)遍歷所有可能閾值,然后對(duì)比所有閾值下的全局模型來選取最佳閾值。該訓(xùn)練過程中不可避免地增加網(wǎng)絡(luò)的通信開銷和計(jì)算開銷,并且在全局模型的訓(xùn)練過程中會(huì)消耗更多的訓(xùn)練資源。
基于CMFL 篩選算法,該方案設(shè)計(jì)了一種自適應(yīng)閾值更新算法,算法在每一輪訓(xùn)練過程中自適應(yīng)更新篩選閾值,能夠有效篩除無助于全局模型更新的客戶端本地模型,節(jié)約全局模型訓(xùn)練過程中的訓(xùn)練資源,并且結(jié)合區(qū)塊鏈[8]技術(shù)解決了聯(lián)邦學(xué)習(xí)中心化服務(wù)器進(jìn)行全局模型聚合以及存在的模型隱私[9-11]安全問題。
目前在對(duì)聯(lián)邦學(xué)習(xí)通信開銷的研究中,主要有兩種方法[12-13]可以減少模型訓(xùn)練期間的通信開銷:1)減少每個(gè)客戶端更新上傳的總比特?cái)?shù)在;2)減少每個(gè)客戶端上傳的更新總數(shù)。
CMFL 利用式(1)計(jì)算全局模型和客戶端本地模型的相關(guān)性,其中,-u表示客戶端節(jié)點(diǎn)梯度方向向量矩陣,e表示它們的相關(guān)性,u表示上一次全局更新服務(wù)端的方向向量矩陣。
圖1 展示了客戶端節(jié)點(diǎn)和模型需求方的梯度方向向量矩陣相關(guān)性計(jì)算過程。首先,提取客戶端1模型梯度和客戶端2 模型梯度的方向向量矩陣,再與上一輪全局模型梯度的方向向量矩陣進(jìn)行對(duì)比,計(jì)算相同位置上相同方向(正負(fù))占整個(gè)梯度數(shù)據(jù)個(gè)數(shù)總和的比例。通過手工設(shè)置的閾值T,判斷當(dāng)前客戶端節(jié)點(diǎn)的方向向量矩陣-u與上一輪全局更新的方向向量矩陣u的相關(guān)性e是否達(dá)到閾值T,以此決定該客戶端節(jié)點(diǎn)的本地模型是否可以參與到當(dāng)前迭代的全局更新。但是該方法需要通過對(duì)比多個(gè)手動(dòng)設(shè)置固定閾值訓(xùn)練得到的全局模型來決定最優(yōu)全局模型,該方法存在浪費(fèi)訓(xùn)練資源的現(xiàn)象,并且需要中心化服務(wù)器進(jìn)行全局模型的聚合。
通過分析CMFL 篩選算法中尋找適合全局模型訓(xùn)練閾值的方法,發(fā)現(xiàn)閾值是經(jīng)過線性遞增的方式來手動(dòng)設(shè)定,如設(shè)置閾值為{0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9},然后通過比較在每個(gè)設(shè)定閾值下訓(xùn)練得到的最終全局模型的訓(xùn)練效果來獲得最佳的閾值設(shè)置。在全局模型的訓(xùn)練過程中,使用手動(dòng)設(shè)置固定閾值的CMFL 篩選算法除了需要占用大量的訓(xùn)練資源外,在全局模型的訓(xùn)練過程中還存在客戶端不斷更新的情況,包括無助于全局模型訓(xùn)練的數(shù)據(jù)加入,新客戶端節(jié)點(diǎn)動(dòng)態(tài)加入到訓(xùn)練中等情況,這些情況的出現(xiàn)使得全局模型的訓(xùn)練過程復(fù)雜化。如果采用手動(dòng)設(shè)定固定閾值的方式,控制參與整個(gè)全局模型訓(xùn)練過程中的客戶端,不能有效適應(yīng)動(dòng)態(tài)變化的聯(lián)邦學(xué)習(xí)訓(xùn)練場(chǎng)景。
實(shí)驗(yàn)中記錄了多次手動(dòng)設(shè)置的固定閾值以及首次滿足閾值的客戶端本地模型與全局模型的相關(guān)性。如圖2 所示,左邊第一組柱狀圖是進(jìn)行聯(lián)邦學(xué)習(xí)時(shí)篩選算法設(shè)置的四個(gè)固定閾值,右邊兩個(gè)柱狀圖是對(duì)應(yīng)固定閾值下,利用如式(1)所示獲取的首次通過篩選的兩個(gè)客戶端本地模型與全局模型的四個(gè)相關(guān)性數(shù)值。通過柱狀圖可以發(fā)現(xiàn)首次通過篩選的客戶端本地模型的相關(guān)性與固定閾值相近,并沒有超出閾值太多。另外相關(guān)性與固定閾值的變化成正相關(guān),隨著固定閾值的增大,通過篩選的客戶端本地模型與全局模型的相關(guān)性也增大,并且全局模型的精確度也提高了。假設(shè)在全局模型訓(xùn)練過程中,不是固定單個(gè)閾值完成整個(gè)全局模型的訓(xùn)練,而是在每輪訓(xùn)練過程中,通過篩選的客戶端本地模型與全局模型的相關(guān)性,來獲得下一輪用于篩選客戶端本地模型的閾值,對(duì)每一輪全局模型的訓(xùn)練進(jìn)行篩選,使全局模型的每輪訓(xùn)練效果達(dá)到最優(yōu),從而使得最后的全局模型達(dá)到最優(yōu)。
通過以上假設(shè)分析,根據(jù)上一輪全局模型與客戶端本地模型的相關(guān)性與手動(dòng)設(shè)定閾值之間的變化關(guān)系,設(shè)計(jì)了如式(2)所示自適應(yīng)閾值更新算法來獲得每一輪訓(xùn)練用于篩選客戶端節(jié)點(diǎn)本地模型的閾值。其中,tk表示本輪每一個(gè)通過篩選的客戶端本地模型與上一輪全局模型的相關(guān)性數(shù)值,T表示各個(gè)tk求和之后取小數(shù)點(diǎn)后一位獲得新閾值(采用斷尾法)。圖3展示了獲取新閾值的過程,累加通過篩選的客戶端本地模型與全局模型的相關(guān)性數(shù)據(jù),沒有通過篩選的客戶端本地模型與全局模型的相關(guān)性數(shù)據(jù)不進(jìn)行累加,再對(duì)累加之后的數(shù)據(jù)計(jì)算平均值并取小數(shù)點(diǎn)后一位,將獲得的數(shù)據(jù)作為下一輪全局模型訓(xùn)練用于篩選的新閾值。
圖3 獲取新閾值過程
接下來,將通過具體的實(shí)驗(yàn)對(duì)改進(jìn)后的緩解聯(lián)邦學(xué)習(xí)通信開銷的方案進(jìn)行測(cè)試,并結(jié)合區(qū)塊鏈技術(shù),實(shí)現(xiàn)去中心化的自適應(yīng)權(quán)重趨勢(shì)感知聯(lián)邦學(xué)習(xí)。
通過在聯(lián)盟鏈Hyperledger Fabric[14]1.4 上部署十個(gè)客戶端節(jié)點(diǎn)來模擬評(píng)估方案。設(shè)置十個(gè)客戶端節(jié)點(diǎn),使用經(jīng)典的手寫數(shù)字識(shí)別神經(jīng)網(wǎng)絡(luò)[15]和卷積神經(jīng)網(wǎng)絡(luò)[16]對(duì)聯(lián)邦學(xué)習(xí)方案進(jìn)行評(píng)估,每個(gè)客戶端節(jié)點(diǎn)含有5 000 個(gè)訓(xùn)練數(shù)據(jù),1 000 個(gè)測(cè)試數(shù)據(jù),每輪訓(xùn)練隨機(jī)使用300 個(gè)訓(xùn)練數(shù)據(jù),100 個(gè)測(cè)試數(shù)據(jù)。實(shí)驗(yàn)設(shè)置了八個(gè)客戶端節(jié)點(diǎn),使用原始的手寫數(shù)字識(shí)別數(shù)據(jù)集,兩個(gè)客戶端節(jié)點(diǎn)作為干擾節(jié)點(diǎn),即無助于全局模型訓(xùn)練的節(jié)點(diǎn),對(duì)干擾節(jié)點(diǎn)數(shù)據(jù)設(shè)定為含有80%的均值為0.6 和20%的方差為0.6 高斯噪聲[17]的手寫數(shù)字識(shí)別數(shù)據(jù)集。
3.2.1 自適應(yīng)神經(jīng)網(wǎng)絡(luò)聯(lián)邦學(xué)習(xí)
實(shí)驗(yàn)在基于區(qū)塊鏈的聯(lián)邦學(xué)習(xí)中測(cè)試自適應(yīng)閾值更新算法對(duì)神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練的效果。使用實(shí)驗(yàn)設(shè)置中的十個(gè)客戶端節(jié)點(diǎn)來模擬大量參與聯(lián)邦學(xué)習(xí)的場(chǎng)景。在訓(xùn)練開始,十個(gè)客戶端節(jié)點(diǎn)同時(shí)參加聯(lián)邦學(xué)習(xí),觀察使用不同閾值更新方式對(duì)基于區(qū)塊鏈的神經(jīng)網(wǎng)絡(luò)聯(lián)邦學(xué)習(xí)過程的影響。
如圖4 所示,方塊構(gòu)成折線圖表示使用固定閾值為0.8 的實(shí)驗(yàn)結(jié)果,圓圈構(gòu)成折線圖表示使用自適應(yīng)閾值更新算法的實(shí)驗(yàn)結(jié)果。實(shí)驗(yàn)結(jié)果表明,隨著全局模型訓(xùn)練的進(jìn)行,使用了自適應(yīng)閾值更新算法的模型訓(xùn)練效果優(yōu)于使用固定閾值模型訓(xùn)練的效果,因?yàn)樵谟?xùn)練過程中,使用自適應(yīng)閾值更新算法的全局模型訓(xùn)練將干擾全局模型優(yōu)化的客戶端節(jié)點(diǎn)訓(xùn)練得到的本地模型進(jìn)行了自適應(yīng)篩除,有效減少了含有干擾數(shù)據(jù)的客戶端本地模型參與到全局模型的聚合中。
圖4 閾值選擇方式對(duì)神經(jīng)網(wǎng)絡(luò)模型的影響
通過分析實(shí)驗(yàn)結(jié)果得出,干擾數(shù)據(jù)在訓(xùn)練到第三、四輪閾值自適應(yīng)調(diào)整為0.9 時(shí)被篩除,但是在使用手動(dòng)設(shè)置固定閾值時(shí),如果直接設(shè)置閾值為0.9,實(shí)驗(yàn)發(fā)現(xiàn)在訓(xùn)練開始階段沒有一個(gè)客戶端本地模型與全局模型的相關(guān)性能夠達(dá)到這個(gè)數(shù)值,導(dǎo)致使用手動(dòng)設(shè)置固定閾值方法無法篩除含有干擾數(shù)據(jù)的客戶端節(jié)點(diǎn)。如圖4 所示,使用動(dòng)態(tài)閾值篩選方式的全局模型比使用閾值為0.8 時(shí)篩選算法的全局模型收斂的速度更快,并且全局模型的精確度更高,沒有使用自適應(yīng)閾值更新算法的全局模型精確度明顯低于使用了自適應(yīng)閾值更新算法的模型精確度,并且設(shè)置固定閾值為0.8 時(shí),含有干擾數(shù)據(jù)的客戶端節(jié)點(diǎn)還在繼續(xù)參與全局模型的訓(xùn)練。固定閾值選擇方式需要手動(dòng)設(shè)置多個(gè)閾值,經(jīng)過多次實(shí)驗(yàn)才能將閾值調(diào)整為可以篩除含有干擾數(shù)據(jù)的客戶端節(jié)點(diǎn)的閾值,在面對(duì)客戶端數(shù)據(jù)不確定的情況下,甚至都不能達(dá)到篩除含有干擾數(shù)據(jù)的客戶端節(jié)點(diǎn)的效果,整個(gè)過程會(huì)占用大量的訓(xùn)練資源。
表1 所示為使用自適應(yīng)閾值更新算法與使用固定閾值的篩選算法獲得的模型精確度,以及減少計(jì)算開銷和通信開銷的數(shù)據(jù)。發(fā)現(xiàn)使用自適應(yīng)閾值更新算法可以有效篩除含有干擾數(shù)據(jù)的客戶端本地模型,相比較于使用固定閾值方式,自適應(yīng)閾值更新算法可以減少獲得機(jī)器學(xué)習(xí)模型的時(shí)間并且提高精確度。由表1 可以得到,在實(shí)驗(yàn)中,使用自適應(yīng)閾值更新算法比使用固定閾值在進(jìn)行模型訓(xùn)練時(shí),減少了訓(xùn)練過程中20%的通信開銷,并且提高了4.4%的模型精確度。
表1 神經(jīng)網(wǎng)絡(luò)篩選結(jié)果
3.2.2 自適應(yīng)卷積神經(jīng)網(wǎng)絡(luò)聯(lián)邦學(xué)習(xí)
實(shí)驗(yàn)在基于區(qū)塊鏈的聯(lián)邦學(xué)習(xí)中測(cè)試自適應(yīng)閾值更新算法對(duì)卷積神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練的效果。使用十個(gè)客戶端來模擬大量參與聯(lián)邦學(xué)習(xí)的情景,并在其中兩個(gè)客戶端的手寫數(shù)字識(shí)別數(shù)據(jù)集中加入噪聲以模仿含有干擾數(shù)據(jù)的客戶端節(jié)點(diǎn)。為了進(jìn)一步驗(yàn)證使用了自適應(yīng)閾值更新算法能夠更好地處理客戶端數(shù)據(jù)不斷更新的情況,實(shí)驗(yàn)在訓(xùn)練開始時(shí)和訓(xùn)練第65 輪時(shí),將兩個(gè)含有干擾數(shù)據(jù)的客戶端節(jié)點(diǎn)分別加入到全局模型的訓(xùn)練中。在實(shí)驗(yàn)中發(fā)現(xiàn),含有干擾數(shù)據(jù)的客戶端節(jié)點(diǎn)訓(xùn)練的本地模型與全局模型相關(guān)性可以高達(dá)到0.8 以上,利用手動(dòng)設(shè)置固定閾值遞增的方式去尋找最優(yōu)固定閾值,會(huì)占用大量訓(xùn)練資源。
如表2 所示,實(shí)驗(yàn)測(cè)試多個(gè)固定閾值下獲得的全局模型精確度與篩除的客戶端的數(shù)量,在卷積神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練的實(shí)驗(yàn)中,自適應(yīng)閾值選擇方式不僅提高了通信效率,節(jié)約了區(qū)塊鏈的計(jì)算資源,而且在獲得最優(yōu)模型的訓(xùn)練過程中節(jié)約了至少五倍的訓(xùn)練資源,因?yàn)橥ㄟ^遞增尋找閾值0.8,需要進(jìn)行多次的實(shí)驗(yàn)比較,并且訓(xùn)練剛開始設(shè)定閾值為0.9 就會(huì)出現(xiàn)全局模型無法訓(xùn)練的情況,該過程也會(huì)占用大量的訓(xùn)練資源。
表2 閾值選擇方式比較
如表3 所示,表中統(tǒng)計(jì)了使用自適應(yīng)閾值更新算法與使用手動(dòng)設(shè)置固定閾值獲得的模型精確度,以及減少計(jì)算開銷和通信開銷的數(shù)據(jù)。從表3 實(shí)驗(yàn)結(jié)果可以得到,在實(shí)驗(yàn)過程中,使用自適應(yīng)閾值更新算法比手動(dòng)設(shè)置固定閾值進(jìn)行模型訓(xùn)練,可減少訓(xùn)練過程中10%的通信開銷,并且提高了2.6%的模型精確度。如圖5 實(shí)驗(yàn)結(jié)果顯示,使用自適應(yīng)閾值更新算法可以快速篩除含有干擾數(shù)據(jù)的客戶端節(jié)點(diǎn)的本地模型,并且可以有效應(yīng)對(duì)訓(xùn)練過程中客戶端節(jié)點(diǎn)數(shù)據(jù)不斷變化的情況。
表3 卷積神經(jīng)網(wǎng)絡(luò)的篩選效率
圖5 閾值選擇方式對(duì)卷積神經(jīng)網(wǎng)絡(luò)模型的影響
基于Hyperledger Fabric 區(qū)塊鏈技術(shù)提出了一種自適應(yīng)權(quán)重趨勢(shì)感知的聯(lián)邦學(xué)習(xí)方案。根據(jù)上一輪全局模型與每個(gè)通過篩選客戶端本地模型的相關(guān)性與設(shè)定的閾值之間的變化關(guān)系,設(shè)計(jì)了一種簡單有效的自適應(yīng)閾值更新算法,使得在訓(xùn)練過程中能夠根據(jù)相關(guān)性自適應(yīng)調(diào)整用于篩選客戶端本地模型的閾值。相比于傳統(tǒng)聯(lián)邦學(xué)習(xí),該方案結(jié)合區(qū)塊鏈進(jìn)行實(shí)現(xiàn),利用自適應(yīng)閾值更新算法提高了干擾場(chǎng)景下的全局模型精確度,在訓(xùn)練過程中緩解了全局模型訓(xùn)練過程中的通信開銷、減少了訓(xùn)練資源的占用以及提高了模型訓(xùn)練過程的隱私安全保障。