【阅读笔记】联邦学习实战——联邦学习在智能物联网中的应用案例
联邦学习实战——联邦学习在智能物联网中的应用案例
前言
FATE是微众银行开发的联邦学习平台,是全球首个工业级的联邦学习开源框架,在github上拥有近4000stars,可谓是相当有名气的,该平台为联邦学习提供了完整的生态和社区支持,为联邦学习初学者提供了很好的环境,否则利用python从零开发,那将会是一件非常痛苦的事情。本篇博客内容涉及《联邦学习实战》第十一章内容,使用的fate版本为1.6.0,fate的安装已经在这篇博客中介绍,有需要的朋友可以点击查阅。本章内容主要围绕人工智能物联网(AIoT),一种将人工智能技术和物联网技术相结合而出现的前瞻性概念。在AIoT的概念中,物联网中的设备和传感器能收集大量数据,通过对数据进行人工智能的语义分析和处理,实现万物数据化、智能化,帮助使用者做出更好的决策。尽管如此,由于数据隐私相关法案完善,IoT设备数据得到严格保护,导致IoT设备成为了数据孤岛,数据价值难以被利用。随着联邦学习技术的提出和普及,以及边缘计算能力跌加强,FL正迅速成为AIoT领域数据隐私保护机器学习的有效方案。
1. 案例背景与动机
随着AIoT技术的发展,智慧城市、智能家居、智慧社区等概念层出不穷。智慧社区是指通过在社区部署AIoT设备,采集用户日常行为数据,通过人工智能技术分析,为用户出行带来更好的建议,达到智慧化管理的目的。
由于社区住户行为数据属于个人隐私,所以不适合集中式处理,只能在本地进行独立处理分析,这种单点数据处理方式效果有限,功能也仅限本社区。联邦学习提供了有效的解决方案,通过联邦学习技术架构,一方面保证用户的数据不离开本地,另一方面有效联合各个社区的数据进行联合建模。
2. 历史数据分析
社区住户出行数据通常包括住户的登记信息和历史出行信息。
- 登记信息:性别,年龄等画像信息。
- 出行信息:ID,出行时间,出行地点,通行方式。
在分析不同住户群体的不同出行习惯上,存在着较大的差异,传统的数据分析很难得到满意的效果:
- 不同群体差异性大,统计分析很难捕获关键的统计规律性。
- 单个社区住户数量少,仅仅依靠单个住户的数量进行建模,无法构建有效的机器学习模型。
3. 出行时间预测模型
3.1 问题定义
对于出行时间的预测,一般归结为回归问题。即通过用户的历史行为准确预测用户下一次的出行时间。但是用户的出行具有随机性,事实上,绝大多数只是需要一个大致的区间,这样的难度比准确预测一个时间点更低。
所以,将用户的出行退化为一个多分类问题,将每天划分为多分时间段,预测用户出行的时间段。
3.2 构造训练数据集
根据用户出行历史数据预测未来的出行数据,这是典型的时间序列模型。首先构造特征x,特征构造包括两个层面的特征数据:
- 画像属性特征:用户性别,年龄,工作日出行频率,休息日出行频率等用户画像信息。
- 时间序列特征:以N星期为周期生成序列,将该序列作为递归神经网络的输入得到用户时序行为特征。
对于标签y的构建相对简单,比如将每天24小时划分为6个区间,如果出行时间在早上7点,那么该条记录为[0,1,0,0,0,0]。当然还可以根据实际的业务来定。
3.3 模型结构
模型构建如上图所示,将序列数据输入递归网络中提取时序特征,再与属性特征拼接输入全连接层,经过sigmoid分类得到出行概率。
模型构建代码如书中p156所示,这里用Keras快速构建出行时间预测模型。
4 联邦学习实现
本节架构可以直接复用第10章的实现,服务端和客户端的通信基本一致,主要区别在于数据的格式和模型结构不同。由于本章内容涉及保密协议,所以博主也无法复现其代码,读者只能够参考书中的代码,实际上, 学习的目的本身也不只是复现,更重要的是弄明白模型构建的逻辑,大行不顾细谨,大礼不辞小让,细节的部分,还是需要自个花费功夫精心打磨才是。
最后是关键的性能分析部分,本案例通过对10个社区的打卡数据进行分析,总共上万住户和近百万条样本数据,构建出6分类出行预测模型,效果如下图所示:
可以看出,在联邦学习的训练下,各个社区的模型效果都要好于本地训练的结果,可见联邦学习在智慧社区环境下的优越性。
阅读总结
本章内容更多的是对联邦学习在工业界应用的一个拓展和了解,由于涉及到保密协议,所以项目实现的代码和数据集都未能公布,实属遗憾,但是从训练结果可以看出,联邦学习确实在工业界有很大的应用前景,无论是打破数据孤岛,还是提升模型性能,联邦学习都将会是AIoT有力的武器。
更多推荐
所有评论(0)