《中国人工智能学会通讯》——8.30 并行与分布式进化分布方式

简介: 本节书摘来自CCAI《中国人工智能学会通讯》一书中的第8章,第8.30节, 更多章节内容可以访问云栖社区“CCAI”公众号查看。

8.30 并行与分布式进化分布方式

目前的并行与分布式进化分布方式主要有种群式分布和维度分块式分布两种。

种群式分布
种群式分布是当前并行与分布式算法主要采用的分布方式[41-44,50-52,74-79] 。该分布方式将进化算法的种群分为若干个小种群(甚至将单独个体视为一个小种群);而后根据并行与分布式进化算法选用的分布式模型,将每个小种群分配给一个节点。每个节点负责更新所分配的种群,并与相关节点通信,交换信息。

在种群式分布方式中,每个个体是完整的,即包含所有维度的信息。每个节点在优化过程中,搜寻的仍然是优化问题的整个解空间。因而,面对高维度优化问题,该分布方式面临着以下挑战。

(1) 收敛速度过慢。随着优化问题维度的增长,问题的解空间往往呈指数式增长。由于每个节点的搜索空间仍然是优化问题的整个解空间,因此,并行与分布式进化算法即使采用每个节点维护一个种群的策略,也面临着收敛速度过慢的问题。

(2)容易陷入局部最优。随着维度的增加,优化问题解空间中的局部最优值的个数往往也呈指数式增加。由于每个节点的搜索空间不变,仍为整个解空间,因此每个节点陷入局部最优的概率相同,当大部分甚至全部节点陷入局部最优时,就很容易导致并行与分布式进化算法陷入局部最优。

维度分块式分布方式
为了突破种群式分布方式的局限性,研究者们最近提出了维度分块式分布方式。该方式主 要 利 用 了 协 同 进 化 算 法(CC,CooperativeCoevolution)的思想[80] 。协同进化算法是一种分治算法,它将一个高维度的问题降解为多个低维度子问题,而后每个子问题视为独立问题单独优化,其主要框架如图 5 所示。从图中可以看出,CC 算法主要由维度分组和协同进化两部分组成。image
CC 算法假设每个子问题相互独立,因此这些子问题便可以独立优化,分别获得对应子空间的最优解;而后将各个子空间的最优解拼凑在一起,便可以得到优化问题完整的全局最优解。显然地,对于 CC 算法而言,算法的核心在于如何将高维度优化问题降解为独立不相关的子问题。理想情况下,一个好的降解算法应该将相关变量放在相同组,将不相关变量放在不同组,而后每组变量视为一个独立子问题。为此,在串行 CC 算法研究中,学者们提出了许多降解算法(DecompositionAlgorithms)。目前的降解算法大致分为动态降解算法[81-87]和固定降解算法[88-90] 两类。

• 动态降解算法将变量之间的相关性视为动态属性,在进化过程中动态执行,因此每次算法分组得到的结果可能不同。最简单的动态分组算法是文献 [82] 提出的随机分组算法。该算法在每次迭代优化前随机地将优化问题的维度分解为大小相同的若干组。为了提高将两个相关变量放入同一组的概率,文献 [83-84] 提出了动态调节分组个数的随机分组算法。进一步地,为了更好地划分分组,文献[85-86,91]在每次进化前根据历史进化信息对维度进行分组。

• 固定降解算法将变量之间的相关性视为静态属性,其一般先于协同进化操作执行,一旦分组确定之后,在整个协同进化过程中,分组信息将保持不变。目前,最典型的固定分组算法是文献 [88] 提 出 的 差 分 分 组 算 法(DG,DifferentialGrouping)。该算法通过两两变量之间的偏差分信息来检测变量的相关性。一旦变量的相关性确定之后,分组算法便根据相关性信息将变量分为不同的组,而后在协同进化过程中变量分组保持不变。DG只能检测变量间的直接相关性,而无法检测变量间接相关性。为克服该缺点,文献 [89-90] 扩展了 DG算 法, 分 别 提 出 了 XDG(Extended DifferentialGrouping) 和 GDG(Global DifferentialGrouping)算法,能够同时检测变量之间的直接相关性和间接相关性。

至于 CC 算法的第二个操作——协同进化,每个子问题被视为独立问题单独优化。具体地,针对每个子问题,进化算法维持一个种群优化该子问题。然而由于评估个体时,需要所有维度的信息,因此在优化过程中子问题与子问题之间需要交换信息,评估种群适应值,从而筛选个体。在目前的串行 CC 算法中,每个子问题优化过程中,除该子问题对应的维度外,其他维度的值都固定为全局最优解对应的维度值。

