在多智能体系统中,每个智能体通过与环境进行交互获取奖励值来学习改善自己的策略,从而获得该环境下最优策略的过程。
在单智能体强化学习中,智能体所在的环境是稳定不变的,但是在多智能体强化学习中,环境是复杂的、动态的,因此给学习过程带来很大的困难。
多智能体强化学习面临的问题:
- 维度爆炸:在单智能体强化学习中,需要存储状态值函数或动作—状态值函数。在多智能体强化学习中,状态空间变大,联结动作空间(联结动作是指每个智能体当前动作组合而成的多智能体系统当前时刻的动作,联结动作 A t = [ a 1 , t , a 2 , t , . . . , a n , t ] T A_t=[a_{1,t},a_{2,t},...,a_{n,t}]^T At=[a1,t,a2,t,...,an,t]T, a i , t a_{i,t} ai,t指第 i i i个智能体在时刻 t t t选取的动作。)随智能体数量指数级增长,因此多智能体系统维度非常大,计算复杂。
- 目标奖励确定困难:多智能体系统中每个智能体的任务可能不同,但是彼此之间又相互耦合影响。奖励设计的优劣直接影响学习到的策略的好坏。
- 不稳定性:在多智能体系统中,多个智能体是同时学习的。当同伴的策略改变时,每个智能体自身的最优策略也可能会改变,这对算法的收敛性带来很大影响。
- 探索—利用:探索不光要考虑自身对环境的探索,也要对同伴的策略变化进行探索,可能打破同伴策略的平衡状态。每个智能体的探索都可能对同伴智能体的策略产生影响,这将使算法很难稳定,学习速度慢。
在多智能体系统中智能体之间可能涉及到合作与竞争等关系,引入博弈的概念,将博弈论与强化学习相结合可以很好的处理上述问题。
博弈论基础
一个矩阵博弈可以表示为(
n
,
A
1
,
A
2
,
.
.
.
,
A
n
,
R
1
,
R
2
,
.
.
.
,
R
n
n,A_1,A_2,...,A_n,R_1,R_2,...,R_n
n,A1,A2,...,An,R1,R2,...,Rn),
n
n
n,表示智能体数量,
A
i
A_i
Ai是第
i
i
i个智能体的动作集,
R
i
:
A
1
×
⋅
⋅
⋅
×
R_i:A_1\times\cdot\cdot\cdot\times
Ri:A1×⋅⋅⋅×
A
n
→
A_n\rightarrow
An→
R
R
R表示第
i
i
i个智能体的奖励函数,从奖励函数可以看出每个智能体获得的奖励与多智能体系统的联结动作有关,联结动作空间为
A
1
×
⋅
⋅
⋅
×
A_1\times\cdot\cdot\cdot\times
A1×⋅⋅⋅×
A
n
A_n
An。每个智能体的策略是一个关于其动作空间的概率分布,每个智能体的目标是最大化其获得的奖励值。令
V
i
(
π
1
,
.
.
.
,
π
i
,
.
.
.
,
π
n
)
V_i(\pi_1,...,\pi_i,...,\pi_n)
Vi(π1,...,πi,...,πn)表示智能体
i
i
i在联结策略
(
π
1
,
.
.
.
,
π
n
)
(\pi_1,...,\pi_n)
(π1,...,πn)下的期望奖励,即值函数。
纳什均衡
在矩阵博弈中,如果联结策略
(
π
1
∗
,
.
.
.
,
π
n
∗
)
(\pi^*_1,...,\pi^*_n)
(π1∗,...,πn∗)满足:则为一个纳什均衡。
总体来说,纳什均衡就是一个所有智能体的联结策略。在纳什均衡处,对于所有智能体而言都不能在仅改变自身策略的情况下,来获得更大的奖励。定义
Q
i
(
a
1
,
.
.
.
,
a
n
)
Q _i(a_1,...,a_n)
Qi(a1,...,an)表示在执行联结动作
[
a
1
,
.
.
.
,
a
n
]
[a_1,...,a_n]
[a1,...,an]时,智能体
i
i
i所能获得的期望奖励。令
π
i
(
a
i
)
\pi_i(a_i)
πi(ai)表示第
i
i
i个智能体选取动作
a
i
a_i
ai的概率。则纳什均衡的另一种定义方式如下:
若纳什均衡中的不等式严格大于,则
(
π
1
∗
,
.
.
.
,
π
n
∗
)
(\pi_1^*,...,\pi_n^*)
(π1∗,...,πn∗)为严格纳什均衡。
完全混合策略
若一个策略对于智能体动作集中的所有 动作的概率都大于0,则这个策略称为一个完全混合策略。
纯策略
若智能体的策略对一个动作的概率分布为1,对其余动作的概率分布为0,则这个策略为一个纯策略。
两个智能体的矩阵博弈中的纳什均衡
在双智能体矩阵博弈中,设计一个矩阵,其中每一个元素的索引坐标表示一个联结动作
[
A
1
=
x
,
A
2
=
y
]
[A_1=x,A_2=y]
[A1=x,A2=y],第
i
i
i个智能体的奖励矩阵
R
i
R_i
Ri的元素
r
x
y
r_{xy}
rxy就表示第一个智能体采取动作
x
x
x,第二个智能体采取动作
y
y
y时第
i
i
i个智能体获得的奖励。通常将第一个智能体定义为行智能体,第二个智能体定义为列智能体,行号表示第一个智能体选取的动作,列号表示第二个智能体选取的动作。则对于只有2个动作的智能体,其奖励矩阵分别可以写为:
零和博弈
零和博弈中,两个智能体是完全竞争对抗关系,则
R
1
=
−
R
2
R_1=-R_2
R1=−R2。在零和博弈中只有一个纳什均衡值,即使可能有很多纳什均衡,但是期望的奖励是相同的。
一般和博弈
一般和博弈是指任何类型的矩阵博弈,包括完全对抗博弈、完全合作博弈以及二者的混合博弈。在一般和博弈中可能会存在多个纳什均衡点。定义策略
π
i
=
(
π
i
(
a
1
)
,
.
.
.
,
π
i
(
a
m
i
)
)
\pi_i=(\pi_i(a_1),...,\pi_i(a_{m_i}))
πi=(πi(a1),...,πi(ami))为智能体
i
i
i的动作集中每个动作的概率集合,
m
i
m_i
mi表示可选的动作数量,则值函数
V
i
V_i
Vi可以表示为:
纳什均衡策略
(
π
1
∗
,
π
2
∗
)
(\pi_1^*,\pi_2^*)
(π1∗,π2∗)可以表示为:其中
P
D
(
A
i
)
PD(A_i)
PD(Ai)表示第
i
i
i个智能体的策略空间,
−
i
-i
−i表示另一个智能体。如上定义两个智能体的一般和博弈为:
线性规划求解双智能体零和博弈
公式如下:
a
−
1
a_{-1}
a−1改为
a
−
i
a_{-i}
a−i上式的意义为:每个智能体最大化在与对手博弈中最差情况下的期望奖励值。将博弈写为:
定义
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
j
j的概率。则对于第一个智能体的纳什均衡的线性规划如下:
同理,第二个智能体的纳什均衡的线性规划如下:
求解上式便可得到纳什均衡策略。