原文:https://eprint.iacr.org/2021/993.pdf
在联邦学习在解决拜占庭问题同时也要保护隐私数据是一个矛盾的问题。一方面,隐私数据保护要求禁止访问单个的梯度信息,因为梯度信息能逆推出原始训练数据。而解决拜占庭问题则需要梯度进行数学分析从而将异常梯度从正常梯度中区分出来。本文提出了FlOD方法,基于汉明距离的方法实现对异常数据的处理,同时使用基于布尔秘密分享的方法实现安全的的两方聚合方案,从而实现了在恶意大多数场景下对上述矛盾问题的解决。
利用SignSgd得到的梯度值都是-1和1的。
FLOD和FLTrust类似,依旧再服务器端保存一部分的训练数据Root Dataset,这个训练集可以很小,但是必须是干净的,目的就是提供一个绝对安全的参考值用来判定其他梯度向量是否异常。而且FLOD方案是可以抵御恶意大多数的拜占庭攻击的。接下来就来看看基础方案的整体设计:
SignSGD得到的梯度值都是-1或者0。为了后面能计算汉明距离和使用密码学工具,先将其编码到
0
,
1
{0,1}
0,1上来。
对上述Encoding的结果分别与服务器端梯度更新来计算两者的汉明距离,具体如下:
得到的结果就是汉明距离,后面会以汉明距离为基础来判定数据是否异常,那么为什么汉明距离能够其作用呢?证明如下:
证明表明,余弦距离和本文使用得汉明距离是具有线性关系得,因此可以使用汉明距离直接替换汉明距离。
这一步就是将汉明距离转换为权值。
τ
=
d
2
\tau = \frac{d}{2}
τ=2d
如果仅仅是前面的部分,那么就仅仅是一个鲁棒性联邦学习,没有涉及到隐私保护的部分。
本文的方法呢就是将FLOD部署再两方的服务器 P 0 , P 1 P_0,P_1 P0,P1上,并假设两方服务器是半诚实的。其中 P 0 P_0 P0保有服务器端的Root Dataset和模型,因此 P 0 P_0 P0也就完全拥有了服务器的的参考梯度更新向量。
半诚实模型(半诚实敌手模型)
:计算方存在获取其他计算方原始数据的需求,但仍按照计算协议执行。半诚实关系即参与方之间有一定的信任关系,适合机构之间的数据计算。
这一步的就是在不泄露用户梯度数据的情况下计算原始梯度更新与服务器参考的梯度更新之的汉明距离,并将结果用布尔分享的方式保存再两方服务器上,具体方法如下:
后续计算权值和聚合需要进行乘法运算,但是此前的数据分享是布尔分享的,而再此分享上做加法和乘法操作相比较算数分享是昂贵的,因此为了减少通信和计算开销,就需要将布尔分享转化为算法分享,然后再进行后续计算。