基于以上信息,可以看出,基于动态分组的CC 算法不适合用于并行与分布式进化算法,这是因为分组信息在进化过程中动态变化,因而导致并行模型的节点之间需要相互交换种群信息,以此才能根据上一代种群信息生成下一代个体。这种通信势必导致并行模型的通信量和通信时间大大增加,不利于并行与分布式进化算法的性能提升。因此,基于维度分块式的并行分布式进化算法主要采用固定分组算法。

结合岛屿式分布式模型,文献 [42,92] 提出了并行与分布式协同进化算法。该算法将每个变量单独成组,视为独立子问题,而后岛屿式模型中的每个节点负责一个子问题的优化。每个节点优化过程中,将其他节点所对应的维度信息固定;所有节点进化完成后,每个节点将优化得到的最优解发送给其他节点。

综上所述,可以看出维度分块式分布式方式具有以下三个特点。

(1)扩展性强。该分布方式通过对维度分块,将高维优化问题降解为低维优化问题。因此,理论上该分布方式可以处理任意维度的优化问题。

(2)收敛速度快。该分布方式将优化问题分解为低维优化问题;相应地,优化问题的解空间也被划分为多个低维的子空间。因此,在优化每个子问题时,每个节点所负责优化的种群都能快速地收敛到所对应子空间的最优解。

(3)对分组算法的依赖性强。由于每个子问题独立优化,分组算法的好坏直接影响着协同进化算法的性能。因此,该分布方式下的并行与分布式进化算法对分组算法有着比较强的依赖性。

相关文章
|
7月前
|
机器学习/深度学习 分布式计算 数据处理
分布式计算框架:并行力量的交响乐章
分布式计算框架如Apache Spark解决单机计算挑战,通过拆分任务到多机并行处理提升效率。Spark以其内存计算加速处理,支持批处理、查询、流处理和机器学习。以下是一个PySpark统计日志中每日UV的示例,展示如何利用SparkContext、map和reduceByKey进行数据聚合分析。这些框架的运用,正改变大数据处理领域,推动数据分析和机器学习的边界。【6月更文挑战第18天】
279 2
|
2月前
|
机器学习/深度学习 边缘计算 人工智能
第二届边缘计算与并行、分布式计算国际学术会议(ECPDC 2025) 2025 2nd international Conference on Edge Computing, Parallel and Distributed Computing
第二届边缘计算与并行、分布式计算国际学术会议(ECPDC 2025) 2025 2nd international Conference on Edge Computing, Parallel and Distributed Computing 机器学习 计算学习理论 数据挖掘 科学计算 计算应用 数字图像处理 人工智能
82 6
|
6月前
|
机器学习/深度学习 人工智能 Shell
人工智能平台PAI操作报错合集之在分布式训练过程中遇到报错,是什么原因
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
5月前
|
分布式计算 并行计算 大数据
NumPy 并行计算与分布式部署
【8月更文第30天】随着数据量的不断增长,传统的单机计算模型已经难以满足对大规模数据集处理的需求。并行和分布式计算成为了处理这些大数据集的关键技术。虽然 NumPy 本身并不直接支持并行计算,但可以通过结合其他库如 Numba 和 Dask 来实现高效的并行和分布式计算。
57 1
|
5月前
|
人工智能 安全 Anolis
中兴通讯分论坛邀您探讨 AI 时代下 OS 的安全能力 | 2024 龙蜥大会
操作系统如何提供符合场景要求的安全能力,构建更加安全可信的计算环境。
|
5月前
|
存储 异构计算
自研分布式训练框架EPL问题之通过strategy annotation实现流水并行如何解决
自研分布式训练框架EPL问题之通过strategy annotation实现流水并行如何解决
|
6月前
|
Web App开发 机器学习/深度学习 人工智能
AI Agent满级进化!骑马种田、办公修图,样样精通,昆仑万维等发布通用Agent新框架
【7月更文挑战第23天】AI Agent技术迎来突破,昆仑万维联合顶尖学府发布Cradle框架,赋能智能体通用控制能力。Cradle结合大型语言模型与六大核心模块,实现跨场景灵活操控,从游戏到办公软件,无师自通。实验验证其在《荒野大镖客2》等游戏及Chrome、Outlook上的卓越表现。框架开源,促进AI社区进步,但仍需面对实际应用的挑战与安全性考量。[论文](https://arxiv.org/abs/2403.03186)详述创新细节。
132 3
|
6月前
|
分布式计算 API 对象存储
Ray是一个开源的分布式计算框架,用于构建和扩展分布式应用。它提供了简单的API,使得开发者可以轻松地编写并行和分布式代码,而无需担心底层的复杂性。
Ray是一个开源的分布式计算框架,用于构建和扩展分布式应用。它提供了简单的API,使得开发者可以轻松地编写并行和分布式代码,而无需担心底层的复杂性。
1162 11
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能平台PAI产品使用合集之如何配置cluster系统自动生成分布式参数
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
2024通义语音AI技术图景,大模型引领AI再进化
2024通义语音AI技术图景,大模型引领AI再进化