999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于區塊鏈的工業物聯網聯邦學習系統架構①

2021-10-11 06:46:22于秋雨盧清華張衛山
計算機系統應用 2021年9期
關鍵詞:模型

于秋雨,盧清華,張衛山

(中國石油大學(華東) 計算機科學與技術學院,青島 266580)

1 背景簡介

近幾年來,物聯網(IoT)廣泛應用于工業,特別是制造業,實現了智能工業物聯網(IIoT)應用.據估計,到2025年,全球將有41.6 億部物聯網設備,預計將產生79.4 ZB的數據[1].如何管理和利用這些物聯網數據,以高效、安全、經濟的方式實現智能化,成為一個重要的研究問題.

聯邦學習是一種新興的機器學習[2,3],他可以保護數據隱私,減少模型訓練中的偏移.每一輪聯邦學習中,被選中的客戶(如組織、數據中心,物聯網或移動設備)在保證原始數據不上傳的情況下,在本地訓練模型,并共同訓練了全局模型.

區塊鏈技術最近一直被應用于工業物聯網的聯邦學習中,用來保障數據完整性,構造激勵機制來吸引豐富的客戶數據和計算資源加入訓練[4,5].然而,在工業物聯網領域卻缺少一個系統的整體的架構設計來支撐設備故障檢測系統有條不紊地開發,并高效地解決數據異質等問題.

因此,在本文中,我們提出了一種基于區塊鏈的聯邦學習系統架構.在聯邦學習的每一輪訓練中,中心服務器會選擇一些客戶端在本地訓練模型,并將模型更新后的參數(而不是原始數據)上傳到中心服務器.然后,中心服務器將更新后的模型參數聚合以生成一個全面的、無偏的全局模型.為了確保數據的完整性并解決區塊鏈的性能問題,在固定周期中,對客戶端數據進行哈希計算創建默克爾樹,并將樹的根節點存儲在區塊鏈上.我們還提出了激勵機制,根據參與本地訓練的數據集大小,通過智能合約為客戶發放相應的獎勵,以此鼓勵客戶積極參與聯邦學習.最后,我們實現了文中所提出的架構,并且評估了系統架構的可行性、模型的精度和性能.實驗結果表明該架構可行,并具有良好的精度和性能.

本文的貢獻如下:

(1)提出一個系統架構,展示了不同部件間的交互,為開發基于區塊鏈的工業物聯網聯邦學習系統提供指導.架構包括以下設計決策:模型訓練、客戶數據存儲、客戶激勵機制以及區塊鏈部署.

(2)提出區塊鏈錨定協議,確保可驗證數據的完整性.協議規定,每隔一段時間,使用客戶端邊緣設備收集到的數據創建默克爾樹 (一個葉子節點代表一條客戶數據),并將根節點上傳到區塊鏈.

(3)提出激勵機制,通過激勵智能合約,來鼓勵客戶貢獻數據和計算資源參與模型訓練,用戶會根據自己在本地訓練模型的數據大小,收到相應的代幣獎勵.

(4)在真實的工業場景(軸承故障檢測)中,對系統架構可行性,模型精度和性能進行了評估.

本文構造如下:第2 節提出方法,第3 節討論系統框架的實現和評估,第4 節總結文章并部署未來工作.

2 基于區塊鏈的聯邦學習系統架構

通過標準的需求捕獲方法,我們對基于區塊鏈的工業物聯網聯邦學習系統,制定了一系列的功能需求和非功能需求.其中功能需求包括:(1)在本地服務器進行模型訓練;(2)在不上傳本地數據的情況下,基于本地模型參數生成全局模型;(3)融合得到的全局模型可用于分類;(4)根據客戶在模型訓練過程中的貢獻進行獎勵.已確定的非功能需求包括:(1)保護邊緣數據隱私;(2)具有良好的模型精度;(3)確保客戶端數據的完整性;(4)維護區塊鏈基礎設施的可用性.

在本節中,我們提出了一個基于聯邦學習和區塊鏈的系統架構,以滿足上述功能與非功能性需求.2.1 節描述了系統整體架構,并細化了組件及其交互;2.2 節討論了主要的架構設計決策;2.3 節介紹了聯邦加權平均算法啊;2.4 節介紹了客戶數據錨定協議以確保數據完整性.2.5 節設計了一種激勵機制,鼓勵客戶積極參與模型訓練.

