楊再驥 付春海 張宇浩 唐敏 李亞楠
(1.桂林電子科技大學數學與計算科學學院 廣西桂林 541004;2.桂林旅游學院 廣西桂林 541006)
隨著大數據和人工智能的發展,機器學習廣泛應用于人臉識別[1]、圖像分類[2]、自動駕駛[3]等。人工神經網絡是統計機器學習中最優秀算法之一。目前,許多落地的實際應用都是基于神經網絡,但人工神經網絡是基于數據的學習,大量的訓練樣本是保證模型精度的必要條件[4]。對于很多應用,數據往往分散在不同的用戶、存儲在不同的地點,而很多數據都是具有隱私性的[5],如構建垃圾郵件分類器時用戶郵件具有隱私性而無法直接共享[6],因此需要研究具有隱私保護的神經網絡訓練模型,實現在保證用戶隱私的前提下完成模型構建。
目前隱私保護機器學習模型的主要技術有聯邦學習、同態、安全多方計算、秘密共享等。JIANG Z L 等人[7]提出的基于聯邦學習的神經網絡訓練方案,需要用戶與服務器進行多次交互,導致用戶的計算量和通信量較高;LI P等人[8]提出的基于全同態的深度學習方案,巨大的計算量導致實用性較差;MA X等人[9]提出的安全多方計算方案,通過云服務器進行全局聚合,實現隱私保護的深度學習方案。然而,頻繁交互使通信成本增加;MA X等人[10]提出的秘密共享的神經網絡預測方案,需要使用分段函數進行非線性函數的近似,從而導致模型精度下降。
為了達到用戶與服務器之間的非交互性以及實現較低的計算量和通信量,本文提出一個基于秘密共享的隱私保護神經網絡訓練方案。利用秘密共享技術,實現安全計算模型參數和樣本的內積。此外,該方案可以避免使用多項式近似等策略處理非線性函數,從而訓練出的模型與原始的集中式模型一致,實現無損的模型訓練。
隱藏層權重的梯度計算公式為
秘密共享包含兩個算法,共享算法將一個消息m拆分成兩部分m1和m2,滿足m=m1+m2,將m1和m2分別發送給兩臺不共謀的服務器,消息在兩臺服務器共享,而任何一臺服務器都不能獲得m的真實信息;重構算法可將分屬于兩臺服務器的信息發送給可信第三方,從而重建原始信息。利用秘密共享乘法和秘密共享內積,可以完成秘密共享下的兩個數的乘法和兩個向量的內積操作。
系統模型主要由兩種實體構成,即用戶和云服務器,如圖1所示。

圖1 系統模型
用戶將自己的數據以水平方向的秘密共享和垂直方向的秘密共享的形式發送給兩臺輔助云服務器隨即離線。
一臺訓練服務器CSNN,擁有模型參數、標簽yi,并負責訓練任務;兩臺輔助服務器,用戶隱私保護神經網絡中間結果的計算。
系統的安全性要求為保護用戶數據隱私和模型參數隱私:(1)用戶隱私不泄漏給云服務器;(2)模型隱私不泄漏給除訓練服務器外的其他人。
為了評價基于秘密共享的隱私保護神經網絡訓練模型的精度和效率,使用Python 語言在數據集上進行了數值實驗。數據集采用MNIST 和Fashion-MNIST,特征數28×28,樣本數為70 000,訓練集數量為60 000,測試集數量為10 000。
實驗基于Colad,利用兩個標準數據集對方案進行了性能評估,實驗中的硬件平臺配置為如下。Mem-Total:13 297 200 kB。GPU:Tesla T4。CPU:Intel(R)Xeon(R) CPU @ 2.30GHz。CUDA:11.2。
本節進行精度測試并與明文做對比,使用在測試集上的精度作為評估指標,根據表1給出的實驗結果,可見由于本方案本質上等價于明文下全局數據訓練,因此在精度上與明文相比幾乎沒有損失,證明了方案的可行性較強。

表1 精度對比
本節對方案進行效率測試并與明文下訓練效果做對比,使用在訓練集上單輪訓練所需時間作為評估指標,根據圖2 給出的實驗結果,在Fashion-MNIST 以及MNIST 數據集上,本文方案比明文下全局數據訓練單輪訓練時間平均多1.013 s,證明了方案具有高效性。

圖2 單輪訓練時間對比圖
本文提出一個基于秘密共享的神經網絡訓練方案。利用秘密共享技術,實現了內積函數的安全計算,避免采用同態,函數加密等復雜度較高的密碼技術。而且方案實現了用戶一次上傳無須與服務器交互的效果,降低了用戶的計算量和通信開銷。數值實驗證明了該方案是無損的且具有高效性。