本公開涉及計算機,尤其涉及一種機器學習方法、一種機器學習裝置、一種電子設備、一種計算機可讀存儲介質和一種計算機程序產品。
背景技術:
1、在聯邦學習網絡中,服務器作為聯邦學習網絡的核心樞紐,服務器負責發起學習任務、協調各方資源并制定統一的訓練策略,遠程客戶端接收到服務器的指令后,基于本地存儲的數據進行模型訓練,因此服務器與遠程客戶端之間需要頻繁通信來交換模型參數或梯度,一方面,容易導致對通信網絡的帶寬負擔,另一方面,雖然能夠通過交換模型參數或梯度保護用戶敏感數據,但是由于仍存在模型反演攻擊、成員推理攻擊和模型推理攻擊等,導致對用戶敏感數據的保護力度不夠。
2、需要說明的是,在上述背景技術部分公開的信息僅用于加強對本公開的背景的理解,因此可以包括不構成對本領域普通技術人員已知的現有技術的信息。
技術實現思路
1、本公開的目的在于提供一種機器學習方法、一種機器學習裝置、一種電子設備、一種計算機可讀存儲介質和一種計算機程序產品,至少在一定程度上克服相關技術中通信網絡的帶寬負擔較大和對用戶敏感數據的保護力度不夠的問題。
2、本公開的其他特性和優點將通過下面的詳細描述變得顯然,或部分地通過本公開的實踐而習得。
3、根據本公開的一個方面,提供一種機器學習方法,包括:響應于中心服務器經由邊緣服務器下發的初始模型參數,將所述初始模型參數加載至多層殘差網絡模型;將訓練數據轉化為整數域數據,并對所述整數域數據進行同態加密操作,得到加密訓練數據;對所述多層殘差網絡模型執行適于同態加密處理的適應性優化,得到訓練模型,以基于所述加密訓練數據對所述訓練模型進行梯度下降的模型訓練,并基于所述模型訓練的迭代次數迭代更新所述初始模型參數,得到模型更新參數,所述模型訓練的迭代次數基于本地迭代次數執行;將所述模型更新參數反饋至所述邊緣服務器,以使所述邊緣服務器對接收到的多個所述客戶端發送的所述模型更新參數進行加權聚合,直至生成模型更新結果,并反饋至所述中心服務器,所述中心服務器對接收到的多個所述邊緣服務器反饋的所述模型更新結果進行加權聚合,得到訓練后的全局模型參數。
4、在本公開的一個實施例中,將訓練數據轉化為整數域數據,并對所述整數域數據進行同態加密操作,得到加密訓練數據,包括:所述訓練數據包括訓練圖像數據,將所述訓練圖像數據進行數據劃分得到多個批次的待訓練數據;對所述待訓練數據進行向量化處理,得到待訓練向量;將所述待訓練向量轉化為整數域數據;對所述整數域數據進行同態加密操作,得到所述加密訓練數據。
5、在本公開的一個實施例中,對所述整數域數據進行同態加密操作,得到所述加密訓練數據,包括:基于rns-ckks加密方式對所述整數域數據進行同態加密操作,得到所述加密訓練數據。
6、在本公開的一個實施例中,對所述多層殘差網絡模型執行適于同態加密處理的適應性優化,得到訓練模型,包括:應用切比雪夫多項式逼近修正線性單元relu函數,以將所述relu函數的非線性運算轉化為多項式的線性運算relu,以基于所述線性運算relu構建所述多層殘差網絡模型中relu激活層;基于采用對數和指數函數的同態近似構建所述多層殘差網絡模型中的softmax層,作為全連接層,以生成包括所述relu激活層和所述全連接層的中間模型;基于動態量化所述中間模型進行壓縮處理,得到所述訓練模型。
7、在本公開的一個實施例中,基于動態量化所述中間模型進行壓縮處理,得到所述訓練模型,包括:基于動態量化所述中間模型中的所述relu激活層和所述全連接層進行壓縮處理,得到所述訓練模型。
8、在本公開的一個實施例中,基于所述加密訓練數據對所述訓練模型進行梯度下降的模型訓練,包括:將所述訓練模型中的所述初始模型參數進行量化處理,得到量化模型參數;將所述加密訓練數據依次輸入至所述訓練模型的每個層,進行前向傳播的模型訓練,以輸出對應的預測結果,其中,所述量化模型參數用于將所述加密訓練數據輸入所述訓練模型的卷積層時,提供對所述加密訓練數進行特征提取操作的初始權重;基于所述預測結果和損失函數計算加密的損失值;基于所述加密的損失值,在同態加密的框架下進行反向傳播,以計算所述損失函數對所述訓練模型的每個層中參數梯度;以所述梯度下降為目標基于所述參數梯度進行所述量化模型參數的更新,并進行迭代得到所述模型更新參數。
9、在本公開的一個實施例中,將所述加密訓練數據依次輸入至所述訓練模型的每個層,還包括:對于所述訓練模型的每層深度計算對應得到的輸出加密數據,對所述輸出加密數據執行自舉操作,直至完成所述梯度下降的模型訓練。
10、在本公開的一個實施例中,對所述輸出加密數據執行自舉操作,包括:將輸出加密數據編碼為標準化的多項式形式;基于分塊方法將多項式形式的所述輸出加密數據分段進行模數切換,得到切換加密數據,以將所述切換加密數據對應輸入至下一層。
11、在本公開的一個實施例中,將所述模型更新參數反饋至所述邊緣服務器,以使所述邊緣服務器對接收到的多個所述客戶端發送的所述模型更新參數進行加權聚合,直至生成模型更新結果,包括:將所述模型更新參數反饋至所述邊緣服務器,以使所述邊緣服務器對接收到的多個所述客戶端發送的所述模型更新參數進行加權聚合生成中間更新結果,并將所述中間更新結果反饋至所述客戶端,作為與所述邊緣服務器的一次迭代交互;與所述邊緣服務器的所述迭代交互達到預設次數,停止所述模型訓練,其中,所述邊緣服務器對最后一次迭代交互后得到的所有所述中間更新結果進行加權聚合生成所述模型更新結果,并反饋至所述中心服務器,所述中心服務器對接收到的多個所述邊緣服務器反饋的所述模型更新結果進行加權聚合,得到訓練后的全局模型參數。
12、在本公開的一個實施例中,還包括:接收所述中心服務器經由所述邊緣服務器下發的目標模型參數,以基于所述目標模型參數更新所述訓練模型,所述目標模型參數由所述中心服務器對得到的多個所述全局模型參數進行加權聚合得到。
13、根據本公開的另一個方面,提供一種機器學習方法,包括:接收中心服務器生成的初始模型參數,并將所述初始模型參數下發至多個客戶端;接收所述多個所述客戶端基于同態加密的模型訓練生成的模型更新參數;對所述模型更新參數進行加權聚合,直至生成模型更新結果;將所述模型更新結果反饋至所述中心服務器,所述中心服務器對接收到的多個所述邊緣服務器反饋的所述模型更新結果進行加權聚合,得到訓練后的全局模型參數。
14、在本公開的一個實施例中,對所述模型更新參數進行加權聚合,直至生成模型更新結果,包括:對所述模型更新參數進行加權聚合生成中間更新結果,并將所述中間更新結果反饋至所述客戶端,作為與所述邊緣服務器的一次迭代交互;與所述客戶端的所述迭代交互達到預設次數,對對應得到的所有所述中間更新結果進行加權聚合生成模型更新結果,并反饋至所述中心服務器,所述中心服務器對接收到的多個所述邊緣服務器反饋的所述模型更新結果進行加權聚合,得到訓練后的全局模型參數。
15、在本公開的一個實施例中,將所述初始模型參數下發至多個客戶端,包括:在每輪所述迭代交互中,基于預設比例向部分所述客戶端下發所述初始模型參數進行模型訓練。
16、在本公開的一個實施例中,還包括:接收所述中心服務器發送的目標模型參數,所述目標模型參數由所述中心服務器對得到的多個所述全局模型參數進行加權聚合得到;將所述目標模型參數下發至所述客戶端。
17、根據本公開的再一個方面,提供一種機器學習方法,包括:生成的初始模型參數,并將所述初始模型參數下發至多個邊緣服務器;接收所述多個邊緣服務器生成的模型更新結果,所述模型更新結果由所述邊緣服務器對客戶端發送的模型更新參數進行加權聚合生成,所述模型更新參數由客戶端基于同態加密的模型訓練生成;對所述模型更新結果進行加權聚合,得到訓練后的全局模型參數。
18、在本公開的一個實施例中,還包括:與所述邊緣服務器進行多輪通信交互;基于多輪通訊交互得到的多個所述全局模型參數進行加權聚合,得到目標模型參數。
19、根據本公開的又一個方面,提供一種機器學習裝置,包括:加載模塊,用于響應于中心服務器經由邊緣服務器下發的初始模型參數,將所述初始模型參數加載至多層殘差網絡模型;加密模塊,用于將訓練數據轉化為整數域數據,并對所述整數域數據進行同態加密操作,得到加密訓練數據;訓練模塊,用于對所述多層殘差網絡模型執行適于同態加密處理的適應性優化,得到訓練模型,以基于所述加密訓練數據對所述訓練模型進行梯度下降的模型訓練,并基于所述模型訓練的迭代次數迭代更新所述初始模型參數,得到模型更新參數,所述模型訓練的迭代次數基于本地迭代次數執行;第一反饋模塊,用于將所述模型更新參數反饋至所述邊緣服務器,以使所述邊緣服務器對接收到的多個所述客戶端發送的所述模型更新參數進行加權聚合,直至生成模型更新結果,并反饋至所述中心服務器,所述中心服務器對接收到的多個所述邊緣服務器反饋的所述模型更新結果進行加權聚合,得到訓練后的全局模型參數。
20、根據本公開的又一個方面,提供一種機器學習裝置,包括:第一接收模塊,用于接收中心服務器生成的初始模型參數,并將所述初始模型參數下發至多個客戶端;第二接收模塊,用于接收所述多個所述客戶端基于同態加密的模型訓練生成的模型更新參數;第一加權模塊,用于對所述模型更新參數進行加權聚合,直至生成模型更新結果;第二反饋模塊,用于將所述模型更新結果反饋至所述中心服務器,所述中心服務器對接收到的多個所述邊緣服務器反饋的所述模型更新結果進行加權聚合,得到訓練后的全局模型參數。
21、根據本公開的又一個方面,提供一種機器學習裝置,包括:生成模塊,用于生成的初始模型參數,并將所述初始模型參數下發至多個邊緣服務器;第三接收模塊,用于接收所述多個邊緣服務器生成的模型更新結果,所述模型更新結果由所述邊緣服務器對客戶端發送的模型更新參數進行加權聚合生成,所述模型更新參數由客戶端基于同態加密的模型訓練生成;第二加權模塊,用于對所述模型更新結果進行加權聚合,得到訓練后的全局模型參數。
22、根據本公開的又一個方面,提供一種電子設備,包括:處理器;以及存儲器,用于存儲處理器的可執行指令;所述處理器配置為經由執行所述可執行指令來執行上述的機器學習方法。
23、根據本公開的又一個方面,提供一種計算機可讀存儲介質,其上存儲有計算機程序,所述計算機程序被處理器執行時實現上述的機器學習方法。
24、根據本公開的又一個方面,提供一種計算機程序產品,其上存儲有計算機程序,所述計算機程序被處理器執行時實現上述的機器學習方法。
25、本公開的實施例所提供的機器學習方案,通過將初始模型參數下發到各個客戶端并加載到多層殘差網絡模型中,將訓練數據轉化為整數域并進行同態加密操作,采用加密訓練數據對多層殘差網絡模型進行模型訓練,以實現ppml(隱私保護機器學習),并且參與模型訓練的客戶端能夠就近連接網絡邊緣服務器進行通信,通過在邊緣服務器和中心服務器進行多輪次的參數加權聚合,最終得到的訓練后的全局模型參數整合了多個客戶端和邊緣服務器的信息,從而有效減小通信開銷。
26、應當理解的是,以上的一般描述和后文的細節描述僅是示例性和解釋性的,并不能限制本公開。