【技術(shù)實(shí)現(xiàn)步驟摘要】
一種密文明文混合學(xué)習(xí)模式的安全聯(lián)邦學(xué)習(xí)方法
[0001]本專利技術(shù)涉及一種基于同態(tài)加密的聯(lián)邦學(xué)習(xí)場(chǎng)景下安全高效的進(jìn)行多方協(xié)同訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型的方案,尤其涉及一種通過(guò)分割模型參數(shù)進(jìn)行高效訓(xùn)練的方案,以及一種用于選擇全局訓(xùn)練協(xié)議的判別方案。
技術(shù)介紹
[0002]隨著移動(dòng)互聯(lián)網(wǎng)用戶的增加和智能設(shè)備算力的提升,機(jī)器學(xué)習(xí),特別是深度機(jī)器學(xué)習(xí)算法,正在互聯(lián)網(wǎng)企業(yè)與用戶的交互方面起著越來(lái)越重要的作用。例如,許多企業(yè)通過(guò)收集用戶使用移動(dòng)應(yīng)用或設(shè)備中的使用數(shù)據(jù),在此數(shù)據(jù)基礎(chǔ)上通過(guò)訓(xùn)練機(jī)器學(xué)習(xí)模型掌握用戶的使用習(xí)慣,以此來(lái)為用戶精確推送其希望了解的信息。在實(shí)際的應(yīng)用訓(xùn)練中,深度神經(jīng)網(wǎng)絡(luò)是一種常用的學(xué)習(xí)算法的模型結(jié)構(gòu)。
[0003]本專利技術(shù)旨在安全高效地進(jìn)行多方訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,我們有必要先介紹單方的機(jī)器學(xué)習(xí)模型構(gòu)建,也即獨(dú)立客戶端的機(jī)器學(xué)習(xí)模型構(gòu)建過(guò)程。
[0004]稱事物的被收集到的屬性為特征,希望通過(guò)特征被推理出的屬性為標(biāo)記。如西瓜的大小,顏色,根蒂為特征,西瓜是否甜是我們想得到的標(biāo)記;計(jì)算機(jī)的顯卡型號(hào),操作系統(tǒng),CPU為特征,計(jì)算機(jī)運(yùn)行性能是我們想得到的標(biāo)記。
[0005]而機(jī)器學(xué)習(xí)模型可被抽象為一個(gè)從特征到標(biāo)記的映射,然而想要得到盡量準(zhǔn)確的映射需要進(jìn)行知識(shí)學(xué)習(xí),也就是需要給出一定數(shù)量的(特征,標(biāo)記)示例讓機(jī)器進(jìn)行映射的構(gòu)建。最終達(dá)到機(jī)器能夠在更泛化的數(shù)據(jù)上獲得準(zhǔn)確結(jié)果的效果。
[0006]設(shè)D為數(shù)據(jù)集,設(shè)D為數(shù)據(jù)集,x為特征,y為標(biāo)記。機(jī)器將通過(guò)學(xué)習(xí)D中的數(shù)據(jù)構(gòu)建模型f:R
d >→
R,f(x)=y(tǒng),我們還需要一個(gè)損失函數(shù)來(lái)評(píng)估模型的表現(xiàn):F(D)=∑
(x,y)∈D
l(f(x),y),其中l(wèi)(f(x),y)給出損失值,于是機(jī)器學(xué)習(xí)模型構(gòu)建完成得到的即為F(D)達(dá)到最小時(shí)對(duì)應(yīng)的映射f。
[0007]深度神經(jīng)網(wǎng)絡(luò)是一種判別模型,可以使用反向傳播算法進(jìn)行訓(xùn)練。權(quán)重更新可以使用下式進(jìn)行隨機(jī)梯度下降法求解:
[0008]其中,
∝
為學(xué)習(xí)率,C為代價(jià)函數(shù)。這一函數(shù)的選擇與學(xué)習(xí)的類型(例如監(jiān)督學(xué)習(xí)、無(wú)監(jiān)督學(xué)習(xí)、增強(qiáng)學(xué)習(xí))以及激活函數(shù)相關(guān)。例如,為了在一個(gè)多分類問(wèn)題上進(jìn)行監(jiān)督學(xué)習(xí),通常的選擇是使用ReLU作為激活函數(shù),而使用交叉熵作為代價(jià)函數(shù)。
[0009]Softmax函數(shù)定義為
[0010]其中p
j
代表類別j的概率,而x
j
和x
k
分別代表對(duì)單元j和k的輸入。
[0011]交叉熵定義為C=
?
∑
j
d
j
log(p
j
),其中d
j
代表輸出單元j的目標(biāo)概率,p
j
代表應(yīng)用了激活函數(shù)后對(duì)單元j的概率輸出。
[0012]然而,這些服務(wù)往往都需要搜集大量的用戶隱私數(shù)據(jù)作為訓(xùn)練模型的基礎(chǔ),隨著用戶保護(hù)個(gè)人數(shù)據(jù)隱私的意識(shí)的提高,企業(yè)若想要將用戶的使用數(shù)據(jù)收集到自己的服務(wù)器
上,再在此基礎(chǔ)上進(jìn)行訓(xùn)練,不僅有侵犯用戶隱私的嫌疑,而且對(duì)于隱私需求逐步增長(zhǎng)的用戶群體,想要收集足夠訓(xùn)練的樣本也日益困難。除此之外,即時(shí)能夠做到對(duì)企業(yè)的使用隱私數(shù)據(jù)的操作進(jìn)行嚴(yán)格的監(jiān)督,在企業(yè)服務(wù)器統(tǒng)一存放的數(shù)據(jù)也有著被惡意攻擊者竊取的風(fēng)險(xiǎn),一旦失竊,對(duì)用戶的權(quán)益的侵害之大將是難以預(yù)計(jì)的。由于以上種種原因,傳統(tǒng)的集中式的訓(xùn)練方法已無(wú)法適應(yīng)當(dāng)今企業(yè)和社會(huì)的需求。為此,2016年,Google提出了一種新的機(jī)器學(xué)習(xí)場(chǎng)景——聯(lián)邦學(xué)習(xí),其作為一種分布式的訓(xùn)練方案,逐漸替代了原有的學(xué)習(xí)方案。
[0013]形式上來(lái)說(shuō),相比于單機(jī)的機(jī)器學(xué)習(xí),聯(lián)邦學(xué)習(xí)設(shè)計(jì)客戶端和服務(wù)端兩種實(shí)體,設(shè)有N個(gè)客戶端,其分別持有數(shù)據(jù)集D
i
,聯(lián)邦學(xué)習(xí)過(guò)程細(xì)節(jié)見(jiàn)算法1,其大致為每個(gè)客戶端從服務(wù)端得到新一輪的模型后再在本地用自己的數(shù)據(jù)集訓(xùn)練出新的模型;然后將新模型參數(shù)傳給服務(wù)端,服務(wù)端聚合各客戶端的新模型參數(shù)得到新的全局模型,最后發(fā)送給各客戶端。如此循環(huán)往復(fù)逐步得到能適應(yīng)各客戶端數(shù)據(jù)集的機(jī)器學(xué)習(xí)模型。
[0014]在聯(lián)邦學(xué)習(xí)算法中,用戶并沒(méi)有將自己的隱私數(shù)據(jù)上傳到服務(wù)器,取而代之的是訓(xùn)練模型的數(shù)據(jù),但是,后續(xù)的大量研究均顯示,在各種情形假設(shè)下,傳輸基于用戶數(shù)據(jù)得到的中間梯度結(jié)果同樣存在泄露用戶隱私的可能,因此目前的聯(lián)邦學(xué)習(xí)大多使用了其他安全加密技術(shù),例如同態(tài)加密技術(shù)。同態(tài)加密技術(shù)是一種公鑰加密技術(shù),攻擊者難以從它加密得到的密文里獲取明文的信息,但同時(shí)又允許他人使用密文進(jìn)行一定的計(jì)算,且保證最終解密后的結(jié)果與基于明文進(jìn)行相同計(jì)算的結(jié)果相同或是足夠近似。這樣,通過(guò)對(duì)客戶端上傳至服務(wù)端的數(shù)據(jù)進(jìn)行同態(tài)加密,既保證了用戶數(shù)據(jù)的隱私性,又能使原有的訓(xùn)練算法得以正常進(jìn)行。
[0015]在所有同態(tài)加密算法中,半同態(tài)加密算法在聯(lián)邦學(xué)習(xí)中FedAvG的場(chǎng)景應(yīng)用較多。一般的同態(tài)加密會(huì)包含下面幾個(gè)算法:
[0016]·
GenKey(1
λ
)
→
(pk,sk):同態(tài)加密生成密鑰對(duì),λ被稱為安全系數(shù),用以生成隨機(jī)的公鑰pk和私鑰sk,二者長(zhǎng)度常以λ決定。
[0017]·
Enc(m,pk)
→
c:使用公鑰加密明文的算法,其中m為待加密的明文,pk為事前生成的公鑰,算法將兩者作為輸入,輸出加密后的密文。
[0018]·
Dec(c,sk)
→
m:用密鑰解密密文的算法,其中c為待解密的密文,sk為加密公鑰pk對(duì)應(yīng)的私鑰,算法將兩者作為輸入,輸出解密后的明文,其結(jié)果應(yīng)與最初作為輸入的明文相同,即Dec(Enc(m,pk),sk)=m。
[0019]·
Add(c1,c2)
→
c
sum
:算兩個(gè)密文之和,其結(jié)果解密后應(yīng)當(dāng)?shù)扔诿魑暮偷慕Y(jié)果。
[0020]即Dec(c1,sk)+Dec(c2,sk)=Dec(c
sum
,sk)。后文中出現(xiàn)的密文之間的加法,不加額外說(shuō)明的情況下,均指利用Add函數(shù)做的密文加法。
[0021]其中,若同態(tài)加密存在符合最后一條件的密文加法算法,則稱其滿足加法同態(tài)性質(zhì)。類似地,若能實(shí)現(xiàn)密文乘法操作,則稱其滿足乘法同態(tài)。不同的同態(tài)加密方法往往在加法同態(tài)和乘法同態(tài)能力存在差別,有的還對(duì)加密數(shù)的范圍,操作次數(shù)等有所限制。而我們只關(guān)注具有加法同態(tài)性質(zhì)的加密方法,這類只具有一種同態(tài)加密性質(zhì)的方法也被稱為“半同態(tài)加密”。
[0022]下面介紹本專利技術(shù)使用的半同態(tài)加密算法——Paillier算法。
[0023]·
GenKey(1
λ
)
→
(pk,sk):
[0024]1.對(duì)于給出的λ,Paillier首先找出兩個(gè)bit長(zhǎng)度不小于其的素?cái)?shù)p,q,這里需要保
證p,q滿足gcd(pq,(p
?
1)(q
?
1))=1,當(dāng)p,q本文檔來(lái)自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
【技術(shù)特征摘要】
1.一種密文明文混合學(xué)習(xí)模式的安全聯(lián)邦學(xué)習(xí)方法,其特征在于包括第一階段的加密訓(xùn)練協(xié)議、第二階段的部分明文訓(xùn)練協(xié)議及當(dāng)前協(xié)議的選擇判別;若客戶端本地模型快速收斂,則采用傳統(tǒng)半同態(tài)加密聚合方案,各個(gè)客戶端先在自己本地進(jìn)行一輪全局模型的訓(xùn)練,并將更新后的梯度值使用半同態(tài)加密算法加密后上傳至服務(wù)端,所述服務(wù)端對(duì)接收到的數(shù)據(jù)進(jìn)行聚合后再回傳客戶端解密;若客戶端本地模型收斂速度開(kāi)始放緩甚至收斂到極小點(diǎn),則使用快速聚合方案,服務(wù)端針對(duì)各客戶端參數(shù)的統(tǒng)計(jì)信息分布,選取部分客戶端并與之傳遞部分參數(shù)交互完成快速聚合;客戶端以自身訓(xùn)練過(guò)程中的指標(biāo)和給出的判別方法,判斷此輪訓(xùn)練應(yīng)當(dāng)使用哪一階段的協(xié)議,并將判斷結(jié)果發(fā)送給服務(wù)端,服務(wù)端根據(jù)客戶端上傳的判斷結(jié)果決定此輪協(xié)議并將其通知給客戶端,客戶端與服務(wù)端根據(jù)協(xié)議內(nèi)容進(jìn)行訓(xùn)練和通信,完成此輪的訓(xùn)練。2.根據(jù)權(quán)利要求1所述的密文明文混合學(xué)習(xí)模式的安全聯(lián)邦學(xué)習(xí)方法,其特征在于:所述第一階段的加密訓(xùn)練協(xié)議,具體步驟包括:設(shè)當(dāng)前為第t輪,上一輪訓(xùn)練出了全局模型θ
(t
?
1)
,訓(xùn)練超參數(shù)為φ,加解密公鑰pk,私鑰sk,希望輸出本輪模型θ
(t)
,對(duì)于客戶端,第i個(gè)客戶端進(jìn)行第一階段協(xié)議的訓(xùn)練過(guò)程,D
i
為其數(shù)據(jù)集或其子集,所述客戶端i第一階段協(xié)議的過(guò)程包括:1.客戶端在本地訓(xùn)練出的新模型2.模型由模型的參數(shù)決定,這里對(duì)參數(shù)進(jìn)行壓縮編碼;3.使用公鑰加密得到4.向服務(wù)端發(fā)送5.從服務(wù)端接收Enc(m
(t)
,pk)6.使用私鑰解密得到m
(t)
←
Dec(Enc(m
(t)
,pk),sk)7.對(duì)壓縮參數(shù)解碼得到θ
(t)
←
Decode(m
(t)
);所述服務(wù)端進(jìn)行第一階段協(xié)議的過(guò)程包括:1.收集第i個(gè)客戶端上傳的i=1,2,...,N2.采用同態(tài)加密加法對(duì)密文聚合,3.Enc(m
(t)
,pk):向各個(gè)客戶端發(fā)送聚合后的密文。3.根據(jù)權(quán)利要求1所述的密文明文混合學(xué)習(xí)模式的安全聯(lián)邦學(xué)習(xí)方法,其特征在于:所述第二階段協(xié)議設(shè)所有參數(shù)都是由K bit位的定點(diǎn)數(shù)組成,將高K
high
位bit視為參數(shù)的高位,剩余的K
low
=K
?
K
high bit位被看作低位;設(shè)對(duì)于每個(gè)K bit的參數(shù)ω其高位和地位分別為ω
high
,ω
low
,那么ω表示為簡(jiǎn)化為ω=[ω
high
,ω
low
];設(shè)當(dāng)前位第t輪,上一輪得到的全局模型為θ
(t
?
1)
,訓(xùn)練超參數(shù)為φ,加解密公鑰pk,私鑰sk,輸出本輪模型θ
(t)
。
4.根據(jù)權(quán)利要求3所述的密文明文混合學(xué)習(xí)模式的安全聯(lián)邦學(xué)習(xí)方法,其特征在于:所述第二階段協(xié)議的部分明文訓(xùn)練協(xié)議包括如下步驟:1)收集各客戶端的高低位參數(shù);設(shè)服務(wù)端希望收集的高低位統(tǒng)計(jì)值分別為s,l;對(duì)于客戶端i:1.客戶端在本地訓(xùn)練出的新模型2.取出高位3.3.用hash函數(shù)對(duì)高位加密以讓服務(wù)端得到相同高位的客戶端數(shù)量;4.低位直接傳給服務(wù)端,不暴露參數(shù);5.向服務(wù)端發(fā)送h
i
,l
i
;對(duì)于服務(wù)端:收集來(lái)自客戶端的高低位統(tǒng)計(jì)值:h
←
(h1,h2,...,h
N
),l
←
(l1,l2,...,l
N
)分參數(shù)統(tǒng)計(jì)hash值:s
j
←
(h
1,j
,h
2,j
,...,h
N,j
),j=1,2,...,ms
←
(s1,s2,...,s
m
)2)確定各參數(shù)高位的代表;采用獨(dú)立選取或者top
?
K選取方式,讓服務(wù)端得到第j個(gè)參數(shù)的代表,并用Sel
i
表示第i個(gè)客戶端代表的...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:毛云龍,楊軒麟,張?zhí)炝?/a>,仲盛,
申請(qǐng)(專利權(quán))人:南京大學(xué),
類型:發(fā)明
國(guó)別省市:
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。