Get了新知识之联邦学习
传统机器学习算法被大家关注很久了,本菜鸟也在各种海量教程中跑通了深度学习的一众算法。昨天傍晚闲来,有幸和某985计算机博士探讨对象分享的一篇10分农学方面的sci,它到底亮眼在哪里。大佬惊叹,10分在计算机领域,都是ccf a或者中科院一区的水平。惊呼!作者那一栏都可以组队去打狼了,全是一众合作(提供数据)的科研机构。也许就是因为他的工作量巨大,研究站点遍布全国,因此得到的结论更加具有普适意义和真正意义上的应用价值。
相比于搜集全国站点数据这种庞大的工作量,大佬说,这就涉及到他的研究方向了。–联邦学习。这让我这个爱学习的小菜鸡瞬间来了兴趣,决定去好好看一下联邦学习方面的综述,论文和技术博客。
下面通俗的讲一下联邦学习。就是在这种需要多方提供数据进行分析的场景中,出于数据保护和传输共享的难度,我们需要设计一种方法可以在不泄露隐私的情况下,还能得到模型。比如说吧,有好几个人有数据,数据维度是一样的。他们希望利用神经网络建立一个分类模型,那么他们都从一个中心服务器上把建立神经网络的程序下载下来,在本地进行训练,得到各自的分类模型。但是啊,由于他们每个人数据不多,所以训练的各自的神经网络模型可能只在自己的数据上还不错,但是不能用在别的情况下,这时候他们不需要上传数据,只需要上传各自建立的神经网络的梯度或者参数到服务器上。服务器根据这些参数得到新的模型参数,再发给各方。这样称为一轮学习,经过多次后,就可以实现最终模型的建立,而且效果很好。这就称之为联邦学习。
1.联邦学习兴起的背景:
1.1数据孤岛
大多数实际应用领域存在数据质量有限,数据质量不统一的问题,难以获得支撑人工智能和机器学习模型进行训练的标注数据,同时在不同地域,研究领域存在数据交流的壁垒。难以实现跨域数据共享,导致当前的大数据在某种意义上存在着“数据孤岛”的问题。
1.2隐私保护
由于各研究机构获取的研究数据的隐私性,加大了数据获取、传输、保存和共享交换的难度。为技术的推广和落地应用也带来了挑战。
联邦学习的主要目的是解决数据孤岛和数据安全的问题,让参与各方都能获益。目前很多业务都面对两难的境地:以深度学习为代表的人工智能技术,需要海量且来源丰富的数据作为模型训练的基础。尽管现在很多机构展开合作,制作了海量的公开数据集,比如全球小麦检测数据集(Gobal Wheat Detection)但是存在数据格式,图像分辨率难以统一等诸多问题。
为了解决数据隐私保护问题,需要一整套满足数据隐私、安全和性能要求的云边协同计算光加。2013年,谷歌首先提出联邦学习,在满足隐私保护和数据安全的前提下设计一个分布式机器学习框架,使各个机构在服务提供商的协调下协同训练模型。
在进行机器学习的过程中,各参与方可借助其他方数据进行联合建模。各方无需共享数据资源,即数据不出本地的情况下,进行数据联合训练,建立共享的机器学习模型。
2.联邦学习的分布式结构:
传统的集中式模型训练方案是终端设备产生或收集数据后汇聚到边缘服务器,再汇聚到运输机中心,使用云数据中心强大的算力资源训练AI模型。联邦学习为了保护数据隐私的需要,云数据中心的中心云服务器和各个边缘云服务器之间使用联邦学习的方式进行更新,在各边缘云服务器上训练本地模型后上传本地更新到中心云服务器,进行全局模型更新,这是一种主从式的分布式训练网络结构。
3.联邦学习的应用
现状:目前联邦学习的主要研究领域包括优化通信机制,数据隐私安全,业务场景应用等。
3.1产品级的联邦学习框架
近年来,主流的互联网公司都开始建设联邦学习生态,开源了一些工业级的联邦学习框架,或者发布了一些联邦学习解决方案。
PaddleFL是百度公司基于paddlepaddle推出的开源联邦学习框架,提出了很多联邦学习策略,包含了计算机视觉,自然语言处理等领域的应用,且方便部署。
比如,基于联邦学习的Fed Vision项目是计算机视觉领域的首个工业级应用。基于联邦学习的Fed Vision项目的工作流程主要包括三个步骤:众包的图像数据标注,联邦学习模型训练,联邦学习模型更新,主要使用YOLOV3图片检测算法度图片进行目标识别。
众包的模型标注这个模块的设计,让数据拥有者可以容易地为联邦模型训练而标注本地存储的数据。各级用户可以在其本地设备上使用Fed Vision提供的客户端来标注图片。
联想到联邦学习在农业上也必将大有作为,大大改善现有的深度学习在农业应用上的效率和推广使用程度。在智慧农业领域也有大量图片的目标识别的业务场景,例如基于联邦学习的小麦麦穗目标识别可以计数和辅助产量预测。基于联邦学习的水稻叶片病害识别可以为水稻栽培中的病害诊断提供指导。等等。
3.2联邦学习模型
联邦学习也根据数据集用户特征和样本的不同重叠情况,分为了横向联邦学习(即特征重叠较多)、纵向联邦学习(即样本重叠较多)和联邦迁移学习(样本、特征都重叠较少)。以联邦迁移学习为例,迁移学习通过将相关领域中的标注数据或者知识经验迁移到目标领域,从而提升目标领域的学习效果。在深度学习框架下,使用在大型公开数据集上进行预训练以获得特征提取能力更强的模型参数作为新业务的预训练权重,也是常用的做法。在进行植物病虫害目标识别的案例中,高效的做法是使用在ImageNet、PlantVillage等大型农业数据集上预训练的权重,来加深网络特征提取的能力。在联邦学习框架下,当两个数据孤岛中的用户和特征交集都很少的时候,也可采用迁移学习的模式来扩充数据集,这种模式即联邦迁移学习。当样本和特征数量重叠都较少时,这种情况下,就需要引入联邦迁移学习的模型来融合数据,从而提升数据量,提高模型表现。
最后,结合本人研究学习方向,展开了联邦学习在智慧农业应用上的一些想法,在5G时代,云边协同在不同恒业中都有应用需求,可以帮助传统技术与计算机领域进行深度融合,同样的,可以推动传统农业向智慧农业的转型和升级。