联邦迁移学习

article/2025/10/13 0:43:09

本博客地址: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


http://chatgpt.dhexx.cn/article/prS2sJIU.shtml

相关文章

迁移学习(二)

迁移学习综述(二)(学习笔记) A Comprehensive Survey on Transfer Learning 1.引言 迁移学习的目标是利用来自相关领域(称为源领域)的知识,以提高学习性能或最小化目标领域中需要的标记示例的数量。知识转移并不总是…

深度学习中的迁移学习介绍

迁移学习(Transfer Learning)的概念早在20世纪80年代就有相关的研究,这期间的研究有的称为归纳研究(inductive transfer)、知识迁移(knowledge transfer)、终身学习(life-long learning)以及累积学习(incremental learning)等。直到2009年,香港科技大学杨…

迁移学习综述

这是我根据北京邮电大学一位博士的讲解视频所归纳的笔记 视频地址:https://www.bilibili.com/video/BV1ct41167kV?spm_id_from333.337.search-card.all.click 正文 我们为什么需要迁移学习? 众所周知,AlphaGo是通过强化学习去训练&#x…

整理学习之深度迁移学习

迁移学习(Transfer Learning)通俗来讲就是学会举一反三的能力,通过运用已有的知识来学习新的知识,其核心是找到已有知识和新知识之间的相似性,通过这种相似性的迁移达到迁移学习的目的。世间万事万物皆有共性&#xff…

迁移学习简要

什么是迁移学习 迁移学习是一种机器学习方法,就是把任务为A的开发模型作为其的初始点,重新使用在任务为B的开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务。虽然大多数机器学习的新 算法都是为了解决单个任务而设计的…

迁移学习(Transfer),面试看这些就够了!(附代码)

1. 什么是迁移学习 迁移学习(Transfer Learning)是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都…

迁移学习

简介 好的机器学习模型需要大量数据和许多GPU或TPU进行训练。大多数时候,他们只能执行特定的任务。 大学和大公司有时会发布他们的模型。但很可能你希望开发一个机器学习应用程序,但没有适合你的任务的可用模型。 但别担心,你不必收集大量数据…

迁移学习(Transfer)

1. 什么是迁移学习 迁移学习(Transfer Learning)是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都…

2021-11-29 拿到第一个badger

Coursera课程的前三节 What is data science Tool of data science Methodology of data science 感觉更像是阅读理解 今天拿到了第一个badger 准备花一周把剩下俩阅读理解拿了,开始搞实战部分 我走得很慢,但是从来不停下

Postgersql神器之pgbadger安装配置

文章目录 1.介绍2.安装pgbager3.参数调整3.1相关参数内容3.2 重启db4.配置apache5.安装libtext-csv-perl,6.手动产生报告 7.排程自动产生分析报告7.2脚本授权:7.3设定crontab7.4检视pgbadger日志分析报告 1.介绍 pgbadger是postgresql 三大神器之一:pg_…

BoltDB,RocksDB,PebbleDB,BadgerDb简介及测评

几个常用数据库性能分析 ​ 最近公司需要选型一款单机KV数据库来做业务承载,所以我对比了目前市面上比较流行的几个KV数据库并记录下来,包括boltdb,rocksdb,pebbledb,badgerdb四款,我将简单分析一下各数据库的特点,最后用自己的简…

智能优化算法-蜜獾算法Honey Badger Algorithm(附Matlab代码)

引言 提出了一种新的元启发式优化算法——蜜獾算法(Honey Badger Algorithm,HBA)。该算法受蜜獾智能觅食行为的启发,从数学上发展出一种求解优化问题的高效搜索策略。蜜獾挖掘和采蜜的动态搜索行为。于2021年发表在Mathematics and Computers in Simula…

惠普ipaq蓝牙键盘配对码_将旧的Compaq Ipaq从Ubuntu 5.10 Breezy Badger升级到8.10 Intrepid Ibex...

惠普ipaq蓝牙键盘配对码 Ive got an old Compaq Ipaq that I gave my then 10 year old niece to play with. I put Ubuntu 5.10 "Breezy Badger" on it. Fast forward to today, and she wants it refreshed. It hasnt been on the Internet for 3 years so it does…

BadgerDB 原理及分布式数据库的中应用与优化

Part 1 - BadgerDB 设计架构 Badger[1] 是基于论文:WiscKey: Separating Keys from Values inSSD-conscious Storage[2] 的思想利用 Go 语言进行设计实现的。 LSM-Tree 的优势在于将随机写转换为顺序写,将大块的内存连续地写入到磁盘,减少磁…

vue手风琴组件_Vue 2的Badger手风琴组件

vue手风琴组件 Vue-Badger手风琴 (vue-badger-accordion) Badger-Accordion Component for Vue 2.0. Vue 2.0的Badge-Accordion组件。 An accessible light weight, vanilla JavaScript accordion. 轻巧的香草JavaScript手风琴。 View demo 查看演示 Download Source 下载源 …

防追踪创安全网络环境 EFF推Beta版“Privacy Badger”扩展

自棱镜监控丑闻曝光之后在线安全和个人隐私成为网络上热门的话题,为此电子前沿基金会(EFF)今天推出了beta测试版本“Privacy Badger”扩展程序,为Chrome和Firefox浏览器用户打造安全的在线网络环境,阻挡一系列目前网络…

小米手机应用ICON角标Badger显示

项目有个新需求,像iOS一样给应用加个未读消息数量的角标,网上查了下这个开源框架还是不少的,这里介绍一个比较好用的,git地址:https://github.com/leolin310148/ShortcutBadger,集成和实现比较容易&#xf…

Honey Badger BFT共识协议详解

阅读建议 Honey Badger BFT应用了很多前人的研究,进行了巧妙的构造和优化,初次学习往往难以理解。在阅读时可以先大致了解各个构造块的基本作用,再了解总体的共识过程。之后回过头来深入研究各个构造块的原理,特别是BA算法&#…

badger和rocksDB性能对比

结论: 从最后一个表格来看,ssd只对batch_read和batch-write操作有优势,而且在多协程的情况下,这个优势也丢失了。从第二和第三个表格来看,badger的write操作比rocksDB慢了一个数量级,而batch_write操作badg…

Honey Badger BFT(异步共识算法)笔记

最近一直在看Honey Badger BFT共识协议,看了很多博客和一些相关的论文,但是发现有些博客存在着部分理解错误的地方,或者就是直接翻译2016年的那一篇论文,在经过半个多月的细读之后,打算整理出这篇博客,方便…