群体学习(Swarm Learning)的工作原理——结合区块链和机器学习的更优解决方案

群体学习(Swarm Learning)的工作原理——结合区块链和机器学习的更优解决方案

据估计,一辆自动驾驶汽车每天可以产生数 TB级的数据,这些数据被用于训练机器学习模型,可以让汽车在行驶过程中及时做出决策。

医院用机器学习来快速识别疾病。这类应用非常重要,尤其是对于高传染性疾病来说。患者等待的时间越长,不采用正确的方法实施隔离,传播给他人的风险就越大。

图源:Unsplash 摄影:Edgar Chaparro

这些程序的工作原理是什么?在训练阶段,程序会收到数百万张x光图像,图像上有一个标签,例如,肺结核或肺炎。

最初,该程序会随机预测疾病的类型,因为在这个阶段,该程序还没有学到任何东西。但是,每次猜测疾病时,该程序都会与标签(结核病或肺炎?)进行比较,并记录预测的错误程度。

然后,算法会调整“刻度盘”/参数/权重,预测最小误差。优化器会一直运行,直到该程序很有把握地做出预测。

主要问题

但是,我上面提到的机器学习系统有以下几大问题。

  • 有违反数据保密规定/数据隐私法规定的风险。
  • 由于需要中央服务器交换信息,会导致运行速度慢,并出现重复数据。

假设医院 A 想通过机器学习来更快地得到结核病 (TB) 的结果。但是这家医院没有很多结核病病例,所以也就没有足够的标记数据训练模型。

看起来很容易解决,对吧?只需要从另一家医院获取数据。但不幸的是,由于数据保密问题,这样做是不可能的,也是不道德的。

还有,如何处理自动驾驶汽车中传感器和摄像头生成的数 TB 数据?如果一辆车学会了识别自行车,那么这辆车应该与所有其他节点共享该信息。但是考虑到数据量非常大,又该如何实现呢?

群体学习(Swarm Learning)

群体学习是一个数据隐私保护框架,通过区块链技术,分散基于机器学习的系统。这些数据或“学习成果”不会被送到中心位置,从而实现在医院或汽车之间共享。

我们来看看构建更好地机器学习解决方案的四种方式。如果你想了解更多数据分析相关内容,可以阅读以下这些文章:

5种机器学习的分类器算法
Python机器学习库:pycarets新增时间序列模块
机器学习VS深度学习:有什么区别?
如何回答ML机器学习的面试问题?

本地学习(Local Learning)

举个例子,在本地学习环境中,不同医院之间没有联系。所有训练都在本地进行,医院不能和其他医院共享数据或学习成果,至少不能以自动化的形式共享。

一辆汽车学会了识别树木,但不能与其他汽车共享。因为这是一个非常有限的结构。

本地/边缘学习。图片由作者提供。

中心化学习(Central Learning)

在中心化学习中,数据和神经网络参数会被发送至中心化学习的专用服务器。所有节点(医院或汽车等)都可以访问,并且通过这种方式共享信息。

但我认为,这种设置没有本地学习有用。随着数据的增加,考虑到数据隐私问题,这种做法会不切实际。但至少在本地学习中,不存在这两个问题,而且训练完成的模型可以手动共享。

中心化学习。图片由作者提供。

联邦学习(Federated Learning)

这种部署是现存系统中最常使用的部署类型。联邦学习与群体学习一样好用。但它仍然是以中心位置的形式存在。

系统在本地进行训练,原始数据停留在本地边缘。但是学习部分—神经网络刻度/参数/权重,被转移到了一个中心位置。

这就解决了隐私问题。“学习”模型只是一堆数字,不会透露有关患者或驾驶员的信息。但是,中心位置仍然是一个薄弱环节。

联邦学习。图片由作者提供。

群体学习(Swarm Learning)

群体学习 (SL) 没有中心位置。和联邦学习一样,群体学习的训练是在局部/边缘进行的。并且,在群体学习中,即使是学习内容也不能通过中央专用服务器共享。

这些是用区块链技术交换学习的成果。

正如研究论文中所述:

新节点通过区块链智能合约注册,获取模型,并进行本地模型训练,直到满足定义的同步条件。接下来,通过 Swarm 应用程序编程接口 (API) 交换模型参数,并在开始新一轮训练之前,合并创建一个具有更新参数设置的最新模型。

群体学习。图片由作者提供。

结语

群体学习 (SL) 是区块链和机器学习协同工作的激动人心的演示。这看起来是一个完美的解决方案。我提到了自动驾驶汽车,但研究的重点更是疾病识别。因为数据保密是最重要的。

群体学习背后的团队测试了对三种疾病的执行情况——白血病、肺结核和新冠病毒。结果非常不错。

复制链接到浏览器查看研究文章:

https://www.nature.com/articles/s41586-021-03583-3

群集学习这个名字的灵感来自于动物的集体行为,动物们聚集在一起,实现一个共同目标。蜜蜂在需要寻找新家时会聚在一起。你可能已经看到鸟群聚在一起的画面,画面美丽又同步。

每只动物(节点)都只是一个微不足道的信息,通过联合以及交流,就可以实现伟大的目标。这就是群体学习的意义所在。

本文到这里告一段落。感谢你的阅读。你还可以订阅我们的YouTube频道,观看大量数据科学相关公开课:https://www.youtube.com/channel/UCa8NLpvi70mHVsW4J_x9OeQ;在LinkedIn上关注我们,扩展你的人际网络!https://www.linkedin.com/company/dataapplab/

参考

[1] Swarm Learning for decentralized and confidential clinical machine learning
[2] https://github.com/HewlettPackard/swarm-learning
[3] What is swarm learning? AI, Blockchain and IoT working together to uncover real-time intelligence

原文作者:Vinicius Monteiro
翻译作者:Lia
美工编辑:过儿
校对审稿:Jiawei Tong
原文链接:https://towardsdatascience.com/how-swarm-learning-works-blockchain-and-machine-learning-combined-for-a-better-solution-20484d4f258c