我们如何使用众包进行深度学习?

人工智能 神经网络 机器学习 深度学习 分布式计算
2021-11-10 09:55:07

大多数处理深度学习的公司(汽车 - Comma.ai、Mobileye、各种汽车制造商等)确实会收集大量数据进行学习,然后使用大量计算能力从这些大数据中训练神经网络 (NN)。我猜这个模型主要是因为大数据和训练算法都应该保密/专有。

如果我理解正确,深度学习的问题是需要:

  1. 值得学习的大数据
  2. 大量硬件从这些大数据中训练神经网络

我正在尝试考虑如何在这种情况下使用众包。是否可以将NN的训练分发给人群?我的意思不是将大数据收集到一个中心位置,而是从用户硬件上的本地数据(以分布式方式)进行训练。这样做的结果将是大量训练有素的 NN,最终将以机器委员会(CoM) 的方式合并为一个。这样的模型可能吗?

当然,上述模型确实有一个明显的缺点——无法控制用于学习的数据(用户可能故意提交错误/虚假数据,这会降低最终 CoM 的质量)。然而,这可以通过将随机数据样本发送到中央社区服务器进行审查来处理。

示例:想象一个功能强大的智能手机使用其摄像头从车辆仪表板捕捉道路并将其用于训练车道检测。每个用户都将自己进行培训(可能包括任何手动工作,例如用于监督学习的输入图像分类等)。

我想知道上面提出的模型是否可行。或者有没有更好的模型来说明如何使用众包(用户社区)来处理机器学习?

2个回答

首先,你需要给更可靠的用户更多的信任。您可以根据他们发送的数据量以及其他用户可以查看其他用户的提要并对其进行分类的功能来建立信用。从那里,您将确定哪些数据是好的,哪些不是。

您将需要实现一个集中式服务器,除非您尝试建立某种点对点信任系统,但我认为智能手机的功能不足以进行自我培训。

您将需要大型机器来训练 NNet。不要相信用户拥有它们。你最终会得到大量训练有素的 NNet,这并不能构成一个好的 CoM。

已经有一种类似于您描述的方法:联邦学习(FL),其中本地节点(例如移动设备、边缘设备以及不同规模的公司)将训练数据保存在本地,因此每个节点可能有不同的(不平衡和非-iid) 数据集和模型,然后需要对其进行聚合。

联邦学习的一种可能定义

联邦学习是一种机器学习环境,其中多个实体(客户端)在中央服务器或服务提供商的协调下协作解决机器学习问题。每个客户的原始数据都存储在本地,不会交换或传输;相反,旨在立即聚合的集中更新用于实现学习目标。

如果您对更多细节感兴趣,您可以在网上找到很多关于该主题的资源,但我会推荐论文Advances and Open Problems in Federated Learning (2021, by Peter Kairouz et al.) 或 Google 的文章联邦学习:没有集中训练数据的协作机器学习(2017 年)。还有用于 FL 的软件库,例如TensorFlow Federated (TFF)

但是,请注意,分布式机器学习/训练还有其他方法。