楊再驥 付春海 張宇浩 唐敏 李亞楠
(1.桂林電子科技大學(xué)數(shù)學(xué)與計算科學(xué)學(xué)院 廣西桂林 541004;2.桂林旅游學(xué)院 廣西桂林 541006)
隨著大數(shù)據(jù)和人工智能的發(fā)展,機器學(xué)習(xí)廣泛應(yīng)用于人臉識別[1]、圖像分類[2]、自動駕駛[3]等。人工神經(jīng)網(wǎng)絡(luò)是統(tǒng)計機器學(xué)習(xí)中最優(yōu)秀算法之一。目前,許多落地的實際應(yīng)用都是基于神經(jīng)網(wǎng)絡(luò),但人工神經(jīng)網(wǎng)絡(luò)是基于數(shù)據(jù)的學(xué)習(xí),大量的訓(xùn)練樣本是保證模型精度的必要條件[4]。對于很多應(yīng)用,數(shù)據(jù)往往分散在不同的用戶、存儲在不同的地點,而很多數(shù)據(jù)都是具有隱私性的[5],如構(gòu)建垃圾郵件分類器時用戶郵件具有隱私性而無法直接共享[6],因此需要研究具有隱私保護的神經(jīng)網(wǎng)絡(luò)訓(xùn)練模型,實現(xiàn)在保證用戶隱私的前提下完成模型構(gòu)建。
目前隱私保護機器學(xué)習(xí)模型的主要技術(shù)有聯(lián)邦學(xué)習(xí)、同態(tài)、安全多方計算、秘密共享等。JIANG Z L 等人[7]提出的基于聯(lián)邦學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)訓(xùn)練方案,需要用戶與服務(wù)器進行多次交互,導(dǎo)致用戶的計算量和通信量較高;LI P等人[8]提出的基于全同態(tài)的深度學(xué)習(xí)方案,巨大的計算量導(dǎo)致實用性較差;MA X等人[9]提出的安全多方計算方案,通過云服務(wù)器進行全局聚合,實現(xiàn)隱私保護的深度學(xué)習(xí)方案。然而,頻繁交互使通信成本增加;MA X等人[10]提出的秘密共享的神經(jīng)網(wǎng)絡(luò)預(yù)測方案,需要使用分段函數(shù)進行非線性函數(shù)的近似,從而導(dǎo)致模型精度下降。
為了達到用戶與服務(wù)器之間的非交互性以及實現(xiàn)較低的計算量和通信量,本文提出一個基于秘密共享的隱私保護神經(jīng)網(wǎng)絡(luò)訓(xùn)練方案。利用秘密共享技術(shù),實現(xiàn)安全計算模型參數(shù)和樣本的內(nèi)積。此外,該方案可以避免使用多項式近似等策略處理非線性函數(shù),從而訓(xùn)練出的模型與原始的集中式模型一致,實現(xiàn)無損的模型訓(xùn)練。
隱藏層權(quán)重的梯度計算公式為
秘密共享包含兩個算法,共享算法將一個消息m拆分成兩部分m1和m2,滿足m=m1+m2,將m1和m2分別發(fā)送給兩臺不共謀的服務(wù)器,消息在兩臺服務(wù)器共享,而任何一臺服務(wù)器都不能獲得m的真實信息;重構(gòu)算法可將分屬于兩臺服務(wù)器的信息發(fā)送給可信第三方,從而重建原始信息。利用秘密共享乘法和秘密共享內(nèi)積,可以完成秘密共享下的兩個數(shù)的乘法和兩個向量的內(nèi)積操作。
系統(tǒng)模型主要由兩種實體構(gòu)成,即用戶和云服務(wù)器,如圖1所示。
圖1 系統(tǒng)模型
用戶將自己的數(shù)據(jù)以水平方向的秘密共享和垂直方向的秘密共享的形式發(fā)送給兩臺輔助云服務(wù)器隨即離線。
一臺訓(xùn)練服務(wù)器CSNN,擁有模型參數(shù)、標(biāo)簽yi,并負責(zé)訓(xùn)練任務(wù);兩臺輔助服務(wù)器,用戶隱私保護神經(jīng)網(wǎng)絡(luò)中間結(jié)果的計算。
系統(tǒng)的安全性要求為保護用戶數(shù)據(jù)隱私和模型參數(shù)隱私:(1)用戶隱私不泄漏給云服務(wù)器;(2)模型隱私不泄漏給除訓(xùn)練服務(wù)器外的其他人。
為了評價基于秘密共享的隱私保護神經(jīng)網(wǎng)絡(luò)訓(xùn)練模型的精度和效率,使用Python 語言在數(shù)據(jù)集上進行了數(shù)值實驗。數(shù)據(jù)集采用MNIST 和Fashion-MNIST,特征數(shù)28×28,樣本數(shù)為70 000,訓(xùn)練集數(shù)量為60 000,測試集數(shù)量為10 000。
實驗基于Colad,利用兩個標(biāo)準數(shù)據(jù)集對方案進行了性能評估,實驗中的硬件平臺配置為如下。Mem-Total:13 297 200 kB。GPU:Tesla T4。CPU:Intel(R)Xeon(R) CPU @ 2.30GHz。CUDA:11.2。
本節(jié)進行精度測試并與明文做對比,使用在測試集上的精度作為評估指標(biāo),根據(jù)表1給出的實驗結(jié)果,可見由于本方案本質(zhì)上等價于明文下全局數(shù)據(jù)訓(xùn)練,因此在精度上與明文相比幾乎沒有損失,證明了方案的可行性較強。
表1 精度對比
本節(jié)對方案進行效率測試并與明文下訓(xùn)練效果做對比,使用在訓(xùn)練集上單輪訓(xùn)練所需時間作為評估指標(biāo),根據(jù)圖2 給出的實驗結(jié)果,在Fashion-MNIST 以及MNIST 數(shù)據(jù)集上,本文方案比明文下全局數(shù)據(jù)訓(xùn)練單輪訓(xùn)練時間平均多1.013 s,證明了方案具有高效性。
圖2 單輪訓(xùn)練時間對比圖
本文提出一個基于秘密共享的神經(jīng)網(wǎng)絡(luò)訓(xùn)練方案。利用秘密共享技術(shù),實現(xiàn)了內(nèi)積函數(shù)的安全計算,避免采用同態(tài),函數(shù)加密等復(fù)雜度較高的密碼技術(shù)。而且方案實現(xiàn)了用戶一次上傳無須與服務(wù)器交互的效果,降低了用戶的計算量和通信開銷。數(shù)值實驗證明了該方案是無損的且具有高效性。