跳至主要內容

联邦学习基本概念

原创Xenny约 1499 字大约 6 分钟联邦学习机器学习联邦学习

联邦学习基本概念

  • 联邦学习是一种带有隐私保护、安全加密技术的分布式机器学习框架,能够让各参与方在不像其他参与者披露隐私数据的前提下协作进行机器学习模型训练。

    要注意联邦学习本身并不是监督学习或非监督学习,它是更高层次的分布式协作框架,使得各个参与者能够将数据本地化的同时进行协作训练,而训练的具体任务所使用的模型和算法取决于训练者,可以是监督或者非监督中的各类模型和算法。

  • 联邦学习非常使用运用在一些需要隐私保护的场景,例如Google最早将联邦学习运用在Google键盘上,利用用户本地的数据训练模型,再将训练过程中的模型参数聚合与分发,最终实现精准预测用户下一输入。

网络架构

  • 既然是一个分布式架构,那必然涉及到协作中的数据流通网络架构是如何涉及的,和WEB服务一样,联邦学习网络也分为CS架构和P2P架构。

  • CS架构(Client-Server)也叫主-从架构,由各个客户端(参与方)在本地计算模型,然后使用同态加密、差分隐私或秘密共享等加密技术,对梯度信息进行掩饰再发送给服务器。

    服务器将进行安全聚合操作再将结果发送给各客户端,客户端收到结果后即可更新各自的模型。

  • P2P架构(Peer-to-Peer)中不存在中心服务器,各个参与者训练模型之后将使用安全链路直接和其他参与者交换参数信息。

分类

  • 联邦学习框架包括多方面的技术,同时根据应用场景、协作方式等不同,联邦学习也分为几个不同的类别。

横向联邦学习

  • 当用户特征部分重叠较多,但是用户样本部分重叠较少时使用,按照横向切割的方式从数据集中提取特征完全相同但是用户不同的数据进行训练。

    这里的意思就是说因为是分布式的训练框架,每个参与方的训练集都是不同的,如果两个训练集之间特征空间较为相似(即包含同样的特征),而数据都各不相同时,则取这些特征相同数据不同的样本作为训练数据集。

    也就是保留重复的特征扩充更多的样本,增加的是数据量,例如A训练集包含学生身高和体重,B训练集包含学生身高和性别,且A,B数据集只有少量重复学生,则将A,B的学生身高数据作为一个新的训练集。

纵向联邦学习

  • 同理该方式便是在保留全部特征的条件下对样本进行切割。适用于特征重叠较少而样本重叠较大的情况。

    例如A训练集是餐厅一的就餐人员就餐时间、消费数据等,B训练集是餐厅二的就餐人员人数、菜品满意度等,且餐厅一和二开在同一条街上,则显然A和B中的人员(即样本)重叠很多,但是包含的信息(特征)几乎不相同,此时则可以选择A和B中重复的人员利用A和B的特征生成新的数据集合。也就是保留重复的样本扩充更多的特征,增加的是维度。

迁移联邦学习

  • 前两种联邦学习方法都需要对数据进行切分,总归还是丢掉了一些信息,对于数据/特征量较大时或许没什么关系,但数据/特征量较小时则影响会非常大,而迁移联邦学习则可以用来克服数据或特征不足的情况。

    前两种联邦学习要求所有参与方具有相同(或高度相似)的特征空间/样本空间,从而建立一个共享机器学习模型。但实际情况中,各个参与方拥有的数据集可能存在高度差异,此时横向/纵向联邦学习便不再适合处理此类情况。

  • 迁移学习并不是联邦学习中提出的新内容,而是本就存在于ML中的一种学习方法,而迁移联邦学习是在联邦学习这个大框架下引入迁移学习来处理上述数据集差异较大的问题。

    而迁移联邦学习具体是如何进行的,这将在单独的篇章中展开。

总结

  • 联邦学习是一种新的分布式学习框架,传统的分布式学习中一般只是利用分布式建立共享资源池,计算和数据都是由中心服务器控制。而在联邦学习中最大的特点便是隐私保护,使得实现数据隐私保护的前提下进行协作训练变得可能。

    不过联邦学习需要非常频繁的通信,且节点和网络状态也各不相同(例如手机、平板都可以是节点),所以节点的网络通信也是值得优化的点。还有就是因为数据集的不统一且不独立同分布,如何设计算法处理不同的数据也是很麻烦的。

  • 所以联邦学习和传统分布式学习从根本动机就不同,前者是为了隐私保护,后者是为了处理海量数据。