多智能体强化学习入门(三)——矩阵博弈中的分布式学习算法


一、引言

多智能体系统一直在学术界或者工业届都是一个热点。其核心领域是关于如何将系统采用分布式的算法控制。在分布式算法中,没有一个中心节点进行总体控制,每个智能体通过与环境交互自己学习自己的最优策略,在不知道全局信息的情况下将策略收敛到纳什均衡点。通常意义下,智能体只知道自身获得的奖励值,不知道环境中的奖励函数,不知道其他智能体的策略,不知道其他智能体获得的奖励。分布式算法主要的核心难点是如何在只使用不完整信息的情况下,使每个智能体学到的策略收敛到纳什均衡点。

上一篇文章提到了很多多智能体强化学习算法,在很多算法中都要使用线性规划或者二次规划来求解矩阵博弈的纳什均衡点,在本章中将给出4种学习算法来求解每个矩阵博弈的纳什均衡策略。

矩阵博弈的学习算法可以分为两类,其中一类利用学习自动机(learning automata)思想,另一类利用梯度提升(gradient ascent)思想。下面根据这两种分类独立介绍每种算法。

二、矩阵博弈的学习算法

矩阵博弈的学习算法是指每个智能体不断与环境交互,通过获得的奖励值来更新优化其策略,最终使策略能够收敛到博弈的纳什均衡点。矩阵博弈的学习算法可以分为学习自动机梯度提升两类,下面从这两个角度开始介绍。

1. 学习自动机

学习自动机是一种通过与环境交互获得奖励来修改动作空间中每个动作的概率分布,从而提升优化策略的方法。学习自动机是一种完全分布式的算法,每个智能体只用知道自己的策略与奖励值,不需要知道环境信息以及其他智能体的信息。

学习自动机通常可以用一个元组表示为 (A,r,p,U) ,其中 A={a_1,\cdots,a_m} 表示动作集; r 为奖励值; p 为动作集的一个概率分布,即一个要学习的策略; U 表示一个学习算法。下面主要介绍两种算法 L_{R-I} (linear reward-inaction)算法与 L_{R-P} (linear reward-penalty)算法。

a. L_{R-I}

L_{R-I} 可用于n智能体矩阵博弈或双智能体零和博弈中,收敛性条件为:博弈只具有纯策略严格纳什均衡,只有满足收敛性条件,所有的智能体才能够收敛到纳什均衡策略。对于第i个智能体,其策略更新公式为

\begin{aligned} p_c^i(k+1) &= p_c^i(k) + \eta r^i(k)(1-p_c^i(k)) \qquad a_c\ \rm {is\ current\ action\ at\ step\ k} \\   p_j^i(k+1) &= p_j^i(k)-\eta r^i(k)p_j^i(k)\qquad\qquad \rm{for\ all\ a_j^i\ne a_c^i} \end{aligned}

如上式所示,k为时刻; p_c^i 是指智能体的动作分布,上标是指智能体的编号,下标是指智能体的动作编号; \eta 是学习速率; r^i(k) 是指智能体i在时刻k执行动作 a_c 获得的奖励值。整个学习算法流程如下:

其意义就是将优秀的动作的选择概率提高,为了保证归一性,则将其其他动作被选择的概率。该算法只能在博弈只具有纯策略的纳什均衡点的时候可以收敛。

b. L_{R-P}

在 L_{R-I} 的基础上加上一个罚函数,就变成了 L_{R-P} 算法。 L_{R-P} 算法的收敛条件为:博弈只有混合策略的纳什均衡。当满足收敛条件, L_{R-P} 算法就能够收敛到最优解。其更新公式如下

\begin{aligned} p_c^i(k+1) &= p_c^i(k) + \eta_1 r^i(k)[1-p_c^i(k)]-\eta_2[1-r^i(k)]p_c^i(k) \qquad a_c\ \rm {is\ current\ action\ at\ step\ k} \\   p_j^i(k+1) &= p_j^i(k)-\eta_1 r^i(k)p_j^i(k)+\eta_2[1-r^i(k)][\frac{1}{m-1}-p_j^i(k)]\qquad\qquad \rm{for\ all\ a_j^i\ne a_c^i} \end{aligned}

算法中的学习速率应该满足 0<\eta_1,\eta_2<1 和 \eta_2<\eta_1 .其算法流程为:

该算法只能应用于只有混合策略纳什均衡的博弈中。

2. 梯度提升学习算法

梯度提升学习算法在很多地方都有用到,强化学习的随机策略梯度算法SPG,DPG,AC,A2C,A3C等算法都有用到这种思想。使策略的更新方向沿着累积回报增加最大的梯度方向。但是有人证明,梯度提升学习算法并不能在所有的矩阵博弈中的到收敛解。但是在某些特定的约束博弈中,有一些梯度提升算法可以求解其纳什均衡。下面介绍几种常见的算法。

