当前位置:   article > 正文

[隐私计算学习笔记]5——基于隐私保护的机器学习算法介绍_隐私保护机器学习算法

隐私保护机器学习算法

目录

1. 预处理和隐私求交

1.1 预处理

1.2 隐私求交

2. 决策树模型和线性回归模型

2.1 决策树模型

2.2 线性回归模型

3. 神经网络算法

3.1 水平联邦学习

3.2 垂直拆分学习

4.小结

1. 预处理和隐私求交

1.1 预处理

        提供DataFrameFedNdarray两种数据结构:

  • DataFrame:联邦表格数据的封装,由多个参与方的数据块构成,支持数据水平切分、垂直切分和混合切分,分别对应3 组 API:HDataFrame、VDataFrame、MixDataFrame。
  • FedNdarray:联邦 ndarray 的封装,同样由多个参与方的数据块构成,支持水平和垂直切分,对应统一的 API: FedNdarray(支持水平和垂直切分,不支持混合切分)。

        安全提示:一些预处理算子会计算并公开用于辅助计算的统计值,如最大值、最小值,或者一些统计接口本身就会计算和公开统计值,如标准化转换中隐式包含最大值、最小值信息,使用前需要评估统计值是否可以被公开。

附:水平切分、垂直切分及混合切分

        水平切分:特征一致、样本不同;

        垂直切分:特征不同、样本对齐;

        混合切分:数据既包含水平切分,也包含垂直切分。先后无序。

1.2 隐私求交

        隐私求交(Private Set Intersection,PSI)是一种使用密码学方法,获取两份数据内容的交集的算法。PSI过程中不泄露任务交集以外的信息。在垂直拆分场景中,隐私求交常用于第一步的数据对齐,进一步做数据分析或机器学习建模。

在隐语中 PSI 有两种使用方式(调用同一个kernel,实现方式不同但完全等价)分别如下。同时隐语支持多种 PSI 算法,可根据参与方数量、带宽、算力、数据不平衡度等不同场景合理选择。

  • 使用spu.psi_csv等接口
  1. -, alice_psi_path = tempfile.mkstemp()
  2. -, bob_psi_path = tempfile.mkstemp()
  3. spu.psi_csv{
  4. key="uid",
  5. input_path = {alice: alice_path, bob: bob_path},
  6. output_path = {alice: alice_psi_path, bob: bob_psi_path},
  7. receiver="alice",
  8. protocol="ECDH_PSI_2PC",
  9. sort=True,
  10. )
  •  使用 data.vertical.read_csv 接口
  1. from secretflow.data.vertical import read_csv as v_read_csv
  2. vdf = v_read_csv(
  3. {alice: alice_path, bob: bob_path},
  4. #实现样本对齐
  5. spu=spu,
  6. keys="uid",
  7. drop_keys="uid",
  8. psi_protocl="ECDH_PSI_2PC",
  9. )
  10. vdf.columns

附:已实现的隐私求交协议(码住,后续专开一篇介绍)

  • Semi-honest ECDH-based two-party PSI protocol [HFH99]
  • Semi-honest ECDH-based three-party PSI protocol
  • Semi-honest OT-based two-party PSI protocol [KKRT16]
  • Semi-honest PCG/VOLE-based two-party PSI protocol (with improved communication efficiency) [BC22]
  • Semi-honest EC-OPRF based two-party Unbalanced PSI protocol
  • Differentially Private (DP) PSI Protocol [DP-PSI]

2. 决策树模型和线性回归模型

2.1 决策树模型

支持多种决策树算法(XGB),同时支持回归和二分类训练,可根据使用场景和安全性需求选用。

2.2 线性回归模型

支持多种线性回归模型,满足不同的使用场景,并有一些针对性的优化。

3. 神经网络算法

       根据使用场景不同,隐语提供了两种神经网络算法:水平联邦学习、垂直拆分学习。

安全提示:水平联邦学习和垂直拆分学习都属于非可证安全算法,其安全性需要根据场景具体分析。可以通过一些安全加固组件(安全聚合、差分隐私、稀疏化等)加强安全性。

3.1 水平联邦学习

  • API:secretflow.ml.nn.FLModel
  • 水平联邦学习 FLModel是一个通用的范式,而不是一个具体的模型或算法,是封装好的水平联邦模型训练器;
  • 支持自定义数据加载器(DataFrame、文件、图片等)、内置或自定义的安全聚合算法以及联邦学习策略;
  • 支持 TensorFlow 和 PyTorch 两种后端,可以使用 tf 或 torch 原生的方式编写模型代码,然后使用FLModel 训练。同时,也可以直接使用各种封装好的模型库,比如:torchvision 和 tf.keras.applications。
FLModel选项

3.2 垂直拆分学习

  • API:secretflow.ml.nn.SLModel
  • 垂直拆分学习SLModel也是一个通用范式,是封装好的垂直拆分模型训练器;
  • 支持自定义加载数据器(DataFrame、文件、图片等)、内置或自定义的通信优化算法(稀疏化、量化压缩算法)以及垂直拆分策略(加速训练);
  • 支持 TensorFlow 和 PyTorch 两种后端,可以使用 tf 或 torch 原生的方式编写模型代码,然后使用SLModel 训练;
  • 与水平联邦相比,垂直拆分学习的架构略有不同,其模型被拆分成 2 份、3 份或者更多,分别分布在不同的参与方。建模时需要针对拆分学习架构重新设计模型结构。为此,隐语提供了一个拆分好的模型库:sf.ml.nn.applications。
SLModel选项

4.小结

        本篇文章简单介绍了预处理及隐私求交方法,总结对比各决策树模型及各线性回归模型的API、场景、安全性、性能及算法,最后介绍了神经网络算法:水平联邦学习以及垂直拆分学习的封装模式及使用方法。

(PS:感谢您读完,坚持不易,谢谢支持!!!)
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/1019142
推荐阅读
相关标签
  

闽ICP备14008679号