联邦迁移学习

本博客地址:https://security.blog.csdn.net/article/details/123573886

一、联邦学习的定义 

横向联邦学习和纵向联邦学习要求所有的参与方具有相同的特征空间或样本空间,从而建立起一个有效的共享机器学习模型。然而,在更多的实际情况下,各个参与方所拥有的数据集可能存在高度的差异,例如:参与方的数据集之间可能只有少量的重叠样本和特征,并且这些数据集的规模与分布情况可能差别很大,此时横向联邦学习与纵向联邦学习就不是很适合了。

在这种情况下,通过迁移学习技术,使其可以应用于更广的业务范围,同时可以帮助只有少量数据(较少重叠的样本和特征)和弱监督(较少标记)的应用建立有效且精确的机器学习模型,并且遵守数据隐私和安全条例的规定。这种组合即称为联邦迁移学习(FTL),它可以处理超出现有横向联邦学习和纵向联邦学习能力范围的问题。

一个联邦迁移学习系统一般包括两方,称为源域和目标域。一个多方的联邦迁移学习系统可以被认为是多个两方联邦迁移学习系统的结合。

二、联邦迁移学习的分类

基于实例的联邦迁移学习

对于横向联邦学习,参与方的数据通常来自不同的分布,这可能会导致在这些数据上训练的机器学习模型的性能较差。参与方可以有选择地挑选或者加权训练样本,以减小分布差异,从而可以将目标损失函数最小化。对于纵向联邦学习,参与方可能具有非常不同的业务目标。因此,对齐的样本及其某些特征可能对联邦迁移学习产生负面影响,这被称为负迁移。在这种情况下,参与方可以有选择地挑选用于训练的特征和样本,以避免产生负迁移。

基于特征的联邦迁移学习

参与方协同学习一个共同的表征空间。在该空间中,可以缓解从原始数据转换而来的表征之间的分布和语义差异,从而使知识可以在不同领域之间传递。对于横向联邦学习,可以通过最小化参与方样本之间的最大平均差异来学习共同的表征空间。对于纵向联邦学习,可以通过最小化对齐样本中属于不同参与方的表征之间的距离,来学习共同的表征空间。

基于模型的联邦迁移学习

参与方协同学习可以用于迁移学习的共享模型,或者参与方利用预训练模型作为联邦学习任务的全部或者部分初始模型。横向联邦学习本身就是一种基于模型的联邦迁移学习,因为在每个通信回合中,各参与方会协同训练一个全局模型,并且各参与方把该全局模型作为初始模型进行微调。对于纵向联邦学习,可以从对齐的样本中学习预测模型或者利用半监督学习技术,以推断缺失的特征和标签,然后,可以使用扩大的训练样本训练更准确的共享模型。

三、联邦迁移学习算法

3.1、联邦迁移学习的训练过程

种联邦迁移学习算法训练过程包含以下几个步骤:

●  步骤一:

A方:在本地运行神经网络 Net^A,以获得数据的隐藏表征 u_i^A ;

B方:在本地运行神经网络 Net^B,以获得数据的隐藏表征 u_i^B ;

●  步骤二:

A方:计算和加密一组中间结果,设为 [[(\frac{\partial \pounds }{\partial \Theta _l^B})^A]]_A,并将其发送给B方,以帮助计算梯度 \frac{\partial \pounds }{\partial \Theta _l^B}

B方:计算和加密一组中间结果,设为 [[(\frac{\partial \pounds }{\partial \Theta _l^A})^B]]_B 和 [[L^B]]_B,并发送给A方,以帮助计算梯度 \frac{\partial \pounds }{\partial \Theta _l^A}和损失L;

●  步骤三:

A方:基于收到的 \large [[(\frac{\partial \pounds }{\partial \Theta _l^A})^B]]_B 和 \large [[L^B]]_B,通过式 \large [[\pounds ]]_p = [[\pounds _1]]_p + [[\gamma \pounds_2 ]]_p + [[\frac{\lambda }{2}(\pounds _3^A + \pounds _3^B)]]_p 和 \large [[\frac{\partial \pounds }{\partial \theta _l^A}]]_p = [[\frac{\partial \pounds_1 }{\partial \theta _l^A}]]_p + [[\gamma \frac{\partial \pounds_2 }{\partial \theta _l^A}]]_p + [[\gamma \theta_l^A ]]_p 计算得到 [[\frac{\partial \pounds }{\partial \theta _l^A}]]_B\large [[L]]_B ,之后A方创建随机掩码 \large m^A 并将其添加至 \large [[\frac{\partial \pounds }{\partial \theta_l^A }]]_B 以得到 \large [[\frac{\partial \pounds }{\partial \theta_l^A } + m^A]]_B ,A方向B方发送 \large [[\frac{\partial \pounds }{\partial \theta_l^A } + m^A]]_B 和 \large [[L]]_B ;