a. WoLF-IGA

WoLF-IGA但并不是一个实用的分布式算法,后面会分析原因。该算法使用上一节介绍的WoLF(Win or learn fast)思想与梯度提升结合。获胜或优秀策略的含义是指当前策略的累积预期奖励大于当前玩家纳什均衡策略和其他玩家实用当前策略的累积预期奖励。当前策略获胜时则谨慎缓慢学习,给其他智能体适应策略变化的时间;当前策略较差时,快速更新调整,使其能够快速调整适应其他智能体策略变化。WoLF-IGA只适用于双智能体双动作矩阵博弈。WoLF-IGA根据累计奖励关于策略的梯度来修正策略,其目的是使更新后的策略能够获得更大的奖励值。

令 p_1 表示智能体1选择第1个动作的概率, 1-p_1 表示智能体1选择第2个动作的概率;同理 q_1 表示智能体2选择第1个动作的概率,同理 1-q_1 表示智能体2选择第2个动作的概率,其算法的核心公式为

\begin{aligned} p_1(k+1)=p_1(k)+\eta \alpha_1(k)\frac{\partial V_1(p_1(k),q_1(k))}{\partial p_1}\\ q_1(k+1)=q_1(k)+\eta \alpha_w(k)\frac{\partial V_w(p_1(k),q_1(k))}{\partial q_1}\\ \alpha_1=\left\{ \begin{array}{rcl} \alpha_{\min}      &      & {\rm{if}\ V_1(p_1(k),q_1(k))>V_1(p^*_1,q_1(k))}\\ \alpha_{\max}     &      & {\rm otherwise}\\ \end{array} \right. \\ \alpha_2=\left\{ \begin{array}{rcl} \alpha_{\min}      &      & {\rm{if}\ V_2(p_1(k),q_1(k))>V_1(p_1(k),q_1^*}\\ \alpha_{\max}     &      & {\rm otherwise}\\ \end{array} \right. \end{aligned}

\eta 为学习步长,需要足够小。 \alpha_i 体现WoLF思想,满足 \alpha_{\max}>\alpha_{\min} ,是一个可变的学习速率,根据当前策略的效果来调整学习快慢。 V_i(p_1(k),q_1(k)) 表示在时刻k使用策略 (p_1(k),q_1(k)) 获得的累积期望回报。 (p_1^*(k),q_1^*(k)) 表示纳什均衡策略。

WoLF-IGA算法的难点在于需要已知大量信息。其信息包括自身的奖励矩阵、其他玩家的策略以及自己的纳什均衡。虽然智能体知道自己的奖励矩阵,也会得到纳什均衡策略。但这样大量的已知信息导致这个算法并不是一个实用的算法,也不是一个分布式的算法。

该算法的收敛性条件为:双智能体双行动一般和矩阵博弈,且纳什均衡为纯策略或混合策略。

b. Lagging Anchor算法

Lagging Anchor算法是应用于双智能体零和博弈的算法。其并不是一个分布式算法,具体原因后面会分析。

我们定义 v=[p_1,p_2,\cdots,p_{m_1}]^T 是智能体1对于其 m_1 个动作的概率分布,即策略;同理 w=[q_1,q_2,\cdots,q_{m_2}]^T 为智能体2的策略。其策略迭代公式为

\begin{aligned} v(k+1)&=v(k)+\eta P_{m_1}R_1Y(k)+\eta\eta_d(\overline v(k)-v(k))\\ \overline v(k+1) &= \overline v(k)+\eta\eta_d(v(k)-\overline v(k))\\ w(k+1)&=w(k)+\eta P_{m_2}R_2X(k)+\eta\eta_d(\overline w(k)-w(k))\\ \overline w(k+1) &= \overline w(k)+\eta\eta_d(w(k)-\overline w(k))\\ \end{aligned}

其中, \eta 为学习步长, \eta_d>0 定义为拉锚因子(anchor drawing factor), P_{m_i}=I_{m_i}-\frac{1}{m_i}\textbf{1}_{m_i}\textbf{1}_{m_i}^T 是一个用来维持策略 v,w 归一化的矩阵。 Y(k) 是一个单位向量,若智能体2在时刻k采用第i个动作则 Y(k)_i=1 第i个元素为1,其余元素为0; X(k) 同理。 \overline v,\overline w 为锚参数,表示每个智能体的策略的加权平均,是Lagging Anchor算法的核心。

收敛条件:在双智能体零和博弈中,只有完全混合策略。对于纯策略的收敛情况目前还没有人证明。

由于这个算法需要用到每一个智能体的奖励矩阵 R_1,R_2 ,因此严格来说其不能算作是一个分布式算法,但是在放宽条件以及智能体之间可以通信的情况下,也算是一个不错的算法。

猜你喜欢

转载自blog.csdn.net/WASEFADG/article/details/88979520