本發(fā)明涉及異構(gòu)性自適應(yīng)量化、隱私保護(hù)和聯(lián)邦學(xué)習(xí),尤其涉及一種異構(gòu)性自適應(yīng)量化的隱私保護(hù)的聯(lián)邦學(xué)習(xí)方法。
背景技術(shù):
1、隨著深度神經(jīng)網(wǎng)絡(luò)在智能設(shè)備上的普及,邊緣設(shè)備也產(chǎn)生了大量的數(shù)據(jù),為了利用這些數(shù)據(jù)傳統(tǒng)方法是將數(shù)據(jù)上傳到云端進(jìn)行訓(xùn)練,但是會(huì)帶來(lái)隱私泄露的風(fēng)險(xiǎn),所以運(yùn)用聯(lián)邦學(xué)習(xí)來(lái)保護(hù)隱私。聯(lián)邦學(xué)習(xí)使得地理上分散的邊緣設(shè)備學(xué)習(xí)模型但不泄露隱私的機(jī)器學(xué)習(xí)方法也是一種分布式機(jī)器學(xué)習(xí)方法,其數(shù)據(jù)分布在大量的移動(dòng)用戶設(shè)備上,各參與方只要將梯度上傳給中央服務(wù)器,但在每輪訓(xùn)練中上傳和下載梯度的通信開(kāi)銷(xiāo)可能都非常高,尤其在無(wú)線帶寬有限的邊緣設(shè)備中更為嚴(yán)重,這就導(dǎo)致在模型訓(xùn)練中面臨著通信問(wèn)題和因?yàn)閰⑴c方數(shù)據(jù)分布不均、計(jì)算能力不同而造成的異構(gòu)性問(wèn)題。
2、現(xiàn)有的大多數(shù)解決通信問(wèn)題方法:(1)允許每個(gè)用戶執(zhí)行多次本地更新來(lái)減少通信負(fù)載。通過(guò)降低用戶與服務(wù)器之間的通信頻率,來(lái)減少通信開(kāi)銷(xiāo)和降低網(wǎng)絡(luò)負(fù)擔(dān)。但是如果處理復(fù)雜的深度學(xué)習(xí)時(shí),即使通信的頻率下降,但是每次更新的模型參數(shù)數(shù)量龐大,依然無(wú)法解決通信開(kāi)銷(xiāo)大的問(wèn)題。(2)通過(guò)壓縮技術(shù)減少用戶每個(gè)訓(xùn)練輪次中傳輸?shù)臄?shù)據(jù)量,即通過(guò)梯度壓縮來(lái)減少傳輸中的數(shù)據(jù)量。但是壓縮方法會(huì)引入的隨機(jī)性和近似性,影響模型的收斂性能和精度,所有需要慎重選擇量化級(jí)別,但是現(xiàn)有的梯度量化算法在訓(xùn)練過(guò)程中主要是依賴于固定和預(yù)定好的量化,但實(shí)際中的聯(lián)邦學(xué)習(xí)任務(wù)在收斂時(shí)間,通信代價(jià)和網(wǎng)絡(luò)條件等方面具有不同的特征,并且在不同時(shí)間的最佳的量化等級(jí)不同,所以需要根據(jù)訓(xùn)練輪次自適應(yīng)地調(diào)整量化等級(jí)。
3、現(xiàn)有的研究要么通過(guò)減少用戶和服務(wù)器之間的通信頻率,要么通過(guò)壓縮梯度來(lái)減少通信開(kāi)銷(xiāo),但是不適用于高維模型,會(huì)降低模型的精度和影響模型的收斂性能。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的是提供一種異構(gòu)自適應(yīng)量化隱私保護(hù)的聯(lián)邦學(xué)習(xí),根據(jù)訓(xùn)練過(guò)程中梯度范數(shù)的變化動(dòng)態(tài)調(diào)整量化等級(jí),從而達(dá)到精度和減少通信時(shí)間之間達(dá)到平衡,同時(shí)為慢節(jié)點(diǎn)分配較低的量化等級(jí),可以減少等待時(shí)間,從而達(dá)到總訓(xùn)練時(shí)間最短。通過(guò)量化解決通信問(wèn)題,在通過(guò)布爾共享和diffie-hellman密鑰交換協(xié)議來(lái)保護(hù)梯度的隱私,服務(wù)器根據(jù)布爾轉(zhuǎn)算術(shù)共享實(shí)現(xiàn)對(duì)參與者的梯度聚合。
2、為了實(shí)現(xiàn)上述的發(fā)明目的,本發(fā)明采用技術(shù)方案具體為:一種異構(gòu)自適應(yīng)量化隱私保護(hù)的聯(lián)邦學(xué)習(xí)方法,包括以下步驟
3、s10、系統(tǒng)初始化階段,系統(tǒng)管理員sm構(gòu)建系統(tǒng)平臺(tái),生成公共的系統(tǒng)參數(shù)pp,公開(kāi)發(fā)布pp和聯(lián)邦學(xué)習(xí)的相關(guān)參數(shù)fp;每個(gè)用戶、服務(wù)器a和b利用公共參數(shù),生成自己的公鑰與私鑰對(duì);用戶在平臺(tái)上申請(qǐng)參與訓(xùn)練某些聯(lián)邦學(xué)習(xí)任務(wù),將所有用戶的量化等級(jí)si,0初始化s0,初始每個(gè)用戶的初始模型向量wi,0=w0;
4、s20、用戶更新本地模型階段,每個(gè)用戶ci用服務(wù)器a發(fā)來(lái)的全局聚合梯度gk更新本地模型權(quán)重wi,k+1,并根據(jù)收到的量化等級(jí)si,k和輔助量化s'i,k進(jìn)行量化得到梯度g'i,k和g”i,k,根據(jù)量化后梯度更新模型參數(shù)為w'i和w”i,在本地測(cè)試集上通過(guò)模型參數(shù)w'i和w”i預(yù)測(cè)出損失值li,k和l'i,k;將根據(jù)量化等級(jí)和輔助量化等級(jí)計(jì)算出來(lái)的損失值li,k,l'i,k,下載時(shí)間dti,k,計(jì)算時(shí)間cti,k,通信時(shí)間mti,k發(fā)送給服務(wù)器用于計(jì)算下一輪的量化等級(jí);
5、s30、服務(wù)器a計(jì)算量化等級(jí),收到來(lái)自所有用戶的損失值li,k,l'i,k,下載時(shí)間dti,k,計(jì)算時(shí)間cti,k和通信時(shí)間mti,k,估計(jì)兩個(gè)損失下降率rk,r'k,計(jì)算損失函數(shù)的導(dǎo)數(shù)來(lái)確定第k+1輪的量化等級(jí)sk+1的更新方向,根據(jù)聚合梯度的梯度范數(shù)進(jìn)一步調(diào)整量化等級(jí)sk+1;服務(wù)器a通過(guò)估計(jì)各用戶的計(jì)算時(shí)間和通信時(shí)間,對(duì)每個(gè)用戶分配適當(dāng)?shù)牧炕粩?shù)bi,k+1,使得所有用戶的本地訓(xùn)練時(shí)間相等;
6、s40、用戶計(jì)算量化梯度,收到服務(wù)器a發(fā)來(lái)的si,k+1執(zhí)行梯度量化,將梯度gi,k+1進(jìn)行量化為與其范數(shù)和符號(hào)向量構(gòu)成三元組并將本輪次的下載時(shí)間dti,k+1,計(jì)算時(shí)間cti,k+1,通信時(shí)間mti,k+1保留下來(lái);
7、s50、用戶保護(hù)梯度隱私,每個(gè)用戶獲得服務(wù)器a,b的公鑰,并與自己的私鑰計(jì)算出和服務(wù)器之間的會(huì)話密鑰,將這兩個(gè)會(huì)話密鑰輸入到偽隨機(jī)生成器中,生成兩個(gè)隨機(jī)數(shù),并將兩個(gè)隨機(jī)數(shù)與量化梯度qsi,k+1(gi,k+1)進(jìn)行異或運(yùn)算,計(jì)算出盲化后的量化梯度然后將其符號(hào)位和范數(shù)構(gòu)成三元組之后發(fā)送給服務(wù)器a;
8、s60、服務(wù)器計(jì)算布爾共享,服務(wù)器a收到用戶發(fā)來(lái)的三元組根據(jù)每個(gè)用戶的量化等級(jí),驗(yàn)證量化梯度是否完整,如果完整就將(||gi,k+1||2,σi,k+1)發(fā)送給服務(wù)器b,否則就丟棄,服務(wù)器a利用自己的私鑰和通過(guò)驗(yàn)證的用戶公鑰計(jì)算相應(yīng)的會(huì)話密鑰,并放入隨機(jī)生成器中得到二進(jìn)制隨機(jī)數(shù),將該二進(jìn)制隨機(jī)數(shù)與盲化量化梯度進(jìn)行異或運(yùn)算得到布爾共享向量服務(wù)器b利用自己的私鑰和通過(guò)驗(yàn)證的用戶公鑰,計(jì)算出相應(yīng)的會(huì)話密鑰,將會(huì)話密鑰放入隨機(jī)生成器中得到二進(jìn)制數(shù),即布爾共享值hi,2;
9、s70、服務(wù)器將布爾共享到算術(shù)共享的轉(zhuǎn)換,服務(wù)器a和b通過(guò)生成公鑰和密文,使用不經(jīng)意傳輸計(jì)算相應(yīng)的雙重驗(yàn)證位進(jìn)行布爾共享值的轉(zhuǎn)換,服務(wù)器a和b分別將布爾共享值轉(zhuǎn)換為算術(shù)共享值,并通過(guò)交換計(jì)算結(jié)果完成每個(gè)位的轉(zhuǎn)換,最終生成用戶的算術(shù)共享向量;
10、s80、計(jì)算全局模型參數(shù)和輔助量化等級(jí)階段,服務(wù)器a和b將用戶的符號(hào)向量組成一個(gè)符號(hào)矩陣,算術(shù)共享組成算術(shù)共享矩陣,利用算術(shù)共享矩陣、符號(hào)矩陣、計(jì)算出各自的聚合向量;服務(wù)器b將自己的聚合向量發(fā)送給服務(wù)器a;a利用b的聚合向量,計(jì)算出全局聚合梯度,并用其計(jì)算出全局模型參數(shù)wk+1,在根據(jù)s40中得到的量化等級(jí)計(jì)算出輔助量化等級(jí)并將輔助量化等級(jí)s'i,k+1發(fā)給相應(yīng)用戶,同時(shí)將本輪的全局聚合梯度和全局模型參數(shù)給所有用戶;
11、s90、模型訓(xùn)練階段,當(dāng)模型訓(xùn)練輪次k≤t,用戶ci重復(fù)執(zhí)行步驟s20到步驟s80,否則用戶結(jié)束次聯(lián)邦學(xué)習(xí)任務(wù),系統(tǒng)管理員sm和所有用戶都獲得最終的全局聚合梯度gt和全局模型參數(shù)wt。
12、進(jìn)一步地,所述步驟s10包括:
13、s101、系統(tǒng)管理員構(gòu)建平臺(tái),所有參與者與聚合服務(wù)器進(jìn)行注冊(cè),系統(tǒng)管理者選擇一個(gè)素?cái)?shù)p和一個(gè)隨機(jī)數(shù)f∈zp*,zp*={1,2,…,p-1},設(shè)置所有用戶的初始量化等級(jí)為s0,用戶初始模型參數(shù)為w0,一個(gè)縮放因子λ,選擇一個(gè)偽隨機(jī)生成器prg(.),得到系統(tǒng)公共參數(shù)pp={p,f,prg(.)},將系統(tǒng)公共參數(shù)pp和聯(lián)邦學(xué)習(xí)任務(wù)的相關(guān)參數(shù)fp={s0,w0,λ}發(fā)布在一個(gè)公告欄里;
14、s102、假定第i個(gè)參與聯(lián)邦學(xué)習(xí)任務(wù)的用戶為ci,ci選擇一個(gè)隨機(jī)數(shù)ri∈zp*,將ri作為其私鑰ski并秘密保存,計(jì)算公鑰得到一對(duì)公私鑰(pki,ski);
15、s103、服務(wù)器a選擇一個(gè)隨機(jī)數(shù)ra∈zp*,將ra作為服務(wù)器a的私鑰ask,計(jì)算公鑰得到一對(duì)公私鑰(ask,apk),服務(wù)器b選擇一個(gè)隨機(jī)數(shù)rb∈zp*,將rb作為其私鑰bsk,計(jì)算公鑰得到一對(duì)公私鑰(bsk,bpk),服務(wù)器和用戶利用其公私鑰對(duì)構(gòu)建一個(gè)安全的數(shù)據(jù)傳輸信道。
16、進(jìn)一步地,所示步驟s20包括:
17、s201、假定用戶ci執(zhí)行第k+1輪(0≤k≤t),當(dāng)k=0時(shí),獲得系統(tǒng)模型參數(shù)w0,k>0時(shí),用戶獲得全局聚合梯度gk,wi,k是第k輪的模型參數(shù),a廣播的全局聚合梯度為gk,ci接受到gk后更新本地模型參數(shù)wi,k+1=wk-ηgk;
18、s202、假定qs(·)為隨機(jī)均勻量化函數(shù),量化等級(jí)s∈n={1,2,…},符號(hào)函數(shù)sgn(x)∈{0,1},當(dāng)x≥0時(shí),sgn(x)=0,當(dāng)x<0時(shí),sgn(x)=1,即當(dāng)x為非負(fù)數(shù)時(shí),sgn(x)輸出比特0,當(dāng)x為負(fù)數(shù)時(shí),sgn(x)輸出比特1;ζ(v,s)為概率函數(shù),v=(v1,v2,…vd)∈r且v≠0,存在一個(gè)整數(shù)l(0≤l<s)使得|vj|/||v||2∈[l/s,(l+1)/s],定義概率函數(shù)ζ(v,s)→{l/s,(l+1)/s},該函數(shù)以1-(s·|vj|/||v||2+l)的概率值等于l/s,以s·|vj|/||v||2+l的概率值等于(l+1)/s,j=1,2,…,d。損失函數(shù)其中w為模型參數(shù),lh(w)是數(shù)據(jù)樣本h的損失值,d是數(shù)據(jù)樣本數(shù)量。
19、s203、假定si,k是ci第k輪的量化等級(jí),s'i,k是輔助量化等級(jí),||gk||2為gk的二范數(shù),ci對(duì)gk的每個(gè)分量用si,k進(jìn)行量化,gk,j=qsi,k(gk,j)=||gk||2·sgn(gk,j)·ζ(gk,si,k),其中0≤j≤d,所以量化得g'i,k=(gk,1,gk,2,…,gk,d);ci對(duì)gk的每個(gè)分量用s'i,k進(jìn)行量化,g'k,j=qs'i,k(gk,j)=||gk||2·sgn(gk,j)·ζ(gk,si,k),所以量化得g”i,k=(g'k,1,g'k,2,…,g'k,d),用量化梯度g'i,k更新模型參數(shù)w'i=wk-ηg'i,k和w”i=wk-ηg”i,k,并用兩個(gè)模型參數(shù)分別計(jì)算出在本地測(cè)試集上對(duì)應(yīng)的損失值li,k=l(w'i),l'i,k=l(w”i);
20、s204、用戶ci將li,k,l'i,k,本輪下載參數(shù)所用時(shí)間dti,k,本地計(jì)算時(shí)間cti,k和通信時(shí)間mti,k發(fā)送給a;
21、s205、假設(shè)g(w)是模型參數(shù)w的梯度,為用戶ci在本地訓(xùn)練數(shù)據(jù)上進(jìn)行隨機(jī)梯度下降進(jìn)一步優(yōu)化模型參數(shù)wi,k+1=wi,k-ηg(wi,k),并保留梯度值gi,k+1=g(wi,k+1)。
22、進(jìn)一步地,所示步驟s30包括:
23、s301、服務(wù)器a接受到所有用戶發(fā)送的損失值后,計(jì)算出平均損失值和輔助用戶損失值
24、s302、服務(wù)器a通過(guò)在第k輪保存的模型參數(shù)和梯度,計(jì)算出真實(shí)的lk-1;
25、s303、服務(wù)器a估計(jì)第k輪用戶在量化等級(jí)sk和輔助量化等級(jí)s'k下量化梯度時(shí)的平均時(shí)間tk-1,k和輔助平均時(shí)間t'k-1,k,其中stk是服務(wù)器第k輪的花銷(xiāo)時(shí)間,所以服務(wù)器a計(jì)算出用戶在不同的量化等級(jí)下的量化位數(shù)估算出在輔助量化等級(jí)下的通信時(shí)間mt′i,k=b′i,k/bi,kmti,k,計(jì)算出
26、s304、a計(jì)算兩個(gè)損失下降率通過(guò)獲得導(dǎo)數(shù)符號(hào),將sk更新到符號(hào)的相反方向,如果第k+1輪的初始量化等級(jí)如果得到服務(wù)器a計(jì)算出k輪全局聚合梯度gk的范數(shù)||gk||,并通過(guò)梯度范數(shù)計(jì)算出第k+1輪最終量化等級(jí)
27、s305、假設(shè)yi,k是用戶ci第k+1輪的傳輸時(shí)間系數(shù),bi,k+1為用戶ci的量化位數(shù),a根據(jù)前k輪用戶ci的本地計(jì)算時(shí)間cti,k估計(jì)出k+1輪的本地計(jì)算時(shí)間通信時(shí)間用第k輪的通信時(shí)間進(jìn)行估算,其中傳輸時(shí)間系數(shù)yi,k=mti,k/bi,k,a計(jì)算ci的本地訓(xùn)練時(shí)間ti,k+1=cti,k+1+mti,k+1≈cti,k+1+bi,k+1×yi,k+1,由于任意兩個(gè)用戶ci和cj量化位數(shù)bi,k+1,bj,k+1滿足bj,k+1=1/yj,k(cti,k+1-ctj,k+1+bi,k+1×yi,k+1),通過(guò)分配量化位數(shù)使得n個(gè)用戶本地訓(xùn)練時(shí)間滿足t1,k+1=t2,k+1=…=tn,k+1,且所以假設(shè)用戶ci的量化等級(jí)si,k+1=sk+1并且則依此計(jì)算第k+1輪的出量化等級(jí)發(fā)送給每個(gè)用戶。
28、進(jìn)一步地,所示步驟s40包括:
29、s401、用戶ci收到來(lái)自服務(wù)器a發(fā)來(lái)的量化等級(jí)si,k+1,令gi,j,k+1是梯度gi,k+1的第j個(gè)分量1≤j≤d,令符號(hào)函數(shù)sgn(x)∈{0,1},當(dāng)x≥0時(shí),sgn(x)=0,當(dāng)x<0時(shí),sgn(x)=1,即當(dāng)x為非負(fù)數(shù)時(shí),sgn(x)輸出比特0,當(dāng)x為負(fù)數(shù)時(shí),sgn(x)輸出比特1;
30、s402、用戶ci利用符號(hào)函數(shù)sgn(x),對(duì)梯度向量gi,k+1的每個(gè)分量計(jì)算相應(yīng)的符號(hào)值σi,j,k+1=sgn(gi,j,k+1),得到向量gi,k+1的符號(hào)向量σi,k+1=(σi,1,k+1,σi,2,k+1,…,σi,d,k+1);
31、s403、用戶ci計(jì)算出本輪的梯度范數(shù)||gi,k+1||2,并計(jì)算每個(gè)梯度分類gi,j,k+1的絕對(duì)值|gi,j,k+1|,將區(qū)間[0,||gi,k+1||2]區(qū)間劃分為si,k+1-1個(gè)等長(zhǎng)區(qū)間,即0=τ0<τ1<τ2<…<τsi,k+1=||gi,k+1||2,當(dāng)梯度gi,j,k+1在區(qū)間[τi,τi+1)中,其落在τi端點(diǎn)的概率為p=1-(|gi,j,k+1|-τi)/(τi+1-τi),落在τi+1的概率為(1-p),所以每個(gè)梯度分量被量化為得到量化的梯度構(gòu)成一個(gè)三元組每個(gè)分量的長(zhǎng)度為
32、s404、用戶ci將本輪次的下載時(shí)間dti,k+1,計(jì)算時(shí)間cti,k+1,通信時(shí)間保留下來(lái)mti,k+1。
33、進(jìn)一步地,所示步驟s50包括:
34、s501、用戶ci用自己的私鑰ski分別和服務(wù)器a,b的公鑰apk和bpk計(jì)算隨機(jī)數(shù)再使用偽隨機(jī)生成器prg(.),生成兩個(gè)長(zhǎng)度為li的隨機(jī)二進(jìn)制位hi,a=prg(ri,a)和hi,b=prg(ri,b);
35、s502、對(duì)量化的梯度向量的每個(gè)分量進(jìn)行盲化進(jìn)而進(jìn)行隱私保護(hù),即構(gòu)成盲化得到三元組并將其發(fā)給服務(wù)器a。
36、進(jìn)一步地,所示步驟s60包括:
37、s601、服務(wù)器a收到三元組驗(yàn)證的二進(jìn)制長(zhǎng)度是否為d·li,和||gi,k+1||2是否大于零;如果的長(zhǎng)度等于d·li且||gi,k+1||2大于零,則將(||gi,k+1||2,σi,k+1)發(fā)送給服務(wù)器b,否則丟棄;
38、s602、服務(wù)器a用其私鑰ask和用戶的公鑰pki,計(jì)算出隨機(jī)數(shù)將ri,a放入偽隨機(jī)生成器prg(.),并生成隨機(jī)二進(jìn)制位hi,a=prg(ri,a),接著對(duì)盲化梯度的每個(gè)分量進(jìn)行布爾變換得到布爾共享向量
39、s603、服務(wù)器b接受到(||gi,k+1||2,σi,k+1),利用其私鑰bsk和用戶的公鑰pki計(jì)算出隨機(jī)數(shù)并放入偽隨機(jī)生成器prg(.),得到長(zhǎng)度為li的二進(jìn)制隨機(jī)數(shù)hi,b=prg(ri,b)。
40、進(jìn)一步地,所示步驟s70包括:
41、s701、服務(wù)器a選取一個(gè)隨機(jī)比特b1∈{1,0}和兩個(gè)隨機(jī)數(shù)z,c∈zp*,并將c發(fā)給服務(wù)器b,b也選取一個(gè)隨機(jī)比特b2∈{1,0},并選擇一個(gè)隨機(jī)的公私鑰對(duì)(pk,sk),令pk'=c-pk,當(dāng)b2=1時(shí),令pk1*=pk',pk2*=pk,當(dāng)b2=0時(shí),令pk1*=pk,pk2*=pk',并將公鑰對(duì)(pk1*,pk2*)給服務(wù)器a;
42、s702、a收到公鑰對(duì)(pk1*,pk2*),計(jì)算密文(e1,e2)=(enc(z,pk1*),enc(z+b1,pk2*)),并將該密文(e1,e2)發(fā)送給b,b接受到密文(e1,e2)后,當(dāng)b2=1時(shí),用sk解密e2:
43、dec(e2,sk)=dec(enc(z+b1,pk2*),sk)=dec(enc(z+b1,pk),sk)=z+b1,否則b2=0時(shí),用sk解密e1:dec(e1,sk)=dec(enc(z,pk1*),sk)=dec(enc(z,pk),sk)=z,b只能得到z,z+b1中的一個(gè),則令a=z+b1b2(mod?p);
44、s703、a計(jì)算b1'=b1+2z(mod?p),即將布爾共享b1轉(zhuǎn)換為對(duì)應(yīng)的算術(shù)共享b1',生成一個(gè)雙重驗(yàn)證位(b1,b1')。服務(wù)器b計(jì)算b2'=b2-2a(mod?p)=b2-2z-2b1b2(mod?p),即將布爾共享b2轉(zhuǎn)換為對(duì)應(yīng)的算術(shù)共享b2',并生成一個(gè)雙重驗(yàn)證位(b2,b2')。由于所以兩個(gè)服務(wù)器之間執(zhí)行s701到s703就可以實(shí)現(xiàn)將布爾共享b1,b2轉(zhuǎn)換為相應(yīng)的算術(shù)共享b1'和b2';
45、s704、由于是向量的第j個(gè)分量,為將長(zhǎng)度為libit的布爾共享值轉(zhuǎn)換為對(duì)應(yīng)的算術(shù)共享值,服務(wù)器a需要li個(gè)雙重驗(yàn)證位,令(b1,t,b1,t')是的第t個(gè)雙重驗(yàn)證位(1≤t≤li),a執(zhí)行步驟s701到s703,將每個(gè)布爾共享b1,t轉(zhuǎn)化為對(duì)應(yīng)的算術(shù)共享b1,t';服務(wù)器b令(b2,t,b2,t')是hi,b的第t個(gè)雙重驗(yàn)證位(1≤t≤li),為將長(zhǎng)度為li的布爾共享值hi,b轉(zhuǎn)換為對(duì)應(yīng)的算術(shù)共享值,b執(zhí)行步驟s701到s703,將每個(gè)布爾共享b2,t轉(zhuǎn)化為對(duì)應(yīng)的算術(shù)共享b2,t';
46、s705、令是向量的第t個(gè)二進(jìn)制位,hi,b,t是布爾值hi,b的第t個(gè)二進(jìn)制位(1≤t≤li),服務(wù)器a利用雙重驗(yàn)證位(b1,t,b1,t')和布爾共享位計(jì)算把v1發(fā)送給b;服務(wù)器b利用一個(gè)雙重驗(yàn)證位(b2,t,b2,t')和一個(gè)布爾共享位hi,b,t∈{0,1},計(jì)算把v2發(fā)送給a;a和b分別計(jì)算出a得到第t位的算術(shù)共享值g′i,j,t,k+1=v+b1,t'-2vb1,t'(mod?p),b得到第t位的算術(shù)共享值h′i,j,t=b2,t'-2vb2,t'(mod?p);因?yàn)榭梢杂?jì)算出服務(wù)器a和b實(shí)現(xiàn)了對(duì)單比特的布爾共享到相應(yīng)算術(shù)共享的轉(zhuǎn)換;
47、s706、a利用每個(gè)算術(shù)共享值g′i,j,t,k+1(1≤t≤li)計(jì)算計(jì)算出用戶ci的算術(shù)共享向量g′i,k+1=(g′i,1,k+1,g′i,2,k+1,…,g′i,d,k+1);b將每一位算術(shù)共享值h′i,j,t(1≤t≤li),計(jì)算出用戶ci的算術(shù)共享向量h′i=(h′i,1,h′i,2,…,h′i,d)。
48、進(jìn)一步地,所示步驟s80包括:
49、s801、服務(wù)器a與用戶ci的算術(shù)共享向量g′i,k+1組成一個(gè)n行d列的算術(shù)共享矩陣gn×d,1≤i≤n;服務(wù)器b與用戶ci的算術(shù)共享向量h′i組成一個(gè)n行d列的算術(shù)共享矩陣hn×d,1≤i≤m;a將n個(gè)用戶的符號(hào)向量σi,k+1=(σi,1,k+1,σi,2,k+1,…,σi,d,k+1),構(gòu)成一個(gè)n行d列的符號(hào)矩陣fn×d,令fj表示符號(hào)矩陣fn×d的第j列,令gj表示算術(shù)共享矩陣gn×d的第j列;
50、s802、對(duì)于1≤j≤d,當(dāng)fj中符號(hào)位σi,j,k+1=0時(shí),1≤i≤n,服務(wù)器a利用gj列中對(duì)應(yīng)分量,計(jì)算當(dāng)fj中符號(hào)位σi,j,k+1=1時(shí),1≤i≤n,計(jì)算得到兩個(gè)向量g1+=(g1,1+,g1,2+,…,g1,d+)和g1-=(g1,1-,g1,2-,…,g1,d-);其中,向量g1+是gj列中的相應(yīng)分量所有正數(shù)的和組成的向量,向量g1-是gj列中的相應(yīng)分量所有負(fù)數(shù)的和組成的向量;
51、s803、服務(wù)器b將n個(gè)參與者的符號(hào)向量σi,k+1=(σi,1,k+1,σi,2,k+1,…,σi,d,k+1),構(gòu)成一個(gè)n行d列的符號(hào)矩陣fn×d,其中fj是符號(hào)矩陣fn×d的第j列,令hj表示算術(shù)共享矩陣hn×d的第j列;對(duì)于1≤j≤d,當(dāng)fj中符號(hào)位σi,d,k+1=0時(shí),1≤i≤n,服務(wù)器b利用hj列中對(duì)應(yīng)分量,計(jì)算當(dāng)fj中符號(hào)位σi,j=1時(shí),1≤i≤m,計(jì)算得到兩個(gè)向量g2+=(g2,1+,g2,2+,…,g2,d+)和g2-=(g2,1-,g2,2-,…,g2,d-),并將g2+和g2-發(fā)送給a;其中,向量g2+是hj列中的相應(yīng)分量所有正數(shù)的和組成的向量,向量g2-是hj列中的相應(yīng)分量所有負(fù)數(shù)的和組成的向量;
52、s804、服務(wù)器a由向量g1+,g2+,g1-和g2-的每個(gè)分量以及縮放因子λ,計(jì)算:
53、gj+=(g1,j++g2,j+mod?p)/10λ,
54、gj-=(g1,j-+g2,j-mod?p)/10λ,
55、得到兩個(gè)向量g+=(g1+,g2+,…,gd+)和向量g-=(g1-,g1-,…,gd-);服務(wù)器a計(jì)算并更新全局聚合梯度:gk+1=gk+(g+-g-)/n。
56、s805、a用gk+1更新全局模型參數(shù)wk+1=wk-ηgk+1。
57、s806、服務(wù)器a根據(jù)在s30中獲得的量化等級(jí)sk+1,通過(guò)獲得輔助量化等級(jí)s'k+1,并根據(jù)步驟s305,將輔助量化等級(jí)s'k+1分配給每個(gè)用戶;
58、s807、a將gk+1和wk+1發(fā)給每個(gè)用戶。
59、進(jìn)一步地,所示步驟s90包括:
60、s901、當(dāng)模型訓(xùn)練輪次k≤t,用戶ci重復(fù)執(zhí)行步驟s20到步驟s90,否則用戶結(jié)束次聯(lián)邦學(xué)習(xí)任務(wù),系統(tǒng)管理員sm和所有用戶都獲得最終的全局聚合梯度gt和全局模型參數(shù)wt。
61、表1給出本發(fā)明中符號(hào)說(shuō)明
62、
63、
64、
65、
66、與現(xiàn)有的技術(shù)相比,本發(fā)明的有益效果為:
67、(1)本發(fā)明提供的是一種異構(gòu)自適應(yīng)量化隱私保護(hù)的聯(lián)邦學(xué)習(xí)方法,服務(wù)器通過(guò)上一輪的模型損失度進(jìn)行推測(cè)本輪的量化等級(jí),并且根據(jù)每個(gè)用戶的不同的計(jì)算能力和通信能力分配相應(yīng)的量化等級(jí),達(dá)到能夠解決服務(wù)器等待時(shí)間過(guò)長(zhǎng)導(dǎo)致的總時(shí)間開(kāi)銷(xiāo)大的問(wèn)題,并且通過(guò)量化技術(shù),解決通信瓶頸的問(wèn)題,能夠在聯(lián)邦學(xué)習(xí)中快速的訓(xùn)練出模型。
68、(2)本發(fā)明提供的是一種異構(gòu)自適應(yīng)量化隱私保護(hù)的聯(lián)邦學(xué)習(xí)方法,利用diffie-hellman密鑰交換協(xié)議建立了一個(gè)安全的通信信道,并結(jié)合布爾共享對(duì)用戶的梯度進(jìn)行盲化,能夠很好地保護(hù)用戶的隱私,因?yàn)槭褂玫氖禽p量級(jí)的布爾運(yùn)算所以不增加用戶的通信開(kāi)銷(xiāo)。
69、(3)本發(fā)明提供的是一種異構(gòu)自適應(yīng)量化隱私保護(hù)的聯(lián)邦學(xué)習(xí)方法,服務(wù)器之間通過(guò)不經(jīng)意傳輸?shù)姆椒?,將各服?wù)器擁有的布爾共享轉(zhuǎn)換為算術(shù)共享,服務(wù)器在用算術(shù)共享來(lái)進(jìn)行全局模型的聚合。
70、(4)本發(fā)明可以通過(guò)當(dāng)前的訓(xùn)練損失動(dòng)態(tài)地調(diào)整量化級(jí)別和根據(jù)不同設(shè)備的通信能力,分配相應(yīng)地量化等級(jí),達(dá)到解決異構(gòu)性的問(wèn)題。