首页  

联邦学习入门笔记     所属分类 privacy-compute 浏览量 590
人工智能 AI 
法律法规保护数据隐私
数据孤岛

2018年5月25日,欧洲联盟出台《通用数据保护条例》 General Data Protection Regulation GDPR

2017 年 起实施的《中华人民共和国网络安全法》和《中华人民共和国民法总则》中 指出网络运营者不得泄露、篡改、毁坏其收集的个人信息,并且与第三方进行数据交易时需确保拟定的合同明确约定拟交易数据的范围和数据保护义务

在满足数据隐私、安全和监管要求的前提下,设计一个机器学习框架,让人工智能系统能够更加高效、准确的共同使用各自的数据

联邦学习(FederatedLearning)本质是一种分布式机器学习框架,在保障数据隐私安全及合法合规的基础上,实现数据共享,共同建模。
它的核心思想是在多个数据源共同参与模型训练时,不需要进行原始数据流转,仅通过交互模型中间参数进行模型联合训练,原始数据可以不出本地。
这种方式实现数据隐私保护和数据共享分析的平衡,即“数据可用不可见”的数据应用模式




参与方数据保留在本地,一定程度上保证数据安全性
参与者联合训练模型,共同富裕
参与方地位平等
与中心化的机器学习建模效果相差不大 |𝑉𝑓𝑒𝑑−𝑉𝑠𝑢𝑚|<𝛿

联邦学习的建模效果和将整个数据集放在一处建模的效果相同,或相差不大 
在各个数据对齐的条件下
用户对齐 user alignment
特征对齐 feature alignment  

迁移学习是在用户或特征不对齐的情况下,也可以在数据间通过交换加密参数达到知识迁移的效果


各个成员的自有数据不出本地,通过加密机制下的参数交换方式,
即在不违反数据隐私法规情况下,建立一个虚拟的共有模型。
这个虚拟模型就好像大家把数据聚合在一起建立的最优模型一样
在建立虚拟模型的时候,数据本身不移动,也不泄露隐私和影响数据合规
建好的模型在各自的区域仅为本地的目标服务
各个参与者的身份和地位相同,联邦系统帮助大家建立共同富裕的策略 


当多个数据拥有方F_i,   想要联合各自的数据 D_i 训练机器学习模型时,
传统做法是把数据整合到一方并利用数据 D={Di,i=1…N}进行训练并得到模型 M_sum
该方案由于其涉及到的隐私和数据安全等法律问题通常难以实施。
联邦学习是指使得这些数据拥有方 F_i 在不用给出己方数据 D_i 的情况下也可进行模型训练并得到模型 M_FED 的计算过程,
并能够保证模型 M_FED 的效果 V_FED 与模型 M_SUM 的效果V_SUM 间的差距足够小
|V_FED-V_SUM |<δ, 这里 δ 是任意小的一个正量值



数据集 D_i 
矩阵 每一行代表一个用户,每一列代表一种用户特征
对用户行为建立预测模型,要有标签数据 ,把用户特征叫做 X, 把标签特征叫做 Y

金融领域,用户的信用是需要被预测的标签 Y
营销领域,标签是用户的购买愿望 Y
教育领域,则是学生掌握知识的程度等
特征 X 加标签 Y 构成了完整的训练数据(X, Y)

数据分布 三种情况
两个数据集的用户特征(X1,X2,…)重叠部分较大,而用户(U1, U2…)重叠部分较小
两个数据集的用户(U1, U2…)重叠部分较大,而用户特征(X1,X2,…)重叠部分较 小
两个数据集的用户(U1, U2…)与用户特征重叠(X1,X2,…)部分都比较小


横向联邦学习
两家不同地区银行,它们的用户群体分别来自各自所在的地区,相互的交集很小 ,业务很相似

1 参与方各自从服务器A下载最新模型
2 每个参与方利用本地数据训练模型,加密梯度上传给服务器A,服务器A聚合各用户的梯度更新模型参数
3 服务器A返回更新后的模型给各参与方
4 各参与方更新各自模型


纵向联邦学习
两个不同机构,一家是某地的银行,另一家是同一个地方的电商
用户的交集较大,但用户特征交集较小
银行记录 用户的收支行为与信用评级,电商则保有用户的浏览与购买历史 

学习步骤
第一步 加密样本对齐 
第二步 对齐样本进行模型加密训练
step1 由第三方C向A和B发送公钥,用来加密需要传输的数据
step2 A和B分别计算和自己相关的特征中间结果,并加密交互,用来求得各自梯度和损失
step3 A和B分别计算各自加密后的梯度并添加掩码发送给C,同时B计算加密后的损失发送给C
step4 C解密梯度和损失后回传给A和B,A、B去除掩码并更新模型


迁移联邦学习
用户与用户特征重叠都较少的情况
有两个不同机构,一家是位于中国的银行,另一家是位于美国的电商
用户和数据特征 交集很少
引入迁移学习, 解决单边数据规模小和标签样本少的问题,从而提升模型的效果

上一篇     下一篇
idea设置源码目录

mac安装python3

docker 容器与宿主机之间拷贝文件

docker命令实战

docker run 和 docker start 的区别

docker挂载本地目录