使用FATE框架开始联邦学习之路
联邦学习(Federated Learning)
- 便于理解的小漫画
联邦学习是谷歌在16年提出的一个概念,对谷歌来说主要是解决使用大量安卓用户数据来进行模型训练的隐私问题,虽然隐私问题在我们国家还是比较模糊,很多小游戏app都可能索要用户的所有权限,但是对它的研究肯定是有价值的。联邦学习对于打破数据孤岛,让数据产生更多的价值是很有意义的,对于目前的银行以及医疗等注重隐私的行业,都有很大的实际作用。不过在我看来联邦学习暂时也只能算一个概念,它涉及到同态加密,多方安全计算,学习模型的鲁棒性,机器学习的效率等等,这些单拉出来都可以作为一个研究方向,一个完美的联邦学习目前是不存在的。
目前的联邦学习主要分为横向联邦学习(Horizontal Federated Learning)和纵向联邦学习(Vertical Federated Learning)以及联合迁移学习(Federated Transfer Learning)三种。他们主要是根据数据集来进行划分的,横向联邦是在两数据集用户特征重叠较多,用户重叠较少的情况下,将数据进行用户维度的切分,取出双方用户特征相同而用户不完全相同的那部分数据进行训练。比方说处于不同地区的两家银行,虽然用户交集很少,但是用户特征是比较相似的。纵向联邦则是在两个数据集的用户重叠较多而用户特征重叠重叠较小的情况,将数据集在特征维度进行切分,取出双方用户相同而用户特征不完全相同的部分进行训练。这个可以举个同一个地方的一家医院和一家银行的例子。迁移学习就是用户或是用户特征两者都不怎么重叠的情况下,不对数据切分,转而利用迁移学习来克服数据或是标签不足的情况。
FATE框架
FATE
FATE (Federated AI Technology Enabler) 是微众银行AI部门发起的开源项目,为联邦学习生态系统提供了可靠的安全计算框架。FATE项目使用多方安全计算 (MPC) 以及同态加密 (HE) 技术构建底层安全计算协议,以此支持不同种类的机器学习的安全计算,包括逻辑回归、基于树的算法、深度学习和迁移学习等。目前在github上有3.4k的star,算是大众比较认可的一个联邦学习框架,目前不支持windows,只支持mac和linux。有windows需要的可以转去用Pysyft。FATE单机部署
这里提一下在虚拟机中安装FATE需要注意的事项:首先在ubuntu中安装python以及doceker,版本优先选择python3.6以及docker18.09。其次在用wget下载了压缩包后确认下载文件无误后再进行解压。测试步骤按照官方文档中进行即可。实际上在使用框架中还是要集群部署,在接下来几周我部署后可以更新下要注意的事项。