分布式机器学习、联邦学习、多智能体的区别和联系——一文进行详细解释

news2025/1/22 12:21:16

1 分布式机器学习、联邦学习、多智能体介绍

最近这三个方面的论文都读过,这里写一篇博客归纳一下,以方便搞这几个领域的其他童鞋入门。我们先来介绍以下这三种机器学习范式的基本概念。

1.1 分布式机器学习介绍

分布式机器学习(distributed machine learning),是指利用多个计算/任务节点(Worker)协同训练一个全局的机器学习/深度学习模型(由主节点(Master)调度)。需要注意的是,分布式机器学习和传统的HPC领域不太一样。传统的HPC领域主要是计算密集型,以提高加速比为主要目标。而分布式机器学习还兼具数据密集型特性,会面临训练数据大(单机存不下)、模型规模大的问题。此外,在分布式机器学习也需要更多地关注通信问题。对于计算量大、训练数据量大、模型规模大这三个问题,分布式机器学习可以采用以下手段进行解决:

1)对于计算量大的问题,分布式多机并行运算可以基本解决。不过需要与传统HPC中的共享内存式的多线程并行运算(如OpenMP),以及CPU-GPU计算架构做区分。这两种单机的计算模式我们一般称为计算并行)。

2)对于训练数据大的问题,需要将数据进行划分,并分配到多个工作节点上进行训练,这种技巧一般被称为数据并行。每个工作节点会根据局部数据训练出一个子模型,并且会按照一定的规律和其他工作节点进行通信(通信的内容主要是子模型参数或者参数更新),以保证最终可以有效整合来自各个工作节点的训练结果并得到全局的机器学习模型。

如果是训练数据的样本量比较大,则需要对数据按照样本进行划分,我们称之为“数据样本划分”,按实现方法可分为“随机采样法”和“置乱切分法”。

如果训练数据的维度比较高,还可以对数据按照维度进行划分,我们称之为“数据维度划分”。相比于数据样本划分,数据维度划分与模型性质和优化方法的耦合度较高。
在这里插入图片描述

。每个工作节点会根据局部数据训练出一个子模型,并且会按照一定的规律和其他工作节点进行通信(通信的内容主要是子模型参数或者参数更新),以保证最终可以有效整合来自各个工作节点的训练结果并得到全局的机器学习模型。

3)对于模型规模大的问题,则需要对模型进行划分,并且分配到不同的工作节点上进行训练,这种技巧一般被称为模型并行。与数据并行不同,模型并行的框架下各个子模型之间的依赖关系非常强,因为某个子模型的输出可能是另外一个子模型的输入,如果不进行中间计算结果的通信,则无法完成整个模型训练。因此,一般而言,模型并行相比数据并行对通信的要求更高。

在这里插入图片描述

1.2 联邦学习介绍

联邦学习是一种特殊的采用数据并行的分布式机器学习(可分为横向联邦学习(对应分布式机器学习中的数据样本划分)和纵向联邦学习(对应分布式机器学习中的数据维度划分)),除了关注传统分布式机器学习的算法、通信、收敛率等问题之外,还要关注用户的数据隐私和容错性问题(因为用户终端是用户手机或物联网设备,很可能随时挂掉)。 其设计目标是在保障大个人数据隐私、保证合法合规的前提下,在多参与方(可能是现实中的多个机构)或多计算结点之间协同学习到一个更好的全局模型。联邦学习的数据不共享,(加密后的)参数可共享,它可以基于server-client主从的中心化(centralized)结构,也可以是去中心化(decentralized)结构。

形式化地,传统联邦学习的优化目标函数可以写为[1]:

在这里插入图片描述

在这里插入图片描述

经典的server-client式的联邦学习框架的训练过程可以简单概括为以下步骤:

1)server端建立初始模型,并将模型的参数发往各client端;

2)各client端利用本地数据进行模型训练,并将结果返回给server端;

3)server端汇总各参与方的模型,构建更精准的全局模型,以整体提升模型性能和效果。

当然,以上仅仅指中心化的server-client联邦学习

在这里插入图片描述

相比传统的分布式机器学习,它需要关注系统异质性(system heterogeneity)、统计异质性(statistical heterogeneity)和数据隐私性(data privacy )。系统异质性体现为昂贵的通信代价和节点随时可能宕掉的风险(容错);统计异质性数据的不独立同分布(Non-IID)和不平衡。由于以上限制,传统分布式机器学习的优化算法便不再适用,需要设计专用的联邦学习优化算法。

联邦学习框架包含多方面的技术,比如传统分布式机器学习中的模型训练与参数整合技术、Server与Client高效传输的通信技术、隐私加密技术、分布式容错技术等。

