BatchCrypt:用于跨数据孤岛联邦学习的高效同态加密

论文:BatchCrypt: Efficient Homomorphic Encryption for Cross-Silo Federated Learning

一.目的和背景:

对于集中式联邦学习常常采用但个梯度进行加密的方案,但是单个加密会带来巨大的开销,即使有人提出了批梯度加密的方案,但是还是存在两大问题——无法完整聚合,阈值空间无法确定。

文章想提出一种新的批量加密的方案。要满足三个条件:模型隐私,聚合准确,更新快速。

回忆以前几种常见的加密方案的问题:

1、安全多方计算MPC:远距离传输很难实现。

2、差分隐私DP:容易恢复,泄露隐私,损失一定的准确性。

3、同态加密HE:严重的额外开销。

4、安全聚合:隐私问题,无法异步更新,需要等待。

目的:1.可加,2.正负溢出可以知道,3.普遍适用所有同态加密,4灵活轻量。

二.同态批处理:

1、从表面上看,实现梯度批处理似乎很简单。事实上,在Paillier安全数据库中,批处理已被用于加速整数查询。然而,这种技术仅适用于非负整数。为了支持浮点数,值必须按指数重新排序和分组。这些约束是保持批处理密文可加性的关键——也就是说,两个批处理密文的总和一旦解密,就应该与两组中的纯文本值元素相加的结果相匹配。Gazelle和SEAL采用SIMD技术来满足这一要求,但该方法仅限于基于晶格的密码系统。在实际的训练中存在大量的浮点数,所以我们需要量化成整数,来方便计算。新的量化方案啊如下图,新的批处理加密需要被提出。

 

 

 2、上面公式和结果可以看出,这个量化方式存在一点问题:溢出不知道是正负溢出。

文章做了一种量化方式,量化结果有符号,对称,均匀分布的。量化的方式和之前的额差不多,只是在前两个位置增加了符号位。最后看结果的符号位是否变化来确定正负溢出。

三.dACIQ:裁剪阈值

原因:在实际应用中会存在着各种梯度计算结果,而正确的梯度应该是集中在一块,有一些错误的。这里就存在一个阈值门槛的问题了,如图所示:

比如上面表示梯度的分布情况,也就是我们需要量化的梯度,如果我们量化的梯度范围(-a,a)太大,那就会导致数量太多,分辨率太低,如果范围太小,那又会导致大量的信息错失。 所有提出了计算这个范围的方案:

 r为量化梯度之后的2进制位数,一般为16位。设qi为第i个量化水平。其中,第一项和第二项表示削波噪声,第三项表示舍入噪声。只要我们知道σ,我们就可以从式(1)中得出最佳阈值α。

四.算法过程:

 五.总结

这个文章做的工作主要集中在批处理同态加密方面——1增加了量化的正负号2增加了阈值的计算方案3结合最先进的而优化器。

最后留一个小问题:如果有两种方案:

1所有人计算自己的模型,最后上传进行计算平均值,完成更新。

2第一个人计算自己的模型给第二个而计算,一直传递给最后一个人计算模型。

上述两个方案计算获得的模型,用于很大的测试集预测,那结果哪个更加准确?

个人偏向于第一种,因为第一种的计算结果不会太过偏离。而第二种方案会偏离向最后一个计算者。想要更好的模型的话,个人认为应该增加计算者的权重,数据量更大的一方应有更大的权重。有什么想法欢迎在评论里面讨论。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值