B方:基于收到的 \large [[(\frac{\partial \pounds }{\partial \theta _l^B })^A]]_A,通过 \large [[\frac{\partial \pounds }{\partial \theta _l^B}]]_p = [[\frac{\partial \pounds _1}{\partial \theta _l^B}]]_p + [[\gamma \frac{\partial \pounds _2}{\partial \theta _l^B}]]_p + [[\lambda \theta _l^B]]_p 计算得到 \large [[\frac{\partial \pounds }{\partial \theta _l^B}]]_A。之后,B方创建随机掩码 \large m^B 并将其添加至 [[\frac{\partial \pounds }{\partial \theta _l^B}]]_A 以得到 [[\frac{\partial \pounds }{\partial \theta _l^B} + m^B]]_A ,B方向A方发送 [[\frac{\partial \pounds }{\partial \theta _l^B} + m^B]]_A

●  步骤四:

A方:解密得到 \frac{\partial \pounds }{\partial \theta _l^B} + m^B,并将其发送给B方;

B方:解密得到 \frac{\partial \pounds }{\partial \theta _l^A} + m^A 和L,并将它们发回给A方。

●  步骤五:

 A方:去掉随机掩码并获得梯度 \frac{\partial \pounds }{\partial \theta _l^A} ,之后,使用自己的梯度来更新自己的模型;

B方:去掉随机掩码并获得梯度 \frac{\partial \pounds }{\partial \theta _l^B} ,之后,使用自己的梯度来更新自己的模型。

●  步骤六:

一旦损失L收敛,A方向B方发送终止信号,否则就前往步骤一以继续训练过程。

3.2、联邦迁移学习的预测过程

一旦联邦迁移学习模型训练完毕,它便能用于预测B方中的未标注数据。对于未标注数据样本的预测过程,步骤如下:

●  步骤一:

B方用已训练好的神经网络参数 \Theta ^B 计算 [[u_j^B]],并给A方发送加密过的 [[u_j^B]]

●  步骤二:

A方评估 [[u_j^B]] 并用随机值对结果进行掩藏,并将加密和掩藏过的 [[\varphi (u_j^B) + m^A]]_B 发送给B方。

●  步骤三:

B方解密 [[\varphi (u_j^B) + m^A]]_B 并将 \varphi (u_j^B) + m^A 发送给A方。

●  步骤四:

A方获得 \varphi (u_j^B),进而得到标签 y_j^B,并将标签 y_j^B 发送给B方。

四、基于秘密共享的联邦迁移学习

4.1、基于秘密共享的联邦迁移学习的训练过程

对于基于秘密共享的联邦迁移学习的训练过程,步骤如下:

●  步骤一:

A方和B方在本地运行各自的神经网络 Net^ANet^B,以获得数据的隐藏表征 u_i^A 和 u_i^B

●  步骤二:

A方和B方通过秘密共享协议共同地计算 L_{AB}。A方计算 L_A 并发送给B方,B方计算 L_B 并发送给A方。

●  步骤三:

A方和B方通过式 L = L_A + L_B + L_{AB} 分别重构损失L。

●  步骤四:

A方和B方通过秘密共享协议共同地计算 (\frac{\partial \pounds }{\partial \theta _l^A})_{AB} 和 (\frac{\partial \pounds }{\partial \theta _l^B})_{AB}

●  步骤五:

A方通过 \frac{\partial \pounds }{\partial \theta _l^A} = (\frac{\partial \pounds }{\partial \theta _l^A})_A + (\frac{\partial \pounds }{\partial \theta _l^A})_{AB} 计算梯度,并更新它的本地模型 \theta _l^A。同时,B方通过 \frac{\partial \pounds }{\partial \theta _l^B} = (\frac{\partial \pounds }{\partial \theta _l^B})_B + (\frac{\partial \pounds }{\partial \theta _l^B})_{AB} 计算梯度,并更新它的本地模型 \theta _l^B

●  步骤六:

一旦损失L收敛,A方给B方发送终止信号。否则,前往步骤一以继续训练过程。

4.2、基于秘密共享的联邦迁移学习的预测过程

在训练结束之后,就可以进入预测阶段,预测过程主要包括两个步骤。

●  步骤一:

A方和B方在本地运行已训练完毕的神经网络 Net^ANet^B,以获得数据隐藏表征 u_i^A 和 u_i^B

●  步骤二:

基于 u_i^A 和 u_i^B ,A方和B方共同地通过秘密共享协议重建 \varphi (u_j^B) 以及计算标签 y_j^B

  • 3
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

武天旭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值