# 游戏联邦学习框架Demo制作

## 课题背景

伴随着大数据的出现以及算力的提升，人工智能得到了空前的发展；比如2016年，使用了总计30万盘的围棋对局作为训练数据的AlphaGo战胜了两位人类顶尖围棋职业选手。这让人们看到了人工智能的巨大潜力，期待着在大数据的驱动下人工智能在更多领域展现神通。

然而事与愿违，在现实生活中的大多领域中，数据是有限的、质量是参差不齐的；更现实的问题是领域中持有数据的不同所有者之间是无法共享数据的，出于各种各样的原因考虑。原因中不乏出于对“数据隐私”与“数据安全”问题的担忧。因此数据是以“孤岛”的形式存在的，数据分散在不同所有者中，所以无法把数据“集中处理”并利用这些数据训练算法模型。其结果就是人工智能缺乏其依靠的数据基础，能力受到掣肘。

“联邦学习”的概念便在这种背景下应运而生。在联邦学习框架下，各个“孤岛”之间共享一个全局模型，不需要“孤岛”之间分享（交换）所持有的的数据。“孤岛”专注于训练自己的本地模型，通过在框架内部成员之间交换模型（全局/本地）参数相关的数据，构建全局模型。联邦学习框架天然的解决了“数据隐私”被直接泄漏的风险，同时训练得到模型具有和“数据集中处理”获得的模型相同的性能。

## 功能描述

设计开发一个联邦学习的框架，该框架满足一下功能点：

1. 实现全局模型的训练；
2. 实现全局模型的推测服务；
3. 不同客户端Clients（“孤岛”）之间的数据不可共享；
4. 数据加密：框架内传递的数据为加密数据；

## 问题挑战

1. 将传统算法转化成联邦学习算法，通过交换参数的方式完成模型的训练；
2. 联邦学习“共享”策略的实现，以何种网络拓扑连接框架内的各个成员，以及在拓扑中实现全局模型；

## Demo评审

Demo的评审主要参照以下指标：

1. 功能完整性，完成功能描述所列举的功能；
2. 实现算法的数量；
3. 全局模型的预测性能；
4. 训练全局模型时的收敛能力；
5. 框架的隐私性 & 安全性，框架运行时（训练、推测）对各个客户端所持有的私人数据的保护；

## 联系人

有任何问题，请联系 <denghao02@corp.netease.com>
