0.写在前面

注:图床使用的是github,所以如果图片加载不出来,请打开小飞机。

这是在B站看的一则视频。

内容是【人工智能前沿学生论坛 第十期】

清华大学博三的张家绮学长做的关于一个分布式优化算法及其应用的分享

内容主要分四个小节

  • 背景介绍
  • 研究现状与动态
  • 我们的工作
  • 集中式优化和随机梯度

这里对前面两小节做了一个自己的记录,主要内容为分布式优化算法的背景和研究现状。

通过这篇博文可以简单的了解一下

  • 什么是多自主体控制系统?
  • 什么是分布式优化问题?
  • 分布式优化算法的应用背景
  • 分布式优化算法中经典的算法
  • 分布式优化算法研究动态

1.背景介绍

① 概念解释

image-20200620010434385

首先来理解一下,多自主体系统(Multi-Agent System) 又可以叫做多智能体系统。

关于自主体的概念可能会比较广,例如,

  • 在一架无人机编队中,每一架无人机可以看做一个自主体(agent)
  • 在智能电网中,每一个供电站可以看做一个自主体(agent)
  • 在深度学习中,每一个TPU/CPU/服务器可以看做一个自主体(agent)

(张量处理器(英语:tensor processing unit,缩写:TPU)是Google机器学习全定制人工智能加速器专用集成电路,专为Google的深度学习框架TensorFlow而设计。)


自主体之间通过协作来完成一个给定的任务

这里的协作可以理解为互相之间进行通信或者交换信息。

这里的给定的任务在机器学习中可以理解为优化神经网络的任务。它可以理解为一个分布式优化问题

在这个分布式优化问题中,单个自主体智能获得局部信息,自主体需要通过相互交换信息来实现全局目标

② 应用背景


​ 可以看到分布式优化算法有着许多的应用背景,比如在控制领域

以无人机编队举例来说,

如果一个无人机编队想要排成一个五角星队形,而他没有一个中心控制节点。

那么一架无人机想要控制自己的位置,可以通过他身边邻近的无人机的位置信息来做出决策,决定自己的位置。


分布式优化算法近年来机器学习和人工智能领域得到了广泛的运用:

比如以这个边缘计算为例:

阿里云最近发布的这个边缘计算产品(Link Edge)被誉为物联网的下一个风口

它的每一个终端节点都不靠近数据中心,因此它的每一个终端节点都必须能够自主的做出决策

这就很符合分布式优化算法的应用场景。


机器学习的训练中,分布式优化也非常常见。

目前的神经网络,机器学习等对计算资源的消耗比较高。

单个处理器往往无法解决。我们一般会采用多个GPU或多个CPU的方式来加速计算。

image-20200620014649348 image-20200620014723766

​ 可以看到用多个GPU,或多个CPU分布式并行的进行计算可以大幅的减少计算的时间。

③ 小结

image-20200620015948094

所谓分布式优化,

我们的目的是优化。比如我们要优化一个神经网络。

但我们选择的方式是一种分布式处理方式。

为什么要采用这种方式呢?有两方面的原因:

  • 一个是实际物理环境中的约束

    这个在控制领域比较常见,比如前面所说的无人机编队。

  • 另一个是为了加速优化过程

    这个在机器学习过程中比较常见

前面所说的多自主体系统(Multi-Agent System)就是分布式优化算法的实现载体及应用对象

分布式优化算法的设计目标以及研究核心可以总结为四个字多 快 好 省

  • 多:自主体个数多

    比如在无人机编队中,分布式优化算法需要影响无人机编队中的每一架无人机

    比如在机器学习中,我们可以用几十个,几百个甚至上千个CPU GPU来加速训练

  • 快:优化收敛速度要快

    比如在机器学习中,我们使用分布式优化算法的目的就是为了让训练速度更快

  • 好:算法应用场景多

    这个应用场景一会会介绍。这里比如说一些agent之间通信可能是多边的,或者是单向的。

  • 省:通信等资源消耗少

    因为分布式优化算法必然会涉及到许多自主体,所以单个自主不能消耗过多的资源,不然从总体上会导致不必要的资源消耗太大。

2.研究动态与现状

①分布式优化算法的数学模型

image-20200620025205010

分布式优化算法主要解决这样一个形式的优化问题:类似于一些子目标函数的求和形式。

例如机器学习中,每个 f ( x ) f(x) f(x)可能对应一个样本的损失函数。

但与传统情况不同的是,我们这里的每个自主体都可能只知道其自身的子目标函数,

其中每个自主个体都有一个其自身的副本 x i x_i xi这个副本是不能全局共享的。


我们可以利用这个图来表示这个主体之间的通信拓扑:

image-20200620025640961
  • 每个自主体对应一个节点

  • 两个自主体可以交换信息对应图中两个节点存在一条边

    为什么不能两两互相通信呢?因为当网络非常大的时候,两两互相通信对资源消耗是非常大的,比如你有 n n n台处理机,

    那么在来两两互相通信的时候你需要消耗 n ( n − 1 ) 2 \frac{n(n-1)}2 2n(n1) 次资源。

  • 为了降低这种资源消耗,我们设计每个个体只允许与它的邻居(它的相邻节点)进行通信

②分布式优化算法的分类

当前分布式优化算法主要分成以下几类:

image-20200620023529534

其中左边黑色字体代表相对简单的情况,蓝色字体代表相对困难的情况。

③ 有中心节点VS无中心节点

image-20200621102923513

在有中心节点的情况中:

中心节点就是可以和其他所有节点都能通信的节点。我们一般把这个中心节点叫做master

如在机器学习中,每个节点都可以将自己的梯度信息发送给中心节点,这样中心节点就可以获得所有节点的梯度信息。然后再由中心节点来修改决策变量,并将修改好的决策变量发送给各个服务器。

然后不断重复上述过程来达到加速计算的目的。

在没有中心节点的情况:

整个服务器拓扑类似于一个环状。

每个服务器智能将自己的梯度信息发送给自己的邻居,我们一般发送一个状态,状态是指自己对决策变量副本的一个估计,然后他接收邻居的状态,再根据邻居的状态和自身的梯度来更新自己的一个状态。

可以发现,无中心节点的情况每个节点只需要跟自己的邻居交互。

image-20200621103658125

④有向图和无向图

image-20200621104805771 image-20200621104830816

⑤静态图和时变图

⑥同步更新和异步更新

⑦次线性收敛和线性收敛

image-20200621105849182

⑧小结

image-20200621105920853

3.写在最后

第一小节主要内容为背景介绍,主要从当前的一些应用场景去了解一下什么多智能体系统,以及在以多智能体系统为载体来运用分布式优化算法。写的较为通俗易懂。

第二小节涉及到一些偏专业的知识,在此并不做太过深入的了解。

总体来说第二小节了解三方面的内容,

  1. 有中心节点、无中心节点的概念;有向图无向图的概念;静态图时变图的概念;同步更新异步更新的概念;次线性收敛线性收敛的概念
  2. 不同算法之间的比较(见小结中的PPT图片);算法的应用场景与出处。
  3. 分布式优化算法设计目标(小结中的PPT图片);

4.参考文献

bilibili 人工智能 | 分布式优化算法及其在多智能体系统与机器学习中的应用

知乎 分布式优化算法及其在多智能体系统与机器学习中的应用

Logo

鸿蒙生态一站式服务平台。

更多推荐