学习记录:多智能体系统的博弈相关知识
文章目录
一、多智能体系统
多智能体系统中,每个智能体通过与环境进行交互获取奖励值(reward)来学习改善自己的策略,从而获得该环境下最优策略的过程就多智能体强化学习。
在单智能体强化学习中,智能体所在的环境是稳定不变的,但是在多智能体强化学习中,环境是复杂的、动态的,因此给学习过程带来很大的困难。
维度爆炸:在单体强化学习中,需要存储状态值函数或动作-状态值函数。在多体强化学习中,状态空间变大,联结动作空间(联结动作是指每个智能体当前动作组合而成的多智能体系统当前时刻的动作,联结动作 指第i个智能体在时刻t选取的动作。)随智能体数量指数增长,因此多智能体系统维度非常大,计算复杂。
目标奖励确定困难:多智能体系统中每个智能体的任务可能不同,但是彼此之间又相互耦合影响。奖励设计的优劣直接影响学习到的策略的好坏。
不稳定性:在多智能体系统中,多个智能体是同时学习的。当同伴的策略改变时,每个智能体自身的最优策略也可能会变化,这将对算法的收敛性带来影响。
探索-利用:探索不光要考虑自身对环境的探索,也要对同伴的策略变化进行探索,可能打破同伴策略的平衡状态。每个智能体的探索都可能对同伴智能体的策略产生影响,这将使算法很难稳定,学习速度慢。
在多智能体系统中智能体之间可能涉及到合作与竞争等关系,引入博弈的概念,将博弈论与强化学习相结合可以很好的处理这些问题。
二、博弈论基础
在本节中主要介绍多智能体强化学习中需要用到的一些概念及定义,仅局限于多智能体强化学习算法的理解分析。包括矩阵博弈、静态博弈、阶段博弈、重复博弈和随机博弈等概念。
2.1 矩阵博弈 纳什均衡
矩阵博弈可以表示为
(
n
,
A
1
,
A
2
,
…
,
A
n
,
R
1
,
R
2
,
…
,
R
n
)
(n,A_1,A_2,\dots,A_n,R_1,R_2,\dots,R_n)
(n,A1,A2,…,An,R1,R2,…,Rn)
,n表示智能体数量,
A
i
A_i
Ai是第i个智能体的动作集,
R
i
:
A
1
×
⋯
×
A
n
→
R
R_i:A_1\times\cdots\times A_n\to\mathbb R
Ri:A1×⋯×An→R表示第i个智能体的奖励函数,从奖励函数可以看出每个智能体获得的奖励与多智能体系统的联结动作有关,联结动作空间为
A
1
×
⋯
×
A
n
A_1\times\cdots\times A_n
A1×⋯×An.
每个智能体的策略是一个关于其动作空间的概率分布,每个智能体的目标是最大化其获得的奖励值。
令 V i ( π 1 , ⋯ , π i , ⋯ , π n ) V_i(\pi_1,\cdots,\pi_i,\cdots,\pi_n) Vi(π1,⋯,πi,⋯,πn)表示智能体i在,联结策略 ( π 1 , ⋯ , π n ) (\pi_1,\cdots,\pi_n) (π1,⋯,πn)下的期望奖励,即值函数。
定义1:纳什均衡
在矩阵博弈中,联结策略
(
π
1
,
⋯
,
π
n
)
(\pi_1,\cdots,\pi_n)
(π1,⋯,πn)满足
V
i
(
π
1
∗
,
⋯
,
π
i
∗
,
⋯
,
π
n
∗
)
≥
V
i
(
π
1
∗
,
⋯
,
π
i
,
⋯
,
π
n
∗
)
,
∀
π
i
∈
Π
i
,
i
=
1
,
⋯
,
n
(
1
)
V_i(\pi_1^*,\cdots,\pi_i^*,\cdots,\pi_n^*)\ge V_i(\pi_1^*,\cdots,\pi_i,\cdots,\pi_n^*), \forall\pi_i\in \Pi_i,i=1,\cdots,n\qquad (1)
Vi(π1∗,⋯,πi∗,⋯,πn∗)≥Vi(π1∗,⋯,πi,⋯,πn∗),∀πi∈Πi,i=1,⋯,n(1)则为一个纳什均衡。
总体来说,纳什均衡就是一个所有智能体的联结策略。在纳什均衡处,对于所有智能体而言都不能在仅改变自身策略的情况下,来获得更大的奖励。
定义
Q
i
(
a
1
,
⋯
,
a
n
)
Q_i(a_1,\cdots,a_n)
Qi(a1,⋯,an)表示在执行联结动作
[
a
1
,
⋯
,
a
n
]
[a_1,\cdots,a_n]
[a1,⋯,an]时,智能体i所能获得的期望奖励。令
π
i
(
a
i
)
\pi_i(a_i)
πi(ai)表示第i个智能体选取动作
a
i
a_i
ai的概率。则纳什均衡的另一种定义方式如下:
∑
a
1
,
⋯
,
a
n
∈
A
1
×
⋯
×
A
n
Q
i
(
a
1
,
⋯
,
a
n
)
π
1
∗
(
a
1
)
⋯
π
i
∗
(
a
i
)
⋯
π
n
∗
(
a
n
)
≥
∑
a
1
,
⋯
,
a
n
∈
A
1
×
⋯
×
A
n
Q
i
(
a
1
,
⋯
,
a
n
)
π
1
∗
(
a
1
)
⋯
π
i
(
a
i
)
⋯
π
n
∗
(
a
n
)
,
∀
π
i
∈
Π
i
,
i
=
1
,
⋯
,
n
\begin{aligned} \sum_{a_1,\cdots,a_n\in A_1\times \cdots \times A_n}Q_i(a_1,\cdots,a_n)\pi_1^*(a_1)\cdots\pi_i^*(a_i)\cdots\pi_n^*(a_n)\ge \\ \sum_{a_1,\cdots,a_n\in A_1\times \cdots \times A_n}Q_i(a_1,\cdots,a_n)\pi_1^*(a_1)\cdots\pi_i(a_i)\cdots\pi_n^*(a_n),\forall \pi_i\in\Pi_i,i=1,\cdots,n \end{aligned}
a1,⋯,an∈A1×⋯×An∑Qi(a1,⋯,an)π1∗(a1)⋯πi∗(ai)⋯πn∗(an)≥a1,⋯,an∈A1×⋯×An∑Qi(a1,⋯,an)π1∗(a1)⋯πi(ai)⋯πn∗(an),∀πi∈Πi,i=1,⋯,n
定义2:严格纳什均衡
若(1)式严格大于,则 ( π 1 ∗ , ⋯ , π n ∗ ) (\pi_1^*,\cdots,\pi_n^*) (π1∗,⋯,πn∗) 为严格纳什均衡。
定义3:完全混合策略
若一个策略对于智能体动作集中的所有动作的概率都大于0,则这个策略为一个完全混合策略。
定义4:纯策略
若智能体的策略对一个动作的概率分布为1,对其余的动作的概率分布为0,则这个策略为一个纯策略。
2.2 两个智能体的矩阵博弈中的纳什均衡
本节介绍针对一个两智能体博弈问题的常规建模方式,并介绍几种常见的博弈形式。后面的很多多智能体强化学习算法都是以此为基础建立起来的,双智能体矩阵博弈对于多智能体强化学习类似于感知机对于神经网络。
在双智能体矩阵博弈中,我们可以设计一个矩阵,矩阵每一个元素的索引坐标表示一个联结动作
[
A
1
=
x
,
A
2
=
y
]
[A_1=x,A_2=y]
[A1=x,A2=y] ,第i个智能体的奖励矩阵
R
i
R_i
Ri 的元素
r
x
y
r_{xy}
rxy 就表示第一个智能体采用动作x,第二个智能体采用动作y时第i个智能体获得的奖励。通常我们将第一个智能体定义为行智能体,第二个智能体定义为列智能体,行号表示第一个智能体选取的动作,列号表示第二个智能体选取的动作。则对于只有2个动作的智能体,其奖励矩阵分别可以写为
R
1
=
[
r
11
r
12
r
21
r
22
]
,
R
2
=
[
c
11
c
12
c
21
c
22
]
R_1=\begin{bmatrix} r_{11} & r_{12} \\ r_{21} & r_{22} \end{bmatrix},\qquad R_2=\begin{bmatrix} c_{11} & c_{12} \\ c_{21} & c_{22} \end{bmatrix}
R1=[r11r21r12r22],R2=[c11c21c12c22]
定义5. 零和博弈
零和博弈中,两个智能体是完全竞争对抗关系,则 R 1 = − R 2 R_1=-R_2 R1=−R2 。在零和博弈中只有一个纳什均衡值,即使可能有很多纳什均衡策略,但是期望的奖励是相同的。
定义6. 一般和博弈
一般和博弈是指任何类型的矩阵博弈,包括完全对抗博弈、完全合作博弈以及二者的混合博弈。在一般和博弈中可能存在多个纳什均衡点。
我们定义策略
π
i
=
(
π
i
(
a
1
)
,
⋯
,
π
i
(
a
m
i
)
)
\pi_i = (\pi_i(a_1),\cdots,\pi_i(a_{m_i}))
πi=(πi(a1),⋯,πi(ami))为智能体i的动作集中每个动作的概率集合,
m
i
m_i
mi表示可选的动作数量,则值函数
V
i
V_i
Vi可以表示
V
i
=
π
1
R
i
π
2
T
V_i=\pi_1R_i\pi_2^T
Vi=π1Riπ2T,纳什均衡策略
(
π
1
∗
,
π
2
∗
)
(\pi_1^*,\pi_2^*)
(π1∗,π2∗) 可以表示为
V
i
(
π
i
∗
,
π
−
i
∗
)
≥
V
i
(
π
i
,
π
−
i
∗
)
,
∀
π
i
∈
P
D
(
A
i
)
V_i(\pi_i^*,\pi_{-i}^*)\ge V_i(\pi_i,\pi_{-i}^*),\forall \pi_i\in PD(A_i)
Vi(πi∗,π−i∗)≥Vi(πi,π−i∗),∀πi∈PD(Ai)。
P
D
(
A
i
)
PD(A_i)
PD(Ai) 表示第
i
i
i个智能体的策略空间,
−
i
-i
−i 表示另一个智能体。
如上定义一个两智能体一般和博弈为:
R
1
=
[
r
11
r
12
r
21
r
22
]
,
R
2
=
[
c
11
c
12
c
21
c
22
]
R_1=\begin{bmatrix} r_{11} & r_{12} \\ r_{21} & r_{22} \end{bmatrix},\qquad R_2=\begin{bmatrix} c_{11} & c_{12} \\ c_{21} & c_{22} \end{bmatrix}
R1=[r11r21r12r22],R2=[c11c21c12c22]
若满足
r
l
f
>
r
−
l
f
,
c
l
f
>
c
l
−
f
r_{lf}\gt r_{-lf},c_{lf}\gt c_{l-f}
rlf>r−lf,clf>cl−f
则
l
,
f
l,f
l,f为纯策略严格纳什均衡,
−
l
-l
−l,
−
f
-f
−f 表示除了
l
l
l,
f
f
f 的另一个策略。
2.3 线性规划求解双智能体零和博弈
求解双智能体零和博弈的公式如下,表示每个智能体最大化在与对手博弈中最差情况下的期望奖励值。
max
π
i
min
a
−
i
∈
A
−
i
∑
a
i
∈
A
i
Q
i
∗
(
a
i
,
a
−
1
)
π
i
(
a
i
)
\max_{\pi_i}\min_{a_{-i}\in A_{-i}}\sum_{a_i\in A_i}Q_i^*(a_i,a_{-1})\pi_i(a_i)
πimaxa−i∈A−iminai∈Ai∑Qi∗(ai,a−1)πi(ai)
将博弈写为如下形式
R
1
=
[
r
11
r
12
r
21
r
22
]
,
R
2
=
−
R
1
R_1=\begin{bmatrix} r_{11} & r_{12} \\ r_{21} & r_{22} \end{bmatrix},\qquad R_2=-R_1
R1=[r11r21r12r22],R2=−R1
定义
p
j
(
j
=
1
,
2
)
p_j(j=1,2)
pj(j=1,2) 表示第一个智能体选择动作
j
j
j的概率,
q
j
(
j
=
1
,
2
)
q_j(j=1,2)
qj(j=1,2) 表示第二个智能体选择动作 j 的概率。则对于第一个智能体,可以列写如下线性规划
max
p
1
,
p
2
V
1
r
11
p
1
+
r
21
p
2
≥
V
1
r
12
p
1
+
r
22
p
2
≥
V
1
p
1
+
p
2
=
1
p
j
≥
0
,
j
=
1
,
2
\begin{aligned} &\max_{p_1,p_2} V_1\\ r_{11}p_1&+r_{21}p_2\ge V_1\\ r_{12}p_1&+r_{22}p_2\ge V_1\\ p_1&+p_2=1\\ p_j&\ge 0,j=1,2 \end{aligned}
r11p1r12p1p1pjp1,p2maxV1+r21p2≥V1+r22p2≥V1+p2=1≥0,j=1,2
同理,可以列出第二个智能体的纳什策略的线性规划
max
q
1
,
q
2
V
2
−
r
11
q
1
−
r
12
q
2
≥
V
2
−
r
21
q
1
−
r
22
q
2
≥
V
2
q
1
+
q
2
=
1
q
j
≥
0
,
j
=
1
,
2
\begin{aligned} &\max_{q_1,q_2} V_2\\ -r_{11}q_1&-r_{12}q_2\ge V_2\\ -r_{21}q_1&-r_{22}q_2\ge V_2\\ q_1&+q_2=1\\ q_j&\ge 0,j=1,2 \end{aligned}
−r11q1−r21q1q1qjq1,q2maxV2−r12q2≥V2−r22q2≥V2+q2=1≥0,j=1,2
求解上式就可得到纳什均衡策略。
2.4 马尔科夫过程与博弈相关概念
马尔可夫决策过程包含一个智能体与多个状态。矩阵博弈包括多个智能体与一个状态。
随机博弈(stochastic game / Markov game)是马尔可夫决策过程与矩阵博弈的结合,具有多个智能体与多个状态,即多智能体强化学习。为更好地理解,引入如下定义
静态博弈:static/stateless game是指没有状态s,不存在动力学使状态能够转移的博弈。例如一个矩阵博弈。
阶段博弈:stage game,是随机博弈的组成成分,状态s是固定的,相当于一个状态固定的静态博弈,随机博弈中的Q值函数就是该阶段博弈的奖励函数。若干状态的阶段博弈组成一个随机博弈。
重复博弈:智能体重复访问同一个状态的阶段博弈,并且在访问同一个状态的阶段博弈的过程中收集其他智能体的信息与奖励值,并学习更好的Q值函数与策略。
多智能体强化学习就是一个随机博弈,将每一个状态的阶段博弈的纳什策略组合起来成为一个智能体在动态环境中的策略。并不断与环境交互来更新每一个状态的阶段博弈中的Q值函数(博弈奖励)。
对于一个随机博弈可以写为 ( n , S , A 1 , ⋯ , A n , T r , γ , R 1 , ⋯ , R n ) (n,S,A_1,\cdots,A_n,Tr,\gamma,R_1,\cdots,R_n) (n,S,A1,⋯,An,Tr,γ,R1,⋯,Rn) ,其中 n n n表示智能体数量, S S S表示状态空间, A i A_i Ai 表示第i个智能体的动作空间, T r : S × A 1 × ⋯ × A n × S → [ 0 , 1 ] Tr:S\times A_1\times\cdots\times A_n\times S\to [0,1] Tr:S×A1×⋯×An×S→[0,1] 表示状态转移概率, R i : s × A 1 × ⋯ × A n × S → R R_i:s\times A_1\times\cdots\times A_n\times S\to\mathbb {R} Ri:s×A1×⋯×An×S→R 表示第i个智能体在当前状态与联结动作下获得的回报值, γ \gamma γ 表示累积奖励折扣系数。随机博弈也具有马尔科夫性,下一个状态与奖励只与当前状态与当前的联结动作有关。
对于一个多智能体强化学习过程,就是找到每一个状态的纳什均衡策略,然后将这些策略联合起来。
π
i
:
S
→
A
i
\pi_i:S\to A_i
πi:S→Ai 就是一个智能体i的策略,在每个状态选出最优的纳什策略。
多智能体强化学习最优策略(随机博弈的纳什均衡策略)可以写为
(
π
1
∗
,
⋯
,
π
n
∗
)
(\pi_1^*,\cdots,\pi_n^*)
(π1∗,⋯,πn∗) ,且
∀
s
∈
S
,
i
=
1
,
⋯
\forall s\in S,i=1,\cdots
∀s∈S,i=1,⋯,
n
n
n满足
V
i
(
s
,
π
1
∗
,
⋯
,
π
i
∗
,
⋯
,
π
n
∗
)
≥
V
i
(
s
,
π
1
∗
,
⋯
,
π
i
,
⋯
,
π
n
∗
)
,
∀
π
i
∈
Π
i
V_i(s,\pi_1^*,\cdots,\pi_i^*,\cdots,\pi_n^*)\ge V_i(s,\pi_1^*,\cdots,\pi_i,\cdots,\pi_n^*),\forall \pi_i\in \Pi_i
Vi(s,π1∗,⋯,πi∗,⋯,πn∗)≥Vi(s,π1∗,⋯,πi,⋯,πn∗),∀πi∈Πi
其中,
V
i
(
s
,
π
1
∗
,
⋯
,
π
i
∗
,
⋯
,
π
n
∗
)
V_i(s,\pi_1^*,\cdots,\pi_i^*,\cdots,\pi_n^*)
Vi(s,π1∗,⋯,πi∗,⋯,πn∗) 为
γ
\gamma
γ 折扣累积状态值函数,用
V
i
∗
(
s
)
V_i^*(s)
Vi∗(s) 简记上式。
用
Q
i
∗
(
s
,
a
1
,
⋯
,
a
n
)
Q_i^*(s,a_1,\cdots,a_n)
Qi∗(s,a1,⋯,an) 表示动作状态
γ
\gamma
γ 折扣累积值函数,在每个固定状态s的阶段博弈中,就是利用
Q
i
∗
Q_i^*
Qi∗ 作为博弈的奖励求解纳什均衡策略的。根据强化学习中的Bellman公式,可得
V
i
∗
(
s
)
=
∑
a
1
,
⋯
,
a
n
∈
A
1
×
⋯
×
A
n
Q
i
∗
(
s
,
a
1
,
⋯
,
a
n
)
π
1
∗
(
s
,
a
1
)
⋯
π
n
∗
(
s
,
a
n
)
Q
i
∗
(
s
,
a
1
,
⋯
,
a
n
)
=
∑
s
′
∈
S
T
r
(
s
,
a
1
,
⋯
,
a
n
,
s
′
)
[
R
i
(
s
,
a
1
,
⋯
,
a
n
,
s
′
)
+
γ
V
i
∗
(
s
′
)
]
\begin{aligned} V_i^*(s)=\sum_{a_1,\cdots,a_n\in A_1\times\cdots\times A_n}Q_i^*(s,a_1,\cdots,a_n)\pi_1^*(s,a_1)\cdots\pi_n^*(s,a_n)\\ Q_i^*(s,a_1,\cdots,a_n)=\sum_{s'\in S}Tr(s,a_1,\cdots,a_n,s')[R_i(s,a_1,\cdots,a_n,s')+\gamma V_i^*(s')] \end{aligned}
Vi∗(s)=a1,⋯,an∈A1×⋯×An∑Qi∗(s,a1,⋯,an)π1∗(s,a1)⋯πn∗(s,an)Qi∗(s,a1,⋯,an)=s′∈S∑Tr(s,a1,⋯,an,s′)[Ri(s,a1,⋯,an,s′)+γVi∗(s′)]
MARL(多智能体强化学习)的纳什策略可以改写为
∑
a
1
,
⋯
,
a
n
∈
A
1
×
⋯
×
A
n
Q
i
∗
(
s
,
a
1
,
⋯
,
a
n
)
π
1
∗
(
s
,
a
1
)
⋯
π
i
∗
(
s
,
a
i
)
⋯
π
n
∗
(
s
,
a
n
)
≥
∑
a
1
,
⋯
,
a
n
∈
A
1
×
⋯
×
A
n
Q
i
∗
(
s
,
a
1
,
⋯
,
a
n
)
π
1
∗
(
s
,
a
1
)
⋯
π
i
(
s
,
a
i
)
⋯
π
n
∗
(
s
,
a
n
)
\begin{aligned} \sum_{a_1,\cdots,a_n\in A_1\times\cdots\times A_n}Q_i^*(s,a_1,\cdots,a_n)\pi_1^*(s,a_1)\cdots\pi_i^*(s,a_i)\cdots\pi_n^*(s,a_n)\ge\\ \sum_{a_1,\cdots,a_n\in A_1\times\cdots\times A_n}Q_i^*(s,a_1,\cdots,a_n)\pi_1^*(s,a_1)\cdots\pi_i(s,a_i)\cdots\pi_n^*(s,a_n) \end{aligned}
a1,⋯,an∈A1×⋯×An∑Qi∗(s,a1,⋯,an)π1∗(s,a1)⋯πi∗(s,ai)⋯πn∗(s,an)≥a1,⋯,an∈A1×⋯×An∑Qi∗(s,a1,⋯,an)π1∗(s,a1)⋯πi(s,ai)⋯πn∗(s,an)
根据每个智能体的奖励函数可以对随机博弈进行分类。
若智能体的奖励函数相同,则称为完全合作博弈或团队博弈。
若智能体的奖励函数逆号,则称为完全竞争博弈或零和博弈。
为了求解随机博弈,需要求解每个状态s的阶段博弈,每个阶段博弈的奖励值就是
Q
i
(
s
,
⋅
)
Q_i(s,\cdot)
Qi(s,⋅) 。
三、随机博弈示例
定义一个2*2的网格博弈,两个智能体分别表示为
P
1
P_1
P1 ,
P
2
P_2
P2 ,1的初始位置在左下角,2的初始位置在右下角,每一个智能体都想以最快的方式达到G标志的地方。
从初始位置开始,每个智能体都有两个动作可以选择。只要有一个智能体达到G则游戏结束,达到G的智能体获得奖励10,奖励折扣率为0.9。虚线表示栏杆,智能体穿过栏杆的概率为0.5。该随机博弈一共包含7个状态**。这个博弈的纳什均衡策略是,每个智能体到达邻居位置而不穿过栏杆。**
根据前文公式,我们可以得到如下状态值函数:
V
i
∗
(
s
1
)
=
R
i
(
s
1
,
r
i
g
h
t
,
l
e
f
t
,
s
7
)
+
γ
V
i
∗
(
s
7
)
=
10
+
0.9
∗
0
=
10
V_i^*(s_1)=R_i(s_1,right,left,s_7)+\gamma V_i^*(s_7)=10+0.9*0=10
Vi∗(s1)=Ri(s1,right,left,s7)+γVi∗(s7)=10+0.9∗0=10
由此我们可以得到动作状态值函数
Q
1
∗
(
s
1
,
u
p
,
d
o
w
n
)
=
∑
s
′
=
s
1
∼
s
4
T
r
(
s
1
,
u
p
,
d
o
w
n
,
s
′
)
[
R
1
(
s
1
,
u
p
,
d
o
w
n
,
s
′
)
+
γ
V
1
∗
(
s
′
)
]
=
0.25
(
0
+
0.9
V
1
∗
(
s
1
)
)
+
0.25
(
0
+
0.9
V
1
∗
(
s
2
)
)
+
0.25
(
0
+
0.9
V
1
∗
(
s
3
)
)
+
0.25
(
0
+
0.9
V
1
∗
(
s
4
)
)
=
7.25
\begin{aligned} Q_1^*(s_1,up,down)&=\sum_{s'=s_1\sim s_4}Tr(s_1,up,down,s')[R_1(s_1,up,down,s')+\gamma V_1^*(s')]\\ &=0.25(0+0.9V_1^*(s_1))+0.25(0+0.9V_1^*(s_2))+0.25(0+0.9V_1^*(s_3))+0.25(0+0.9V_1^*(s_4))\\ &=7.25 \end{aligned}
Q1∗(s1,up,down)=s′=s1∼s4∑Tr(s1,up,down,s′)[R1(s1,up,down,s′)+γV1∗(s′)]=0.25(0+0.9V1∗(s1))+0.25(0+0.9V1∗(s2))+0.25(0+0.9V1∗(s3))+0.25(0+0.9V1∗(s4))=7.25
求解上述矩阵博弈就可得到多智能体强化学习的策略。