李 英 賀春林
1(內(nèi)江職業(yè)技術(shù)學(xué)院信息技術(shù)系 四川 內(nèi)江 641000)2(西華師范大學(xué)計(jì)算機(jī)學(xué)院 四川 南充 637002)
深度神經(jīng)網(wǎng)絡(luò)算法在諸如圖像分類[1]、語言表達(dá)[2]和視覺跟蹤[3]等工程應(yīng)用中取得了十分廣泛的應(yīng)用,但其依賴于采用大量訓(xùn)練數(shù)據(jù)集對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練[4],而在使用這些訓(xùn)練數(shù)據(jù)集時(shí)首先需要保證不侵犯數(shù)據(jù)的隱私權(quán)限[5]。然而,對于深度神經(jīng)網(wǎng)絡(luò)而言,受到隱私保護(hù)的數(shù)據(jù)集作為訓(xùn)練集可能對算法最終運(yùn)行結(jié)果的正確性產(chǎn)生影響[6-7]。因此,如何在運(yùn)用深度神經(jīng)網(wǎng)絡(luò)算法的同時(shí)有效保護(hù)訓(xùn)練樣本數(shù)據(jù)的隱私不受侵犯顯得至關(guān)重要。
學(xué)者們針對神經(jīng)網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù)隱私問題進(jìn)行了相關(guān)研究。例如,文獻(xiàn)[8]針對含有加密后的數(shù)據(jù)分析計(jì)算問題,提出了基于同態(tài)加密技術(shù)的機(jī)器學(xué)習(xí)算法,在保證不解密的情況下直接對密文進(jìn)行計(jì)算,并與解密后明文計(jì)算結(jié)果相同。然而,同態(tài)加密技術(shù)存在運(yùn)算效率低的缺點(diǎn)。文獻(xiàn)[9]提出了基于Flash排序算法與k-匿名保護(hù)算法相結(jié)合的分類機(jī)器學(xué)習(xí)算法,實(shí)現(xiàn)隱私數(shù)據(jù)保護(hù)的同時(shí)保持?jǐn)?shù)據(jù)集的最優(yōu)效用,但k-匿名算法本質(zhì)上仍存在隱私信息泄露的可能性。
近年來,差分隱私技術(shù)被廣泛應(yīng)用于數(shù)據(jù)私密性保護(hù)中,其基本原理為對原始數(shù)據(jù)通過轉(zhuǎn)換、添加噪聲等方法來達(dá)到隱私保護(hù)的效果,從而確保數(shù)據(jù)集在執(zhí)行插入或刪除操作時(shí)對最終的計(jì)算結(jié)果不會(huì)產(chǎn)生影響?;诖?,本文提出一種結(jié)合差分隱私的隨機(jī)梯度下降算法,實(shí)現(xiàn)數(shù)據(jù)隱私保護(hù)與神經(jīng)網(wǎng)絡(luò)算法的有機(jī)結(jié)合,主要貢獻(xiàn)包括:
(1) 針對傳統(tǒng)隨機(jī)梯度下降算法不考慮對數(shù)據(jù)隱私性的破壞影響,提出了基于差分隱私保護(hù)的隨機(jī)梯度下降算法,引入附加高斯噪聲對數(shù)據(jù)隱私性進(jìn)行保護(hù)的同時(shí),保證對深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練效果。
(2) 為衡量所提差分隱私隨機(jī)梯度下降算法對數(shù)據(jù)隱私的破壞程度,提出隱私損失累積函數(shù)的概念對每次迭代過程中的數(shù)據(jù)隱私破壞程度進(jìn)行度量。此外,還討論了算法中關(guān)鍵參數(shù)對神經(jīng)網(wǎng)絡(luò)訓(xùn)練效果的影響。算例實(shí)驗(yàn)表明,所提算法能夠有效實(shí)現(xiàn)數(shù)據(jù)隱私保護(hù)與算法執(zhí)行效率間的折中平衡,具有較好的應(yīng)用前景。
差分隱私算法[11]的數(shù)學(xué)基礎(chǔ)為相鄰數(shù)據(jù)集概念,具體的數(shù)學(xué)定義如下:
定義1對于一個(gè)隨機(jī)映射機(jī)制M:D→R,其中D為域,而R為范圍滿足(ε,δ)為差分隱私的,若其滿足對于任意兩個(gè)響鈴輸入d,d′∈D和任意輸出子集S?R有如下不等式成立:
Pr[M(d)∈S]≤eεPr[M(d′)∈S]+δ
(1)
式中:ε為差分隱私預(yù)算參數(shù),其表征了隱私保護(hù)程度,ε越小表示隱私保護(hù)程度越高;而δ則表征了差分隱私被破壞的概率值。由定義1可知,差分隱私技術(shù)限制了任意對數(shù)據(jù)集的操作對算法運(yùn)行結(jié)果的影響。具體操作為:令f表示某一算法,f(d)和f(d′)分別表示兩個(gè)相鄰數(shù)據(jù)的執(zhí)行結(jié)果。差分隱私即通過調(diào)整參數(shù)ε來保證對數(shù)據(jù)集中對同一條數(shù)據(jù)進(jìn)行刪除或添加操作后輸出同一結(jié)果的概率控制在eε之內(nèi),且差分隱私被破壞的概率小于δ。從上述分析可知,(ε,δ)同樣反映了隱私保護(hù)的開銷程度。此外,文獻(xiàn)[12]提出,實(shí)現(xiàn)差分隱私的關(guān)鍵在于向數(shù)據(jù)添加隨機(jī)噪聲,最常見的是添加高斯隨機(jī)噪聲:
(2)
然而,添加噪聲的程度與算法對數(shù)據(jù)的敏感度以及需要控制的隱私保護(hù)程度有關(guān)。換言之,若加入的噪聲程度過大,則算法運(yùn)行結(jié)果的可信度會(huì)下降;反之,若加入的噪聲程度太小,則無法對數(shù)據(jù)提供可靠的安全保障。為衡量算法對添加噪聲的敏感程度,引入如下定義:
定義2對任意算法f:D→R,算法的全局敏感度GS(f)定義為:
(3)
如圖1所示,深度神經(jīng)網(wǎng)絡(luò)基于模塊化思想,通過在多個(gè)層次上部署多個(gè)神經(jīng)元并通過逐層訓(xùn)練的手段調(diào)整神經(jīng)元間的連接權(quán)值,從而實(shí)現(xiàn)原始特征數(shù)據(jù)進(jìn)行多次非線性變換,對于任何有限給定輸入/輸出數(shù)據(jù)的擬合,最終獲取到穩(wěn)定的特征用于后續(xù)的問題分析。
圖1 深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
深度神經(jīng)網(wǎng)絡(luò)算法中,為評估所提神經(jīng)網(wǎng)絡(luò)輸出預(yù)測值與真實(shí)值之間的差異程度,用損失函數(shù)L表示,文中采用均方差損失函數(shù),表示為:
(4)
提出一種基于差分隱私保護(hù)的隨機(jī)梯度下降算法。為約束算法迭代過程中對數(shù)據(jù)隱私性的侵犯,提出隱私損失累積函數(shù)的概念對隱私侵犯程度進(jìn)行度量。
現(xiàn)有研究中,差分隱私和隨機(jī)梯度下降算法之間參數(shù)的配合選取與交互影響機(jī)制尚不明確。例如,在訓(xùn)練數(shù)據(jù)中加入的噪聲過于保守,則在實(shí)際算法運(yùn)行時(shí)的準(zhǔn)確率將受到影響。因此,通過定義一個(gè)數(shù)據(jù)隱私損失累積函數(shù)來量化度量隨機(jī)梯度下降迭代過程中對數(shù)據(jù)隱私的侵犯程度。
算法1展示了所提差分隱私SGD算法的基本步驟,其目標(biāo)函數(shù)通過不斷訓(xùn)練和調(diào)整權(quán)重系數(shù)θ來最小化損失函數(shù)L。其基本思想為:在每次迭代過程中,首先計(jì)算隨機(jī)生成的批量樣本的梯度▽θL(θ,xi),并基于計(jì)算生成的梯度值的L2范數(shù)進(jìn)行梯度剪切。隨后,考慮到樣本數(shù)據(jù)的隱私保護(hù),基于附加高斯噪聲方法以梯度與隨機(jī)噪聲之和的均值對剪切后的梯度進(jìn)行更新,得到下一步迭代的權(quán)重系數(shù)θ。最后除最終權(quán)重系數(shù)之外,還需要輸出由于差分隱私保護(hù)機(jī)制帶來的隱私損失。
算法1差分隱私SGD算法
初始化:隨機(jī)生成權(quán)重系數(shù)θ0
Fort∈[T]do
輸出:θT和使用隱私損失累積函數(shù)計(jì)算得到的隱私開銷(ε,δ)
相關(guān)術(shù)語解釋如下:
神經(jīng)網(wǎng)絡(luò)各層參數(shù):神經(jīng)網(wǎng)絡(luò)各層參數(shù)(即權(quán)重系數(shù)θ)都作為損失函數(shù)L的其中一部分參數(shù)。算法1同樣表明,對于每一層而言均可以對剪切閾值和噪聲程度進(jìn)行單獨(dú)設(shè)置,且可能隨著訓(xùn)練迭代步驟t的增長而變化。
對于所提差分隱私SGD算法,除了確保算法運(yùn)行的準(zhǔn)確率以外,另一個(gè)重要的問題就是評估算法訓(xùn)練時(shí)的數(shù)據(jù)隱私損失成本。為此,提出隱私損失累積函數(shù)的概念來進(jìn)行每次迭代過程訪問訓(xùn)練數(shù)據(jù)的隱私損失以及隨著訓(xùn)練進(jìn)展時(shí)的累積隱私損失。
進(jìn)一步地,對于兩個(gè)相鄰的數(shù)據(jù)集d,d′∈D和映射機(jī)制M,引入一個(gè)輔助輸入變量aux和輸出o∈R,定義映射機(jī)制M在輸出o處的隱私損失為:
(5)
對于所提差分隱私SGD算法而言,神經(jīng)網(wǎng)絡(luò)各層權(quán)重系數(shù)的參數(shù)值與每次迭代過程中的差分隱私機(jī)制有著緊密的關(guān)聯(lián),從而對于給定的映射機(jī)制M,在第λ次迭代過程的隱私損失定義為:
(6)
進(jìn)一步地,映射機(jī)制M的損失邊界值定義為:
(7)
其滿足如下特性:
(8)
2) 差分隱私邊界:?ε>0,映射機(jī)制M是(ε,δ)差分隱私的,當(dāng)且僅當(dāng):
(9)
上述2條性質(zhì)確定了深度神經(jīng)網(wǎng)絡(luò)算法每次迭代的隱私損失以及所能夠達(dá)到侵犯數(shù)據(jù)隱私容忍度的最大迭代次數(shù)。特別地,在附加高斯噪聲的情況下,不妨令μ0、μ1分別為N(0,σ2)和N(0,σ2)的概率密度函數(shù),而μ為兩個(gè)高斯密度函數(shù)的混合概率密度函數(shù),即μ=(1-q)μ0+qμ1。依據(jù)式(5)-式(7)可推導(dǎo)得α(λ)=log max(E1,E2),其中:
(10)
(11)
隱私損失邊界為:
α(λ)≤q2λ(λ+1)/(1-q)σ2+O(q3/σ3)
(12)
本文算法采用基于數(shù)據(jù)流編程(dataflow programming,DP)的TensorFlow符號數(shù)學(xué)系統(tǒng)[15]進(jìn)行編程。為了保護(hù)數(shù)據(jù)隱私,需在進(jìn)行梯度下降更新每一層權(quán)重系數(shù)參數(shù)值之前對數(shù)據(jù)進(jìn)行清洗。此外,還需根據(jù)數(shù)據(jù)清洗的處理方式計(jì)算每次迭代過程中的隱私損失。故算例執(zhí)行過程中主要包含兩大部分:1) 數(shù)據(jù)清洗,梯度計(jì)算前對數(shù)據(jù)進(jìn)行清洗以保護(hù)隱私;2) 隱私損失累積,在訓(xùn)練過程中計(jì)算每次的隱私損失。
算法2和算法3為基于TensorFlow框架下使用Python語言編程的所提差分隱私SGD算法的核心代碼片段。其中:算法2為使用所提差分隱私SGD算法對損失函數(shù)不斷優(yōu)化,命名為DPSGD_Optimizer;而算法3則為隱私損失累積成本函數(shù)進(jìn)行隱私損失迭代計(jì)算,命名為DPtrain。
算法2SGD算法核心代碼
class DPSGD_Optimizer():
def_init_(self,accountant,sanitizer):
self_accountant=accoutant
self_sanitizer=sanitizer
def Minimize(self,loss,params,
batch_size,noise_options):
#計(jì)算梯度之前的累計(jì)隱私損失
priv_accum_op=
self._accountant.AccumulatePrivacySpending(
batch_size,noise_options)
with tf.control_dependencies(priv_accum_op):
#計(jì)算每個(gè)樣本的梯度
px_grads=per_example_gradients(loss,params)
#數(shù)據(jù)清洗
sanitized_grads=self._sanitizer.Sanitize(
px_grads,noise_options)
#執(zhí)行梯度下降操作
return apply_gradients(params,sanitized_grads)
算法3 隱私損失累積函數(shù)代碼
def DPTrain(loss,params,batch_size,noise_options):
accountant=PrivacyAccountant()
sanitizer=Sanitizer()
dp_opt=DPSGD_Optimizer(accountant,sanitizer)
sgd_op=dp_opt.Minimize(
loss,params,batch_size,noise_options)
eps,delta=(0,0)
#在預(yù)定義的隱私損失限值內(nèi)輸出訓(xùn)練結(jié)果
while within_limit(eps,delta):
sgd_op.run()
eps,delta=accountant.GetSpentPrivacy()
多數(shù)情形下,神經(jīng)網(wǎng)絡(luò)模型可通過基于主成分分析(principal component analysis,PCA)將輸入投影在主方向上或通過卷積層反饋的方式來提高訓(xùn)練效率與訓(xùn)練效果。同樣地,算例中也使用差分隱私+PCA的方案在公共數(shù)據(jù)上進(jìn)行神經(jīng)網(wǎng)絡(luò)卷積層的預(yù)訓(xùn)練。
3.1.1數(shù)據(jù)清洗操作
為實(shí)現(xiàn)對樣本數(shù)據(jù)的隱私保護(hù),數(shù)據(jù)清洗操作需要執(zhí)行兩項(xiàng)操作:1) 通過裁剪每個(gè)樣本的梯度范數(shù)來限制樣本中每個(gè)數(shù)據(jù)對最終生成梯度的影響;2) 在更新神經(jīng)網(wǎng)絡(luò)各層權(quán)重系數(shù)參數(shù)值之前,將隨機(jī)噪聲添加至批處理的梯度中。
3.1.2隱私損失累積函數(shù)的主成分分析操作
進(jìn)行隱私損失累積操作的主要目的在于跟蹤計(jì)算每次訓(xùn)練迭代過程中的隱私損失成本。如第2節(jié)所述,可以根據(jù)所加噪聲的分布參數(shù)進(jìn)而確定每次疊加過程的隱私損失α(λ)。
此外,由于主成分分析(PCA)是捕獲輸入數(shù)據(jù)主要特征的有效方法。對于用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)的隨機(jī)樣本,將其視為向量并進(jìn)行L2范數(shù)歸一化處理,形成對稱矩陣(記為A),其中每個(gè)向量是矩陣A中的一行,并基于所提附加高斯噪聲的方法添加到協(xié)方差矩陣ATA,并計(jì)算噪聲協(xié)方差矩陣的主方向。最終將每個(gè)輸入的訓(xùn)練樣本投影到主方向上作為神經(jīng)網(wǎng)絡(luò)最終的輸入數(shù)據(jù)。
為驗(yàn)證所提基于差分隱私的SGD算法的可行性與優(yōu)異性,采用兩個(gè)流行的圖像數(shù)據(jù)集MNIST[17]和CIFAR-10數(shù)據(jù)集[18]對算法進(jìn)行驗(yàn)證。此外,采用文獻(xiàn)[19]所提無差分隱私的常規(guī)SGD算法作為對比算法。
3.2.1MNIST手寫數(shù)字識別
MNIST數(shù)據(jù)集為手寫數(shù)字識別數(shù)據(jù)集。首先將樣本分為包含60 000幅圖片的訓(xùn)練樣本和包含10 000幅圖片的測試樣本。每幅樣本均為28×28的灰度圖像。神經(jīng)網(wǎng)絡(luò)采用前饋架構(gòu)并具有ReLU激活函數(shù)以及10類的Softmax分類器。
(1) 差分隱私基準(zhǔn)實(shí)驗(yàn)。選擇PCA投影層維度為60維,包含1層具有1 000個(gè)ReLU激活單元的隱含層,并將Lot樣本規(guī)模設(shè)置為600,設(shè)梯度剪切閾值為4。復(fù)雜的高斯噪聲強(qiáng)度分為三類:小強(qiáng)度噪聲(σ=2,σp=4),中等強(qiáng)度噪聲(σ=4,σp=7)和大強(qiáng)度噪聲(σ=8,σp=16)。其中:σ為訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí)選擇的附加噪聲標(biāo)準(zhǔn)差;σp為PCA投影時(shí)的噪聲標(biāo)準(zhǔn)差。初始學(xué)習(xí)率設(shè)置為0.1,并在10個(gè)Epoch內(nèi)線性地遞減至0.052并在今后的訓(xùn)練過程中內(nèi)保持不變(1個(gè)Epoch等于使用訓(xùn)練集內(nèi)樣本全部訓(xùn)練一次)。
采用固定變量法進(jìn)行驗(yàn)證。首先令δ=10-5并保持不變,圖2為不同噪聲級別下神經(jīng)網(wǎng)絡(luò)算法對手寫數(shù)字識別準(zhǔn)確率隨著訓(xùn)練次數(shù)以及差分隱私預(yù)算參數(shù)ε的變化情形。可以看出,訓(xùn)練完成后的神經(jīng)網(wǎng)絡(luò)在(0.5,10-5)-差分隱私、(2,10-5)-差分隱私和(8,10-5)-差分隱私水平下的準(zhǔn)確率分別超過了90%、95%和97%,且訓(xùn)練集和測試集的識別準(zhǔn)確率結(jié)果相差不大。反之,采用非差分隱私的SGD算法進(jìn)行訓(xùn)練時(shí),訓(xùn)練集和測試集的準(zhǔn)確率差距則存在過度擬合的現(xiàn)象,即隨著Epoch數(shù)量的增加,二者差距逐漸增大。此外,非差分隱私的SGD算法最終的測試準(zhǔn)確度較所提算法雖然在大強(qiáng)度噪聲情況下較為接近,但在中等強(qiáng)度噪聲和低強(qiáng)度噪聲時(shí)則比本文算法分別低6.2%和9.7%,這進(jìn)一步說明本文算法具有更好的辨識性能。
(a) 大強(qiáng)度噪聲
(b) 中等強(qiáng)度噪聲
(c) 低強(qiáng)度噪聲圖2 MNIST數(shù)據(jù)集辨識準(zhǔn)確度隨噪聲變化的趨勢
(2) 相關(guān)參數(shù)對算法性能的影響。進(jìn)一步研究所提差分隱私SGD算法中相關(guān)參數(shù)對算法性能的影響。算法參數(shù)包括PCA維度數(shù)量、隱含層激活單元的數(shù)量以及相關(guān)訓(xùn)練參數(shù)(如Lot樣本規(guī)模、學(xué)習(xí)速率、梯度范數(shù)剪切閾值和噪聲強(qiáng)度等)。與差分隱私基準(zhǔn)實(shí)驗(yàn)類似,同樣通過固定變量方法研究上述參數(shù)對算法性能的影響,即在其余參數(shù)不變的情形下單獨(dú)研究某一參數(shù)對算法性能的動(dòng)態(tài)影響。實(shí)驗(yàn)過程的基準(zhǔn)參數(shù)同樣采用3.1.2節(jié)中所述參數(shù)值。
PCA維度數(shù)量:圖3(a)為辨識準(zhǔn)確度隨著PCA維度數(shù)量的變化趨勢。無PCA和隨機(jī)映射方法下準(zhǔn)確率始終保持不變,而所提方法的辨識準(zhǔn)確度隨著映射維度的變化而發(fā)生波動(dòng),但總體上的辨識準(zhǔn)確率優(yōu)于前述兩種方法。
隱含層激活單元的數(shù)量:圖3(b)為辨識準(zhǔn)確度隨著隱含層激活單元數(shù)量的變化趨勢。可知,對于常規(guī)的非差分隱私SGD算法而言,只要選擇合理的手段來避免過度擬合,則準(zhǔn)確率隨著激活單元數(shù)量的增多而逐漸提升。但對于所提差分隱私SGD算法,激活單元數(shù)量的增多并不能必然保證準(zhǔn)確率的提升,這是因?yàn)樵龆嗟募せ顔卧黾恿藢μ荻褥`敏度的影響,從而導(dǎo)致在梯度更新時(shí)需要添加額外的隨機(jī)噪聲。此外還可得到另一結(jié)論是,對于所提差分隱私SGD算法,并不需要通過一味地使用非常大的神經(jīng)網(wǎng)絡(luò)也能得到令人滿意的算法性能。
學(xué)習(xí)率:圖3(d)為學(xué)習(xí)率對辨識準(zhǔn)確度的影響。可見,當(dāng)學(xué)習(xí)率維持在[0.01,0.07]且終值為0.05時(shí),準(zhǔn)確率保持穩(wěn)定。若學(xué)習(xí)率過大,則準(zhǔn)確度會(huì)顯著下降。
梯度范數(shù)剪切閾值:圖3(e)為梯度范式剪切閾值對辨識準(zhǔn)確率的影響。當(dāng)剪切閾值在[2,5]時(shí)辨識準(zhǔn)確率基本保持穩(wěn)定,而閾值超過5后,辨識準(zhǔn)確率出現(xiàn)了明顯的下降。這是由于梯度范數(shù)剪切閾值的選取需要綜合考慮如下兩個(gè)因素:1) 若閾值取值過小,則最終以平均值代替真實(shí)梯度時(shí)可能造成誤差過大;2) 若閾值取值過大,則由算法1可知,將會(huì)導(dǎo)致最終根性的梯度中注入過多的噪聲。
噪聲強(qiáng)度:圖3(f)為附加高斯噪聲強(qiáng)度對最終辨識準(zhǔn)確率的影響。當(dāng)σ取[3,4]時(shí)辨識準(zhǔn)確率達(dá)到最優(yōu),而超過這一范圍的σ,其辨識準(zhǔn)確率出現(xiàn)了急劇的下降,這表明噪聲強(qiáng)度的選取對最終準(zhǔn)確率有著至關(guān)重要的影響。
(a) 映射維度變化
(b) 隱藏單元變化
(c) Lot數(shù)量變化
(d) 學(xué)習(xí)率變化
(e) 梯度剪切范數(shù)變化
(f) 噪聲強(qiáng)度變化圖3 MNIST數(shù)據(jù)集辨識準(zhǔn)確度隨參數(shù)變化趨勢
綜上,對于MNIST數(shù)據(jù)集驗(yàn)證實(shí)驗(yàn),可得到如下結(jié)論:
1) PCA提高了模型精度和訓(xùn)練性能。但PCA維度的選擇對最終的辨識準(zhǔn)確度沒有明顯的影響。
2) 隱含層激活單元數(shù)量對最終的辨識精度沒有明顯的影響,對于一個(gè)復(fù)雜求解問題而言,應(yīng)用本文方法可以通過運(yùn)行較小的神經(jīng)網(wǎng)絡(luò)來達(dá)到令人滿意的效果。
3) 學(xué)習(xí)率、Lot樣本規(guī)模和噪聲強(qiáng)度對深度神經(jīng)網(wǎng)絡(luò)求解性能有著很大的影響。本文中僅通過人工經(jīng)驗(yàn)選取的方法來確定,后續(xù)可進(jìn)一步通過研究自適應(yīng)參數(shù)選擇方法來確定這類關(guān)鍵參數(shù)。
3.2.2CIFAR-10圖像分類
為進(jìn)一步說明所提差分隱私SGD算法的通用性,使用CIFAR-10圖像數(shù)據(jù)集進(jìn)行驗(yàn)證。其中,數(shù)據(jù)集由10類包含人類、交通工具和動(dòng)物組成,選擇50 000個(gè)樣本用作訓(xùn)練而10 000個(gè)樣本用作測試。
算法采用TensorFlow中卷積神經(jīng)網(wǎng)絡(luò)的示例網(wǎng)絡(luò)架構(gòu)。算例使用兩級神經(jīng)網(wǎng)絡(luò),附加高斯噪聲參數(shù)σ=6,梯度范數(shù)剪切閾值選擇為3,Lot樣本規(guī)模選擇為2 000和4 000。圖4為分類準(zhǔn)確度和隱私成本隨著訓(xùn)練過程變化的趨勢。其中,(a)-(c)對應(yīng)ε=2,4,6,而Lot樣本規(guī)模則分別為2 000、4 000和4 000。與2.2節(jié)類似,訓(xùn)練樣本和測試樣本的準(zhǔn)確率較為接近,分別約為67%、70%和73%??梢姡疚姆椒▽D片分類較高的準(zhǔn)確率,適用性強(qiáng)。
(a) 大強(qiáng)度噪聲
(b) 中等強(qiáng)度噪聲
(c) 低強(qiáng)度噪聲圖4 CIFAR-10數(shù)據(jù)集辨識準(zhǔn)確度隨噪聲變化的影響
為保證深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中對訓(xùn)練樣本數(shù)據(jù)的隱私信息的保護(hù),本文提出一種基于差分隱私隨機(jī)梯度下降算法的深度學(xué)習(xí)網(wǎng)絡(luò)算法。MNIST手寫數(shù)字識別算例和CIFAR-10圖像分類實(shí)驗(yàn)表明,本文算法的辨識準(zhǔn)確度分別達(dá)到了90%和70%的同時(shí),有效保護(hù)了數(shù)據(jù)的隱私性。結(jié)果表明,本文算法的適用范圍廣,并在辨識準(zhǔn)確度以及數(shù)據(jù)隱私性方面取得了較好的折中平衡。未來將進(jìn)一步研究對差分隱私-SGD算法參數(shù)的自適應(yīng)選取策略以及辨識準(zhǔn)確度,進(jìn)一步提升策略。