本申請涉聯(lián)邦學(xué)習(xí)技術(shù)和區(qū)塊鏈,特別是涉及一種基于區(qū)塊鏈的聯(lián)邦學(xué)習(xí)方法和系統(tǒng)。
背景技術(shù):
1、聯(lián)邦學(xué)習(xí)(federated?learning)是一種機器學(xué)習(xí)的分布式學(xué)習(xí)方法,它允許在保護數(shù)據(jù)隱私的同時,對分布在不同地方的數(shù)據(jù)進行模型訓(xùn)練。在傳統(tǒng)的集中式機器學(xué)習(xí)中,通常是將所有數(shù)據(jù)發(fā)送到中央服務(wù)器進行模型訓(xùn)練,這可能涉及潛在的隱私風(fēng)險和數(shù)據(jù)安全問題。而聯(lián)邦學(xué)習(xí)通過在本地設(shè)備上進行模型訓(xùn)練,并只共享模型更新的信息,從而在不暴露原始數(shù)據(jù)的情況下實現(xiàn)模型的改進。在聯(lián)邦學(xué)習(xí)中,各個參與方(例如移動設(shè)備、傳感器等)在本地維護自己的模型,并使用本地數(shù)據(jù)進行模型的訓(xùn)練。然后,這些本地模型的更新信息被發(fā)送到中央服務(wù)器,由服務(wù)器匯總這些更新信息并整合成全局模型的更新。接著,全局模型的更新會被發(fā)送回各個參與方,從而實現(xiàn)模型的改進。
2、在聯(lián)邦學(xué)習(xí)中,參數(shù)聚合是指將來自不同設(shè)備或數(shù)據(jù)中心的本地模型參數(shù)進行整合以更新全局模型的過程。這一過程發(fā)生在中央服務(wù)器端,其中收集并整合來自各個參與方的模型參數(shù)更新,然后生成新的全局模型參數(shù)。
3、然而,傳統(tǒng)的聚合過程容易被共謀和作弊,從而導(dǎo)致聯(lián)邦學(xué)習(xí)的中間參數(shù)聚合過程缺乏可靠性,存在安全風(fēng)險。
技術(shù)實現(xiàn)思路
1、基于此,有必要針對上述技術(shù)問題,提供一種可靠、安全的基于區(qū)塊鏈的聯(lián)邦學(xué)習(xí)方法和系統(tǒng)。
2、第一方面,本申請?zhí)峁┝艘环N基于區(qū)塊鏈的聯(lián)邦學(xué)習(xí)方法,應(yīng)用于基于區(qū)塊鏈的聯(lián)邦學(xué)習(xí)系統(tǒng),所述聯(lián)邦學(xué)習(xí)系統(tǒng)包括多個聯(lián)邦學(xué)習(xí)聚合裝置,各所述聯(lián)邦學(xué)習(xí)聚合裝置包括區(qū)塊鏈節(jié)點,每個裝置中的區(qū)塊鏈節(jié)點構(gòu)建可信區(qū)塊鏈網(wǎng)絡(luò);所述方法包括:
3、各聯(lián)邦學(xué)習(xí)聚合裝置中的參與節(jié)點使用數(shù)據(jù)集進行完一輪本地訓(xùn)練后,形成模型訓(xùn)練的中間數(shù)據(jù);
4、各參與節(jié)點將所述中間數(shù)據(jù)進行加密,并分發(fā)給聚合節(jié)點;
5、各聯(lián)邦學(xué)習(xí)聚合裝置中的聚合節(jié)點根據(jù)聚合算法對所述中間數(shù)據(jù)進行聚合處理,得到聚合結(jié)果,并為所述聚合結(jié)果生成摘要;
6、各聚合節(jié)點將所述聚合結(jié)果的摘要發(fā)送至區(qū)塊鏈上共識節(jié)點,所述共識節(jié)點共識通過后將所述聚合結(jié)果的摘要在區(qū)塊鏈上存儲;所述共識節(jié)點為所述聚合節(jié)點的區(qū)塊鏈節(jié)點;
7、各參與節(jié)點從本地區(qū)塊鏈節(jié)點獲取最近任務(wù)的聚合結(jié)果的摘要;
8、各聚合節(jié)點將自己的聚合結(jié)果的摘要發(fā)送給需要執(zhí)行下一輪聯(lián)邦任務(wù)的參與節(jié)點;
9、各參與節(jié)點從區(qū)塊鏈上獲取上一輪局聚合結(jié)果的摘要,將其與聚合節(jié)點發(fā)回的上一輪聚合結(jié)果的摘要進行比對,確定上一輪聚合結(jié)果,得到該輪聯(lián)邦學(xué)習(xí)的全局模型。
10、第二方面,本申請還提供了一種基于區(qū)塊鏈的聯(lián)邦學(xué)習(xí)系統(tǒng),所述聯(lián)邦學(xué)習(xí)系統(tǒng)包括多個聯(lián)邦學(xué)習(xí)聚合裝置,各所述聯(lián)邦學(xué)習(xí)聚合裝置包括區(qū)塊鏈節(jié)點,每個裝置中的區(qū)塊鏈節(jié)點構(gòu)建可信區(qū)塊鏈網(wǎng)絡(luò);
11、各聯(lián)邦學(xué)習(xí)聚合裝置中的參與節(jié)點,用于使用數(shù)據(jù)集進行完一輪本地訓(xùn)練后,形成模型訓(xùn)練的中間數(shù)據(jù);
12、各參與節(jié)點,用于將所述中間數(shù)據(jù)進行加密,并分發(fā)給聚合節(jié)點;
13、各聯(lián)邦學(xué)習(xí)聚合裝置中的聚合節(jié)點,用于根據(jù)聚合算法對所述中間數(shù)據(jù)進行聚合處理,得到聚合結(jié)果,并為所述聚合結(jié)果生成摘要;
14、各聚合節(jié)點,用于將所述聚合結(jié)果的摘要發(fā)送至區(qū)塊鏈上共識節(jié)點,所述共識節(jié)點共識通過后將所述聚合結(jié)果的摘要在區(qū)塊鏈上存儲;所述共識節(jié)點為所述聚合節(jié)點的區(qū)塊鏈節(jié)點;
15、各參與節(jié)點,用于從本地區(qū)塊鏈節(jié)點獲取最近任務(wù)的聚合結(jié)果的摘要;
16、各聚合節(jié)點,用于將自己的聚合結(jié)果的摘要發(fā)送給需要執(zhí)行下一輪聯(lián)邦任務(wù)的參與節(jié)點;
17、各參與節(jié)點,用于從區(qū)塊鏈上獲取上一輪局聚合結(jié)果的摘要,將其與聚合節(jié)點發(fā)回的上一輪聚合結(jié)果的摘要進行比對,確定上一輪聚合結(jié)果,得到該輪聯(lián)邦學(xué)習(xí)的全局模型。
18、上述基于區(qū)塊鏈的聯(lián)邦學(xué)習(xí)方法方法和系統(tǒng),聚合任務(wù)不是由固定的一個或者多個節(jié)點執(zhí)行,而是充分利用區(qū)塊鏈技術(shù),由多個聚合節(jié)點共識完成,即使少數(shù)參與方被攻破而在聚合過程中作弊,采用本申請的方法,也能按照一定比例有效容錯,使得聯(lián)邦任務(wù)能穩(wěn)定、正確的進行,進而提高聯(lián)邦學(xué)習(xí)的可靠性和安全性。
1.一種基于區(qū)塊鏈的聯(lián)邦學(xué)習(xí)方法,其特征在于,應(yīng)用于基于區(qū)塊鏈的聯(lián)邦學(xué)習(xí)系統(tǒng),所述聯(lián)邦學(xué)習(xí)系統(tǒng)包括多個聯(lián)邦學(xué)習(xí)聚合裝置,各所述聯(lián)邦學(xué)習(xí)聚合裝置包括區(qū)塊鏈節(jié)點,每個裝置中的區(qū)塊鏈節(jié)點構(gòu)建可信區(qū)塊鏈網(wǎng)絡(luò);所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述共識節(jié)點共識通過后將所述聚合結(jié)果的摘要在區(qū)塊鏈上存儲,包括:
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,確定聚合節(jié)點的方式,包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述確定候選聚合節(jié)點,包括:
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述利用節(jié)點狀態(tài)機監(jiān)測各節(jié)點的節(jié)點狀態(tài)切換,包括:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述各參與節(jié)點將所述中間數(shù)據(jù)進行加密,并分發(fā)給聚合節(jié)點,包括:
7.一種基于區(qū)塊鏈的聯(lián)邦學(xué)習(xí)系統(tǒng),其特征在于,所述聯(lián)邦學(xué)習(xí)系統(tǒng)包括多個聯(lián)邦學(xué)習(xí)聚合裝置,各所述聯(lián)邦學(xué)習(xí)聚合裝置包括區(qū)塊鏈節(jié)點,每個裝置中的區(qū)塊鏈節(jié)點構(gòu)建可信區(qū)塊鏈網(wǎng)絡(luò);
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述共識節(jié)點,用于區(qū)域鏈上的共識合節(jié)點選取區(qū)塊鏈出塊節(jié)點;出塊節(jié)點將聚合結(jié)果的摘要打包出塊,出塊時用本節(jié)點的私鑰簽名,將出塊廣播給其他共識節(jié)點;共識節(jié)點收到出塊后,驗證簽名,如果簽名驗證成功,則向其他共識節(jié)點廣播驗證結(jié)果;各共識節(jié)點收到2f+1個驗證簽名成功的消息,則說明出塊有效,各共識節(jié)點驗證出塊節(jié)點與本共識節(jié)點的聚合結(jié)果是否相同,如果相同則廣播聚合結(jié)果的摘要;其中,f是參與聯(lián)邦學(xué)習(xí)中間數(shù)據(jù)聚合節(jié)點中的作弊節(jié)點和故障節(jié)點;各共識節(jié)點當(dāng)收到2f+1個與本節(jié)點相同的摘要后,即確認(rèn)聚合結(jié)果與本節(jié)點的聚合執(zhí)行結(jié)果一致,表示可出塊,向出塊節(jié)點發(fā)送出塊成功信息,并摘要落盤存儲;出塊節(jié)點收到2f+1個確認(rèn)出塊信息后,將摘要落盤存儲。
9.根據(jù)權(quán)利要求7或8所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括聚合節(jié)點分析模塊,用于確定候選聚合節(jié)點,連續(xù)對區(qū)塊鏈當(dāng)前塊高進行哈希運算,得到安全聚合共識的各節(jié)點的第一哈希值;將各第一哈希值固定到環(huán)上,稱為節(jié)點;將根據(jù)候選共識節(jié)點的唯一標(biāo)識計算哈希運算,生成第二哈希值,并將所述第二哈希值分配到環(huán)上,稱為樁;將節(jié)點照預(yù)設(shè)方向旋轉(zhuǎn)尋找最近的樁,被命中的樁即為下一輪參與聚合共識的聚合節(jié)點。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述聚合節(jié)點分析模塊,還用于利用節(jié)點狀態(tài)機監(jiān)測各節(jié)點的節(jié)點狀態(tài)切換;根據(jù)節(jié)點狀態(tài)機將節(jié)點狀態(tài)為本任務(wù)安全聚合節(jié)點、強網(wǎng)絡(luò)協(xié)同聚合節(jié)點和算力協(xié)同聚合節(jié)點的節(jié)點確定為候選聚合節(jié)點。