2.1 系統整體架構

圖1展示了由兩種不同的參與組織(中心組織和客戶組織)構成的系統整體架構.聯邦學習系統的所有者(如制造商公司)作為中心組織,它負責根據系統的檢測結果來維護所有工業服務;而客戶組織則負責為本地模型訓練提供數據和計算資源.

圖1 聯邦學習系統架構

每個客戶組織擁有多個傳感器、一個客戶端設備、一個客戶端服務器和一個區塊鏈全節點.而中心組織托管一個中心服務器和一個區塊鏈全節點.每個客戶端設備(如樹莓派)通過客戶端數據收集器收集被傳感器檢測到的環境數據,然后通過客戶端數據預處理器清洗數據(如降噪).所有收集到的客戶端環境數據都被存儲在客戶端服務器托管的客戶端數據庫中.在某一聯邦學習中,當一個客戶組被中心服務器選中,客戶端服務器將從中心服務器下載最新版本的全局模型,通過模型訓練器,在本地數據集上進一步訓練模型,更新模型參數.然后,更新后的模型參數被傳送到中心服務器上的融合器,融合器將從客戶端接收到的模型參數進行融合,最終得到一個新的全局模型,再將其返回客戶端服務器和檢測器.在對設備進行故障檢測時,檢測結果被加密后發送到中心組織,操作人員通過數據解密器對接收到的檢測結果進行解密,并做出相應的處理決定.

每個客戶端服務器會定期創建默克爾樹,其中一個葉子節點表示一條數據記錄.每一輪聯邦學習中,參與訓練的客戶信息(包括默克爾樹根節點、訓練狀態、用于模型訓練的客戶端數據的大小)都通過客戶端數據錨定器存儲在預先部署在區塊鏈上的智能合約中.若不同組織之間發生了爭議(例如設備故障原因),中心組織和客戶組織的操作員可以使用爭議解決器,通過將數據與存儲在鏈上的默克爾樹根節點進行比較,來驗證客戶歷史數據在某一周期內的完整性.為獎勵客戶組織對模型訓練的貢獻,根據參與本地訓練的客戶端數據大小,獎勵客戶組織相應數量的代幣.

2.2 架構設計決策

(1)本地模型訓練:為了保護客戶組織的商業敏感數據(例如,機器使用頻率和時間),架構采用聯邦學習,客戶端服務器通過模型訓練器,在本地訓練模型,中心服務器則負責通過融合器計算得到一個用于檢測的全局模型.

(2)錨定數據上鏈:為了解決中心組織和客戶組織之間的爭端(例如,故障原因),在架構中,客戶端服務器通過數據錨定器將數據上鏈,來實現客戶端數據的可驗證完整性.由于區塊鏈的存儲能力有限,客戶端服務器定期創建默克爾樹(樹中每個葉子節點代表傳感器收集的一條數據記錄),并通過數據錨定器,將其根節點存儲在預先部署在鏈上的智能合約(根節點注冊表)中.

(3)基于智能合約的激勵機制:為了鼓勵客戶組織積極參與模型訓練,該架構設計了基于智能合約的激勵機制.根據客戶組織用于本地訓練的數據集大小,獎勵客戶組織相應的代幣.所獎勵的代幣記錄在智能合約(獎勵注冊表)中.

(4)區塊鏈部署:在區塊鏈網絡中,全節點存儲著所有的區塊鏈事務.在我們提出的架構中,每個參與組織(包括中心組織和客戶組織) 托管一個區塊鏈全節點.因此,每個組織都區塊鏈數據的完整副本,可以用于審計,同時確保整個系統的可用性.

2.3 聯邦加權平均算法

在算法1 中,對于每一輪聯邦學習,中心服務器會根據一些預定義的條件(如空閑和收費)選擇特定數量的客戶端參與訓練.對于每個客戶端服務器,設置本地最小批大小為B、學習率η、進行E期訓練.然后,所選客戶端服務器在數據量為B的子集上執行E期局部隨機梯度下降(SGD),然后將更新后的wt上傳中心服務器.最后,在中心服務器上,根據訓練數據集的大小對wt進行加權平均.

