原本的加密算法大致思路:各个客户端上传梯度时进行加密,服务端直接用有扰乱的梯度当成真梯度来计算,这样一来谁也不知道谁是真梯度
为了避免原本的算法的一些问题,本文提出了加密-解密结构,并证明了这种结构带来的误差是可量化的,且en-decoder可以线下训练出来
首先要对输入的梯度做如下处理:
这样可以保证梯度被转化到一个固定的范围内,方便后面的encoder,decoder操作
这个就是encoder,decoder的目标了,(他们两个都是可以学习的模型)
最后用这个方法把“真”梯度解码出来:
这样,即使解码出来还是会有一点点噪音,这下不怕有人偷看了。