1联合学习简介
Google AI 团队科学家 Brendan McMahan 和 Daniel Ramage 的博客文章 Federated Learning: Collaborative Machine Learning without Centralized Training Data 。
标准的机器学习方法需要在一台机器上或一个数据中心中有集中的训练数据。为了使谷歌的服务更加完善,我们已经构建了最安全和最具稳定性的云基础架构来处理这些数据。现在,对于通过用户与移动设备交互训练的模型,我们正在引入一种新的方式:联合学习。
联合学习可以使移动设备协同训练一个共享的预测模型,同时将所有的训练数据保存在设备上,籍此将机器学习和云端存储数据解耦合。这超越了使用本地模型在移动设备上进行预测的方式 (比如 Mobile Vision API 和将模型引入设备 训练 的 On-Device Smart Reply)。
它的工作过程如下:在设备中下载当前模型,通过在设备上学习数据来改进它,然后将改动总结成一个集中的小的更新。只有这个更新会发送到云端,使用加密技术传输。在云端它会立即与其他用户的更新进行平均处理,以改进共享模型。所有的训练数据还保持在本地设备上,并不会被发送到云端存储。
本地设备会根据使用情况(A)在本地对模型进行个性化设置。许多用户更新的聚合 (B) 形成了对共享模型一致的修改(C),之后这个过程会被重复。
联合学习可以实现更智能的模型,更低的延迟和更低的功耗,同时还确保隐私。这种方法还有另一个直接的好处:除了给共享模型提供更新,本地设备中的改进模型也可以被立即使用,通过操作手机的方式来增强个性化的体验。
我们现在正在 Gboard on Android 针对 Google 键盘测试联合学习。当 Gboard 显示建议的查询时,本地设备会在存储有关当前上下文的信息以及是否点击了该建议。联合学习通过处理设备上的历史记录以建议改进下一个迭代的 Gboard 查询建议模型。
Gboard联合学习的测试场景
联合学习需要解决的问题
为了实现联合学习,我们必须要克服许多算法和技术的挑战。在传统的机器学习系统,像随机梯度下降 ( SGD )这样运行大型数据集的优化算法均匀分区在云服务器上。这种高度迭代的算法在训练数据方面需要低延时和高吞吐量。在联合学习的设置中,数据以极不均匀的方式分布在数百万台设备上。除此之外,这些设备具有明显更高的延时,更低的吞吐量,并且只能间歇的用于训练。
这些带宽和延迟的限制激发了我们提出 平均联合算法,相较于原生的联合 SGD 版本,它可以使用10-100倍的通信速度训练深度网络。处理的关键是使用现代移动设备中强大的处理器去计算比简单梯度处理更重要的高质量更新。鉴于它是通过使用少量迭代高质量更新去产生一个优质模型的,训练需要的通信就会少很多。因为通常上传速度会比下载速度小很多,我们还开发了一种叫压缩更新的新方式来降低100倍的通信成本,它的核心是随机旋转和量化。这些方法的关注点在训练深度网络,我们也为高维稀疏凸模型设计算法,用于计算像点击率预测这样的问题。
将此技术部署到数百万的运行 Gboard 的设计各异的电话需要积累多年的技术栈。在设备训练方面使用微型版本的 TensorFlow 。
仔细的安排调度,确保训练仅在设备空闲的时候运行,插入电源并连接无限网络,将不会对设备的性能造成影响。
参与联合学习的场景不会影响手机用户的体验。
本地设备仅在使用体验不受到负面影响的情况下才参与联合学习。系统之后将以安全、高效、可扩展和容错的方式进行通信和聚合模型的更新,只有将研究和基础设备结合才能让联合学习发挥优势成为可能。
我们并没有止步于联合学习无需在云端存储用户数据。我们使用加密技术开发了一个安全聚合协议,因此协调服务器只会在100或1000个用户都参与时解密平均更新,没有独立的设备会在平均前被检查。它是同类中第一个适用于深度网络规模问题和实际连接约束的协议。我们设计了平均联合,因此协调服务器只需要平均更新,它允许使用安全的聚合方式。这个协议是通用的,也可以应用于其他问题。我们正在努力实现此协议的产品级实施,并期望在不久的将来将其部署到联合学习的应用程序中。
联合学习带来的新的挑战
我们的工作只触及了这一可能性的表面。联合学习不能解决所有机器学习的问题(例如,通过使用精心标注的例子训练学习识别不同狗的品种),而其它模型的必要训练数据则存储到了云端(例如为 Gmail 过滤垃圾邮件做训练)。因此 Google 将继续推进云端机器学习的最新技术,我们也会继续研究扩展使用联合学习解决问题的领域。除了 Gboard 查询推荐外,我们希望通过基于设备上实际输入的内容(它可以是任何风格)、喜欢用什么样的方式查看、分享和删除并排序照片来改进语言模型。
应用联合学习需要机器学习从业者接受新的工具和新的思考方式,模型开发、训练和无法直接访问原始数据标注的评估,同时通信成本也是一个制约因素。我们相信联合学习的用户利益紧密结合了相关的技术挑战,通过发布我们的工作内容希望在机器学习社区内展开广泛的讨论对话。
迁移学习(Transfer Learning)
在传统的机器学习的框架下,学习的任务就是在给定充分训练数据的基础上来学习一个分类模型;然后利用这个学习到的模型来对测试文档进行分类与预测。然而,我们看到机器学习算法在当前的Web挖掘研究中存在着一个关键的问题:一些新出现的领域中的大量训练数据非常难得到。我们看到Web应用领域的发展非常快速。大量新的领域不断涌现,从传统的新闻,到网页,到图片,再到博客、播客等等。传统的机器学习需要对每个领域都标定大量训练数据,这将会耗费大量的人力与物力。而没有大量的标注数据,会使得很多与学习相关研究与应用无法开展。其次,传统的机器学习假设训练数据与测试数据服从相同的数据分布。然而,在许多情况下,这种同分布假设并不满足。通常可能发生的情况如训练数据过期。这往往需要我们去重新标注大量的训练数据以满足我们训练的需要,但标注新数据是非常昂贵的,需要大量的人力与物力。从另外一个角度上看,如果我们有了大量的、在不同分布下的训练数据,完全丢弃这些数据也是非常浪费的。如何合理的利用这些数据就是迁移学习主要解决的问题。迁移学习可以从现有的数据中迁移知识,用来帮助将来的学习。迁移学习(Transfer Learning)的目标就是将从一个环境中学到的知识用来帮助新环境中的学习任务。因此,迁移学习不会像传统机器学习那样作同分布假设。举一个通俗的例子,一个会下象棋的人可以更容易的学会下围棋;一个认识桌子的人可以更加容易的认识椅子;
在迁移学习方面的工作目前可以分为以下三个部分:同构空间下基于实例的迁移学习,同构空间下基于特征的迁移学习与异构空间下的迁移学习。基于实例的迁移学习有更强的知识迁移能力,基于特征的迁移学习具有更广泛的知识迁移能力,而异构空间的迁移具有广泛的学习与扩展能力。
迁移学习即一种学习对另一种学习的影响,它广泛地存在于知识、技能、态度和行为规范的学习中。任何一种学习都要受到学习者已有知识经验、技能、态度等的影响,只要有学习,就有迁移。迁移是学习的继续和巩固,又是提高和深化学习的条件,学习与迁移不可分割。对于人工智能的发展路径,很多人可能对基于大数据的人工智能很熟悉,但其实还有基于小样本的尝试和迁移,这也是人工智能的一种路径。