一、概要
目前现存算法的三个局限性:
- 理论上的可信三方现实不存在,通常是联邦学习的主要瓶颈。
- 通信和计算成本随着迭代次数的提升,增长很快。
- 扩展性不好,隐私保护的最优模型在两方和多方中不兼容。
本文提出一个没有第三方的联邦学习LR算法,使用同态加密计算,该算法允许多方模型训练,并保证数据隐私。使用泰勒展开式作为梯度的近似形式和使用最小批量SGD更新参数训练模型。
二、模型详情
1、推导逻辑回归模型:
P(y=1∣X)=11+e−wTx
P(y=1|X)=\frac{1}{1+e^{-w^Tx}}
P(y=1∣X)=1+e−wTx1
通过将y标转换成{-1,1},可以得到似然函数如下:
L(w)=∏i=1m(11+e−yiwTx)
L(w)=\prod_{i=1}^m(\frac{1}{1+e^{-y_iw^Tx}})
L(w)=i=1∏m(1+e−yiwTx1)
取对数,得到log损失函数:
J(w)=−1mln(L(w))=1m∑i=1mln(1+e−yiwTx)
J(w) = -\frac{1}{m}ln(L(w))=\frac{1}{m}\sum_{i=1}^mln(1+e^{-y_iw^Tx})
J(w)=−m1ln(L(w))=m1i=1∑mln(1+e−yiwTx)
加密后的安全loss:
J(w)=1m∑i=1mln(1+e[[−yiwTx]])
J(w) = \frac{1}{m}\sum_{i=1}^mln(1+e^{[[-y_iw^Tx]]})
J(w)=m1i=1∑mln(1+e[[−yiwTx]])
对ln(1+e−z)ln(1+e^{-z})ln(1+e−z)进行在0处的泰勒展开:
ln(1+e−z)≈ln2−12z+18z2
ln(1+e^{-z}) \approx ln2-\frac{1}{2}z+\frac{1}{8}z^2
ln(1+e−z)≈ln2−21z+81z2
将其带入loss函数:
J(w)≈1m∑i=1m(ln2−12yiwTx+18(wTx)2)
J(w) \approx \frac{1}{m}\sum_{i=1}^m(ln2-\frac{1}{2}y_iw^Tx+\frac{1}{8}(w^Tx)^2)
J(w)≈m1i=1∑m(ln2−21yiwTx+81(wTx)2)
最后得到梯度:
gwj=1m∑i=1m(−12yi+14(wTxi))xij
g_{w_j}=\frac{1}{m}\sum_{i=1}^m(-\frac{1}{2}y_i+\frac{1}{4}(w^Tx_i))x_i^j
gwj=m1i=1∑m(−21yi+41(wTxi))xij
加密计算公式:
gwj=1m∑i=1m([[−12yi+14(wTxi)]])xij
g_{w_j}=\frac{1}{m}\sum_{i=1}^m([[-\frac{1}{2}y_i+\frac{1}{4}(w^Tx_i)]])x_i^j
gwj=m1i=1∑m([[−21yi+41(wTxi)]])xij
2、模型训练过程:
假设各方为A,Bs,C,其中Bs为可以扩展为多方的设计,A方生成密钥对,并将公钥发送给Bs和C。
各方计算本方的[y][y][y]:
C接收各方发送的[y]的[y]的[y],并作如下计算:
B接收[yforward][y_{forward}][yforward]计算[gBs+RBs][g_{Bs}+R_{Bs}][gBs+RBs]发送给A。
A接收B和C发送的[gforward],[gwx]∗,[gBs+RBs],[gC+RC][g_{forward}],[gwx]^*,[g_{Bs}+R_{Bs}],[g_C+R_C][gforward],[gwx]∗,[gBs+RBs],[gC+RC],并作如下计算:
将gBs+RBsg_{Bs}+R_{Bs}gBs+RBs,gC+RCg_C+R_CgC+RC分别发送给B和C,然后各方更新各自的权重。