算法1.聯邦加權平均算法1./*中心服務器*/w0 2.Initialize 3.for each round t =1,2,… do 4.Select K clients∈5.for each client kK clients do wkt 6.← UpdateClient()7.end for wt ←∑Kk=1nk×wt-1 8.9.end for 10./*客戶端服務器*/11.UpdateClient(){12.Initialize local minibatch size B,local epochs E,learning rate η∈13.for each epoch iE do S i∑Kk=1nk 14.randomly sample based on size B wi←wi-1-η?g(wi-1;S i)15.16.end for wi 17.return }

2.4 錨定協議

錨定協議規定客戶端定時用收集到的監控數據構建默克爾樹,并將默克爾樹根節點錨定到區塊鏈上,以維護客戶端數據的完整性,并支持審計(即解決中心組織和客戶組織之間的爭議).同時,錨定協議實現了激勵機制,并將客戶組織的貢獻情況記錄在智能合約(獎勵注冊表)中.

算法2 描述了錨定協議的工作原理.客戶數據錨定協議規定,在每個錨定周期pi(1 h),每個客戶組織cj查詢錨定周期內收集的客戶數據,將每條數據記錄轉換為字符串格式并進行哈希運算,然后將哈希值用于構建默克爾樹(其中每個葉子節點表示一條數據記錄的哈希值).

算法2.錨定算法pi 1.for each period=1,2,…,do cj∈2.for C do dcpn 3.for do dcpndcpn 4.← String()dcpndcpn 5.← Hash()dcpn 6.pNodeList[0..N] ←7.end for 8.repeat 9.for (k=0;k < length(pNodeList);k+2) do 10.l ← pNodeList[k]11.if k=length(pNodeList)then 12.r ← l 13.else 14.r ← pNodeList[k + 1]15.end if 16.r ← SHA256(l + r)17.temp[j] ← r∈[d ]18.(each j [0,])19.end for 20.pNodeList[0..j] ← temp[0..j]21.until length(pNodeList)=1 22.root ← pNodeList[0]23.time ← current time 24.UpdRootSC(time,root)25.end for 26.end for 27.for each training round do 28.model training 29.UpdStaSC(rNo,dataSize)30.CalIncentiveSC()31.end for 2

在構造默克爾樹的過程中,該協議初始創建pNodeList存儲父節點,創建temp存儲兩個子節點拼接后哈希計算的結果.首先,將所有葉節點值存儲在pNodeList中,然后順序將左子節點賦值l,右子節點賦值r,將兩個子節點值連接后進行哈希計算得到父節點值,并將其插入temp.重復此步驟,直到遍歷完pNodeList中的所有元素后,將temp賦值pNodeList.循環執行這一過程,直到pNodeList的長度變為1,最終,pNodeList中的唯一值就是默克爾樹的根節點.

UpdRootSC()將默克爾樹的根節點和時間戳上傳到智能合約(根節點注冊表)中.當客戶端服務器完成訓練,并將更新后的模型參數發送到中心服務器后,UpdStaSC()將聯邦學習此輪訓練的序列號rNo、每個客戶端參與本地訓練的數據集大小上傳到智能合約(獎勵注冊表) 中.然后計算相應的代幣獎勵,并通過CalIncentiveSC() 獎勵給客戶組織.UpdStaSC()和CalIncentiveSC()都編碼在智能合約(獎勵注冊表)中.

2.5 激勵機制

算法3 描述了激勵機制工作流程.該激勵機制旨在根據客戶組織的貢獻(用于模型訓練的數據集大小),獎勵客戶組織相應的代幣.在聯邦學習的每一輪訓練中,中心服務器選擇固定數量的客戶端服務器,并將它們的區塊鏈地址存儲在Clist中.此外,中心服務器還定義了一個結構training,來存儲客戶端服務器完成的訓練任務,包括訓練任務狀態,訓練集大小.所選的客戶端服務器在本地訓練模型,并將相應的信息上傳到training中,然后將這些信息另存為contri.最后,根據contri中的數據,將代幣分發到Clist中的每個客戶端服務器地址.獎勵代幣的數量是訓練集大小與常數C的乘積的總和.這種激勵機制的最終目標是鼓勵更多的客戶服務器參與聯邦學習,以消除模型偏差.

