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