少年帮|Facebook开源差分隐私库Opacus,可保护数据隐私且高效训练Prytorch模型( 二 )


需要强调的是 , 由于PyTorch优化器可以查看参数梯度 , 因此 , 可以直接将噪声添加到其中 , 并允许任何人简单地训练差分私有模型 , 其代码如下:
少年帮|Facebook开源差分隐私库Opacus,可保护数据隐私且高效训练Prytorch模型此外 , 噪声的定量问题是这一解决方案的关键 。 因为过多的噪声会破坏信号 , 过少的噪声将无法保证隐私 。
为了确定合适的比例 , 首先要查看小批量中梯度的最大范数 。 因为离群值比大多数样本具有更大的梯度 , 需要确保这些异常值的私密性 。
通常研究人员会采用微批量(microbatch)的方法 。 该方法是在小批量处理中计算每个样本的梯度 , 分别裁剪梯度 , 将其累积回单个梯度张量 , 然后将噪声添加到总和中 。 该方法具有简单性和兼容性和特点 , 但计算每个样本的梯度 , 限制了训练的速度 。
在这里 , Opacus采用了另一种更高效的解决方案 。 该方案由谷歌于2015年提出 , 其论文为《EFFICIENT PER-EXAMPLE GRADIENT COMPUTATIONS》 , 对于所有ML样本而言 , 它可以计算整个批次的梯度向量 , 同时优化性能 。
Facebook在论文中表示 , 他们在训练标准神经网络时 , 采用该方法获得了所有需要的梯度向量 。 该方法的不同之处在于 , 对于模型参数 , 可以单独返回给定批次中每个示例的损耗梯度 , 如下所示:
少年帮|Facebook开源差分隐私库Opacus,可保护数据隐私且高效训练Prytorch模型通过在运行各层时跟踪一些中间数量 , 可以使用适合内存的任何批次大小进行训练 , 这种方法比其他软件包中的微批量方法快一个数量级 。
安装方法目前 , 这款Opacus高速库已经在Github开源 。 所有机器学习从业者和差异隐私科学家都可以下载使用 。
少年帮|Facebook开源差分隐私库Opacus,可保护数据隐私且高效训练Prytorch模型Github地址:
Facebook表示 , 他们希望通过开发Opacus之类的PyTorch工具 , 可以使对此类隐私保护资源的访问民主化 , 同时通过使用PyTorch的更快 , 更灵活的平台弥合了安全社区和通用机器学习工程师之间的鸿沟 。
用户可以直接从Github安装最新版本 , 代码如下:
git clone .git
cd opacus
pip install -e .
另外 , 需要注意的是 , 要使用差分隐私训练模型 , 需要声明PrivacyEngine , 并将其附加到优化器 , 再运行 , 例如:
少年帮|Facebook开源差分隐私库Opacus,可保护数据隐私且高效训练Prytorch模型引用链接:雷锋网雷锋网雷锋网


推荐阅读