算法3.激勵計算和分配算法1./*中心服務器執行*/2.Clist ← selected clients address 3./*客戶端服務器執行*/4.struct {finished,dataSize } training 5.for each training round do∈6.if addressClist then 7.model training 8.UpdStaSC(rNo,dataSize)9.CalIncentiveSC()10.end if 11.end for 12./*上傳訓練任務狀態 */13.UpdStaSC(rNo,dataSize){14.training.finished ← true 15.training.dataSize ← dataSize 16.contri[addr][rNo] ← training 17.}18./*計算獎勵*/19.CalIncentiveSC(){∈20.if addressClist then 21.if contri[addr][rNo].finished==true then 22.token[addr]=token[addr]+ contri[addr][rNo].dataSize*C 23.end if 24.end if 25.}

3 實驗分析

實驗將系統架構應用于一個真實的用例,并從可行性、準確性和性能方面來評估架構.

3.1 用例

工廠軸承是否故障和確定故障準確位置直接影響到工廠的生產效率.實驗將軸承的使用狀況作為用例,將確定軸承的故障位置作為實驗目標.

對于工廠來說,各種設備參數都具有一定的商業敏感性.因此,在實驗中,大部分機器學習任務被分配給安裝在工廠的服務器,以保護工廠的數據隱私.此外,該實驗旨在鼓勵工廠提供軸承故障數據,并在本地訓練模型,然后根據每個廠的貢獻來獎勵他們代幣,這些代幣日后可以用來購買新產品或服務.

軸承作為工廠大型生產制造機器中的關鍵部件,僅僅知道軸承出現故障已不能滿足高效生產的要求.本研究開發了一個軸承故障檢測系統架構.

3.2 實現方法

圖2顯示了客戶數據錨定和激勵機制的智能合約,根節點注冊表用來存儲默克爾樹根節點和對應的時間戳;獎勵注冊表用來存儲某一聯邦學習輪數,和這一輪聯邦學習中,每個客戶機的訓練狀態,客戶數據大小以及獲得的代幣數目.

圖2 鏈上數據結構

實驗基于聯邦學習框架Leaf[6]實現,并進行了相應改進,使用以太坊作為底層區塊鏈網絡,采用工作量共識算法(PoW),難度配置為0x4000,使用Solidity 語言編寫智能合約,并使用Solid Compiler 0.4.20 版本進行編譯.客戶端數據錨定器組使用Java 1.8 開發,激勵機制使用Python3.6 實現,選擇MySQL 5.7.25 作為客戶端數據庫來存儲鏈下數據.

實驗將系統架構部署在6 臺阿里巴巴云服務器(2 VCPU,8 GB RAM)上,其中1 臺云服務器作為中心服務器,5 臺云服務器作為客戶端服務器.用5 塊樹莓派3(系統配置Raspian 2018-11-3)模擬5 臺客戶端設備.假定每個客戶端服務器被分配到一個工廠,工廠中有軸承部件(客戶端設備).每個軸承傳感器采集8 個信號.

實驗中,我們選取轉速系統負載設置為20 Hz-0 V的軸承的工作狀態作為數據集[7],每條數據記錄由上述的8 個特征和1 個標簽組成,標簽表示故障發生位置(分別為無故障,內環和外環有裂痕,滾珠有裂痕).一個客戶端服務器有一個分類器,它是一個4 層神經網絡.第1 層由8 個單元組成,對應8 個特征,然后,有兩個隱藏層,分別包含150 個單元,使用ReLU 函數作為激活函數,輸出層為Softmax 函數,用于對非故障和故障位置進行分類.學習率設置為0.005.

3.3 可行性

圖3展示了系統架構中,聯邦學習和區塊鏈錨定的工作流程,實現了第2 節中提出的功能性和非功能性需求.功能性需求方面實現了:(1)架構中,每個工廠的客戶端服務器能夠在本地訓練模型,中心服務器將本地模型融合為全局模型,然后進行故障檢測.(2)工廠操作者通過對比存儲在區塊鏈上的默克爾樹根節點,以驗證某一時期內客戶數據的完整性.(3)此外,通過智能合約(獎勵注冊表),工廠獲得代幣獎勵.

