联邦学习 第一章 引言
人工智能面临的挑战
当今时代 , 人工智能(AI)爆火 , 而人工智能背后是机器学习的迅速发展(ML)
然后 , 机器学习需要大量的数据作为支持 , 如数以百万张图片才能训练出人脸识别模型等
然而大部分时候 , 人们获得的数据都是小数据
且这些数据难以整合 , 如金融交易信息 , 医疗健康信息等 , 如果在训练过程中泄露必然产生极大危害
且近年来人们对隐私的重视程度不断提高 , 各个国家颁布相关法律介入数据安全问题
因而某种既能保障数据不被泄露 , 又能良好训练模型的方法需要出现
联邦学习概述
联邦学习的一个案例:
Gboard的智能手机上的语言预测模型更新
用户输入的文字都要经过输入法 , 而如果将这些数据传输给谷歌服务器 , 势必导致大规模的隐私问题
因此采用联邦学习的方法 , 用户在自己的输入法中训练以自己的输入字符为数据的模型 , 然后该模型被加密到云端
云端将各个用户返回的加密模型聚合起来(此时仍是加密的) , 然后再将这个模型传给各个用户端以供使用
联邦学习定义
联邦学习是一种分布式机器学习的算法框架 , 它拥有以下特征:
-
有两个以上的参与方使用一个共享的数据训练模型 , 其中任意一方拥有一定可以用于训练模型的数据
-
任意参与方自身数据不会在训练模型过程中离开自己
-
模型相关信息在参与方之间通过加密的方式相互传递 , 且任意一方不能根据加密后数据推测出对应的的模型参数
-
整体的模型训练结果接近于中心化训练的效果
联邦学习可以采用CS架构 , 也可以是P2P的 , 如果是P2P , 可能对加密解密的计算更多 , 但安全性会进一步提高(因为没有第三方)
聚合服务器会多次将不同客户端的模型进行平均 , 然后将新的模型分发给不同客户端训练 , 直到模型收敛
一些存在的问题:
-
同一时间可能有多个设备在通信 , 使得通信链接是慢速而不稳定的
-
任意参与方恶意上传错误模型 , 都会导致联邦学习整体的效果下降
-
不同模型结果可能是非独立同分布的
独立同分布是说尽管数据不同 , 但是符合某种同样的分布规律;
非独立同分布就是不同模型训练数据都不一样 , 一个说是正态分布 , 一个说是泊松分布
联邦学习分类
\(I\): 样本空间ID标签
\(X\): 特征空间
\(Y\): 数据标签空间
举例来说 , 考虑学生信息的数据集 , \(I\) 为学生学号(对每个学生唯一标识) , \(X\) 为学生年龄 , 性别 , 班级等 , \(Y\) 为代预测项 , 如学生成绩等
联邦学习的不同参与方都有不同的数据设置
如一个数据集关注大一年级学生信息 , 另一个数据集关注大二年级
也有可能 , 一个数据集关注大一年级学生信息 , 另一个数据集关注大二年级
由此可以将联邦学习进行分类:
第一种是横向联邦学习 , 适用于按样本划分的联邦学习 , 相同特征空间 , 但是样本不同**的参与方
第二种是纵向联邦学习 , 也被称为按特征划分的联邦学习 , 适用于相同样本 , 但特征空间不同的参与方
第三种是联邦迁移学习 , 适用于样本和特征空间都不相重叠的参与方
联邦学习的发展
在发展过程中 , 联邦学习曾有过多种不同形式 , 如面向隐私保护的机器学习 , 面向隐私保护的深度学习 , 协作式深度学习等
联邦学习的研究
2016年 , 谷歌提出了联邦学习的概念
联邦学习相关的研究围绕着提升安全性与统计方法相关的难题上展开
开源平台
Federated AI Technology Enabler , FATE , 该项目提供了一个安全的计算框架和联邦学习平台
TensorFlow Federated , TFF , 提供两个接口 , 联邦学习应用程序接口和联邦学习核心API
TensorFlow-Encrypted , 一个基于TensorFlow的python包 , 提供类似TensorFlow的接口 , 使得用户不需要深入了解机器学习 , 密码学等就能使用现成的技术
CoMind , 其核心为联邦平均算法的实现
联邦学习标准化进程
微众银行人工智能项目组在2018年12月成立 , 旨在指定联邦学习标准IEEE
联邦人工智能生态系统
微众银行人工智能项目组提出了联邦人工智能生态系统 , FedAI Ecosystem , 该生态有以下特色:
-
开源技术 , 如FATE就是该FedAI旗下的开源项目
-
标准化 , IEEE P3625
-
多方共识机制 , 一些激励措施 , 使得更多用户能参与进该系统 , 类似区块链一样
-
垂直行业的应用 , 开拓更多联邦学习应用场景, 搭建新的业务模型等

浙公网安备 33010602011771号