最后,大家如果想寻找FedAvg算法的实现,可以参考我的GitHub仓库
https://github.com/orion-orion/FedAO
该项目集成了FedAvg算法的Pytorch/Tensorflow、多进程/分布式、同步/异步实现,可供有这个需要的童鞋使用。

1.3 群体智能基本概念

多智能体系统(multi-agent system) 是一组自主的,相互作用的实体,它们共享一个共同的环境(environment),利用传感器感知,并利用执行器作动。多智能体系统提供了用分布式来看待问题的方式,可以将控制权限分布在各个智能体上。

尽管多智能体系统可以被赋予预先设计的行为,但是他们通常需要在线学习,使得多智能体系统的性能逐步提高。而这就天然地与强化学习联系起来,智能体通过与环境进行交互来学习。在每个时间步,智能体感知环境的状态并采取行动,使得自身转变为新的状态,在这个过程中,智能体获得奖励,智能体必须在交互过程中最大化期望奖励。

2 三者的区别和联系

在这里插入图片描述

3 个人研究体会

传统的分布式机器学习已经被研究十几年了,Low-hanging fruits几乎被人摘完了,目前各大顶会上的分布式机器学习主要是数学味道很浓的分布式数值优化算法。而其他方面,像我关注的分布式多任务学习,近年来相关的顶会论文开始减少。

联邦学习可以看做一种特殊的分布式学习,它有一些特殊的设定,比普通的分布式学习要困难一些,还是有很多方向可以研(灌)究(水)的,做好了应该可以发顶会。

  • 算法层面 可以在优化算法的通信层面降低算法通信次数,用少量的通信达到收敛;也可以从优化算法中的权重/梯度聚合(aggregation)入手,提高最终模型精度。基于IID数据集的分布式数值优化算法已经被研究得比较透彻了, 但因为联邦学习面临数据是IID/非平衡甚至是异构的,需要引入很多其他技巧才能解决,比如异构数据联合学习、多任务学习[5][6](也是我研究的方向)等。这个方向很适合数值优化、机器学习、多任务学习背景的童鞋切入。
  • 安全/隐私问题 虽然联邦学习的基础设定就是节点之间不共享数据以保护用户隐私,但熟悉网络安全的同学应该知道,我们很容易从梯度、模型参数中反推出用户数据。而针对这方面提出攻击和防御的方法都可以发表出论文,这方面适合网络安全背景的童鞋切入。
  • 容错性/鲁棒性。联邦学习中常常遇到拜占庭攻击问题(即恶意参与者问题)。比如在中心化的算法中,有节点恶意发送错误的梯度给服务器,让训练的模型变差;在去中心化算法中,可能有多个任务节点化为拜占庭攻击者互相攻击[4]。对于这种问题设计新的攻击方法和防御方法都可以发表论文。这个方向很适合有分布式系统背景的童鞋切入。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1268665.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vivado综合分析与收敛技巧3

1、最优化 RAMB 输入逻辑以允许输出寄存器推断 以下 RTL 代码片段可从块 RAM ( 实际上为 ROM ) 生成关键路径 , 其中包含多个止于触发器 (FF) 的逻辑层次。 RAMB单元已在无可选输出寄存器 (DOA-0) 的情况下完成推断 , 这给 R…

美颜SDK是什么?美颜SDK对比测评

为了实现实时、高效的美颜效果,开发者们纷纷转向美颜SDK这一技术解决方案。那么,美颜SDK究竟是什么?本文将深入探讨美颜SDK的概念,并通过对比测评不同美颜SDK,为开发者和用户提供更清晰的选择参考。 一、美颜SDK的概念…

高效管理文件方法:根据文件大小智能移动至目标文件夹

在日常的工作中,会遇到大量的文件,从几个KB的小文档到几个GB的大数据文件。如何有效地管理这些文件,以便能够快速找到所需的资料,是一项重要的任务。传统的文件管理方式往往会在大量的文件和文件夹中迷失,而无法快速找…

SAP 第三方销售

SAP 第三方销售 第三方销售是比较常见的业务,,虽然他的一部分属于SD模块,但配置也并不难,一起测试下。 1、流程概述 第三方采购指的是:公司A和客户B签订销售合同,公司在SAP 系统内开销售订单&#xff0c…

temu反洗钱协议在哪里签署

反洗钱是国际社会关注的重要议题之一。为了加强国际合作,各国政府积极参与签署反洗钱协议。TEMU反洗钱协议作为国际间的重要合作框架,其签署地点及其意义备受关注。本文将深入探讨TEMU反洗钱协议的签署地点及其背后的意义。 先给大家推荐一款拼多多/temu…

顶级大厂Quora如何优化数据库性能?

Quora 的流量涉及大量阅读而非写入,一直致力于优化读和数据量而非写。 0 数据库负载的主要部分 读取数据量写入 1 优化读取 1.1 不同类型的读需要不同优化 ① 复杂查询,如连接、聚合等 在查询计数已成为问题的情况下,它们在另一个表中构…