圖3 聯邦學習流程和數據錨定流程

非功能性需求方面實現了:(1)應用聯邦學習保護工廠數據的隱私,中心服務器只需要獲得每次更新后的模型參數,不需要獲得所有的軸承使用信息.(2)在訓練數據規模較大的情況下,在帶寬開銷上,聯邦學習比傳統的模型訓練更有優勢.(3)全局模型實現了良好的檢測精度.(4)通過錨定協議維護軸承數據的完整性.當需要對數據進行審計時,可以將存儲在每個工廠本地的數據重新構建為默克爾樹結構,并與存儲在區塊鏈上的根節點進行比較來驗證.每個工廠和軸承制造商都有一個完整的節點,以保證區塊鏈基礎設施在某些節點可能宕機的情況下正常運行.

3.4 定量分析-精度和性能

在定量分析中,每個客戶端服務器存儲約1000 條訓練數據和1000 條測試數據.每個客戶端服務器在本地數據集上訓練模型,中心服務器通過融合本地模型參數,生成全局模型.我們在每個單獨的客戶機服務器上用本地測試集測試故障檢測全局模型的準確性.此外,我們還比較了聯邦學習的全局模型與集中式學習的模型的準確性.

3.4.1 區塊鏈錨定時間測量實驗

錨定協議的執行時間包括從數據庫查詢數據,創建默克爾樹,將默克爾樹的根節點和客戶端貢獻數據上傳區塊鏈.圖4展示了上傳默克爾樹根節點和客戶貢獻數據到區塊鏈的時間,執行錨定協議消耗了大部分時間.我們測量了交易寫入時間,該時間用于將智能合約交易寫入塊中.錨定默克爾樹根節點的時間約為18 s,而錨定客戶端貢獻數據的平均編寫時間約為21 s.區塊鏈上的寫入延遲比傳統數據庫中要長得多,因為傳播交易/塊和各節點達成一致需要時間.由于區塊鏈用于審計和實現激勵機制,因此在本工作中不考慮區塊鏈的寫入延遲.我們還檢查了默克爾樹的創建時間,大約需要250 ms.由于默克爾樹的創建時間比交易寫入塊的時間少得多,因此在圖4中沒有包含它.

圖4 數據錨定時間

3.4.2 故障檢測實驗

在100 輪訓練中,我們分別測量了聯邦學習和集中式學習的模型精度.對于每一輪聯邦學習,模型在每個客戶機上進行40 期的本地訓練,然后將更新后的模型參數發送到中心服務器用以生成一個全局模型.每個客戶端使用全局模型進行故障檢測.對于每一輪集中式學習,一個中央服務器將模型訓練40 期,每個客戶端使用這個模型來檢測故障.與在本地數據集上訓練的聯邦學習模型相比,集中式訓練模型是由所有客戶端的本地數據集組成的數據集上訓練得到的.實驗中,我們使用相同的測試集測試了集中式學習模型和聯邦學習模型.

測試結果如圖5所示.x軸表示訓練的次數,y軸表示精度.在圖5中,每個子圖包含2 條線,顯示了在不同測試集上,不同學習方法的模型精度.總體而言,從圖5可以看出,聯邦學習模型可以取得和集中式學習模型相同的的精度.

圖5 聯邦學習模型與集中式學習模型精度

3.4.3 通信開銷測量實驗

我們測量了聯邦學習(FL)和集中式學習(CL)的通信開銷.采用數據集大小分別為1 KB,1 MB,1 GB.實驗結果顯示:(1)在集中式學習中,所有的數據都需要從客戶端服務器發送到中心服務器,因此,集中式學習的通信開銷與數據集大小一樣,通信開銷在3 個數據集下,分別為1 KB,1 MB,1 GB.(2)在聯邦學習測量實驗中,我們用FL(N)表示每輪隨機選擇N個客戶端來訓練模型,測量了100 輪聯邦訓練的通信開銷,每輪訓練中測量了模型參數上傳中心服務器和全局模型發送回客戶端的通信開銷.對于不同數量客戶端,只有模型參數被發送到中央服務器,通信開銷與數據集大小無關,具體結果顯示使用聯邦學習,客戶端取值N為1 至5 時,通信開銷分別為15 KB,30 KB,45 KB,60 KB及75 KB.