代理模式,dk动态代理,cglib动态代理

目录 一、代理模式1、生活中代理案例2、为什么要使用代理3、代理模式在Java中的应用4、什么是代理模式 二、代理的实现方式1、java中代理图示2、静态代理 三、动态代理1、概述2、JDK动态代理jdk动态代理原理分析 3、Cglib动态代理3.1 基本使用3.2 cglib基本原理 一、代理模式 …

【长文干货】Python可视化教程

文章目录 数据介绍Matplotlib散点图折线图柱形图直方图 Seaborn散点图折线图柱形图直方图 Bokeh散点图折线条形图交互式 Plotly基本组合优化:定制化下拉菜单 总结 数据介绍 在这个小费数据集中,我们记录了20世纪90年代初期餐厅顾客在两个半月内给出的小…

基于SSM框架的图书馆管理系统设计与实现

基于SSM框架的图书馆管理系统 摘要:在21信息时代中,编程技术的日益成熟,计算机已经是普通使用的。编程技术的实现是基于计算机硬件上,计算机科学与技术的进步,让时代发展的更快,更加信息化。人们都是学习如…

Http协议(Hyper Text Transfer Protocol)

Http协议(Hyper Text Transfer Protocol) 这是一种超文本传输协议,规定了浏览器与服务器中间数据传输的规则 特点: 基于TCP协议:面向连接,安全基于请求-响应模型:一次请求对应一次响应http协议是无状态的协议&#…

【MYSQL】表的基本查询

目录 前言 一、Create(增) 1.单行数据 全列插入 2.多行数据 指定列插入 3.插入否则更新 4.替换 二、Retrieve(查) 1.select列 1.1全列查询 1.2指定列查询 1.3查询字段为表达式 1.4为查询结果指定别名 1.5结果去重 …

班主任每日工作流程

以下是班主任的每日工作流程,虽然每天的工作都很繁琐,但是为了学生的成长和发展,班主任们必须认真履行职责,用自己的爱心和责任心去呵护每一个学生。 早晨7:30到校,组织学生打扫卫生,检查学生作…

python基础练习题库实验7

文章目录 题目1代码实验结果题目2代码实验结果题目3代码实验结果题目总结题目1 编写代码创建一个名为Staff的类和方法__init__,以按顺序初始化以下实例属性: -staff_number -first_name -last_name -email 代码 class Staff:def __init__(self, staff_number, first_name,…

【java】图书管理系统

完整代码链接:https://gitee.com/zeng-xuehui/Java_repository/tree/master/test_11_27_1/src我们在写这个系统时,首先需要搭建框架,再实现业务逻辑;图书管理系统是用户通过各种功能对图书进行操作的一个系统;我们需要…

配电网重构单时段+多时段(附带matlab代码)

配电网重构单时段多时段 对于《主动配电网最优潮流研究及其应用实例》的基本复现 简介:最优潮流研究在配电网规划运行中不可或缺,且在大量分布式能源接入的主动配电网环境下尤为重要。传统的启发式算法在全局最优解和求解速度上均无法满足主动配电网运行…

基于字面的文本相似度计算和匹配搜索

搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术细节以及项目实战(含码源) 专栏详细介绍:搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术…

处理跨域问题

这里只讨论后端对跨域支持,前端的跨域支持一般都是在测试阶段用用的,跨域还是要后端解决 跨域问题的产生:浏览器的一种安全机制-->同源策略限制 同源策略:URL中包括协议,域名,IP,端口都要完全相同,如果有一项不同,浏…

【Vulnhub靶机】lampiao--DirtyCow

文章目录 漏洞介绍简介原因类型版本危害 信息收集主机扫描端口扫描 漏洞探测漏洞利用权限提升nc文件传输编译 参考 靶机地址:lampiao 下载地址:Lampio: 1 漏洞介绍 简介 脏牛(Dirty Cow)是Linux内核的一个提权漏洞,…

【Python】SqlmapAPI调用实现自动化SQL注入安全检测

文章目录 简单使用优化 应用案例:前期通过信息收集拿到大量的URL地址,这个时候可以配置sqlmapAP接口进行批量的SQL注入检测 (SRC挖掘) 查看sqlmapapi使用方法 python sqlmapapi.py -h启动sqlmapapi 的web服务: 任务流…

Linux常用命令——rm 命令

文章目录 Linux系统中的rm命令是一个非常强大且危险的工具,用于删除文件和目录。由于其具有不可逆的特性,了解其参数和正确使用非常重要。 1. 基本用法 rm命令的基本格式是rm [选项] 文件或目录。不带任何选项时,rm命令仅删除文件。 示例&a…