可以得到結論,集中式學習的通信開銷要比聯邦學習大得多,當數據集非常大時,采用聯邦學習可以顯著降低通信開銷.

4 結論與展望

本文提出了一種基于區塊鏈的聯邦學習系統架構.在架構中,一個中心服務器協調多個客戶端服務器訓練一個用于分類的全局模型,并將原始數據存儲在本地.該架構采用區塊鏈來實現數據的可驗證完整性和激勵機制.

實驗中,我們在一個真實的用例中實現了所提出的系統架構,并評估了該方法的可行性、模型精度和性能.實驗結果表明該架構實現了文中提出的全部目標.

在本文中,大部分聯邦學習任務是在客戶端服務器上完成的.在接下的研究工作中,我們計劃將所有訓練任務從客戶端服務器移到具有更強大計算和存儲能力的客戶端設備上.此外,我們計劃進一步探討如何提高客戶端設備在模型融合過程中的可信度.再者,我們計劃在未來的研究中將激勵機制與更多的因素關聯.

猜你喜歡
模型
一半模型
一種去中心化的域名服務本地化模型
適用于BDS-3 PPP的隨機模型
提煉模型 突破難點
函數模型及應用
p150Glued在帕金森病模型中的表達及分布
函數模型及應用
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
主站蜘蛛池模板: 精品一区二区三区视频免费观看| 青青久久91| 少妇精品在线| 好紧太爽了视频免费无码| 3D动漫精品啪啪一区二区下载| 女人18毛片一级毛片在线| 996免费视频国产在线播放| 久久精品免费国产大片| 欧美成人免费一区在线播放| 无码免费试看| 欧美特级AAAAAA视频免费观看| 欧美日韩福利| 少妇人妻无码首页| 国产精品人莉莉成在线播放| 日韩第一页在线| 99久久精品免费视频| av天堂最新版在线| 亚洲午夜福利精品无码| 99精品福利视频| 亚洲视频二| 亚洲国产第一区二区香蕉| 日韩成人在线视频| 久久久久久尹人网香蕉 | 色男人的天堂久久综合| 久久夜色精品国产嚕嚕亚洲av| www.狠狠| 在线人成精品免费视频| 国产va在线| 中文字幕欧美日韩高清| 天堂中文在线资源| 国产激情无码一区二区三区免费| 99人体免费视频| 国产精品男人的天堂| 欧美国产精品不卡在线观看| 成人综合久久综合| 成人午夜免费观看| 国产乱人伦AV在线A| 亚洲男人天堂2018| 亚洲制服丝袜第一页| 中文字幕永久在线看| 日本久久网站| 亚洲av中文无码乱人伦在线r| 国产第八页| 免费国产在线精品一区| 国产美女91视频| a级毛片毛片免费观看久潮| 又爽又大又光又色的午夜视频| 91免费精品国偷自产在线在线| 国产精品亚洲专区一区| 91色在线观看| 欧美有码在线观看| 一区二区三区高清视频国产女人| 精品视频一区在线观看| 国产毛片高清一级国语 | 色男人的天堂久久综合| 欧美天堂在线| 国产91无码福利在线| 国产一区二区人大臿蕉香蕉| 99无码熟妇丰满人妻啪啪| 秋霞一区二区三区| 嫩草国产在线| 中文字幕精品一区二区三区视频| 91成人在线观看视频| 伊人成人在线视频| 992tv国产人成在线观看| 波多野结衣中文字幕一区| 全色黄大色大片免费久久老太| 美女无遮挡拍拍拍免费视频| 亚洲性视频网站| 呦系列视频一区二区三区| 亚洲一区色| 亚洲欧州色色免费AV| 久久综合成人| 丁香婷婷久久| 国产美女丝袜高潮| 亚洲成人高清在线观看| 黑人巨大精品欧美一区二区区| 亚洲日本www| 日韩无码视频专区| 精品久久久久无码| 国产国产人成免费视频77777| 日韩无码黄色|