文章目录
前言
本文总结《深度强化学习》中的多智能体强化学习相关章节,如有错误,欢迎指出。
多智能体系统的设定
多智能体系统包含有多个智能体,多个智能体共享环境,智能体之间相互影响。一个智能体的动作会改变环境状态,从而影响其他智能体。
多智能体之间存在四种常见的关系
- 完全合作关系:多个智能体之间的目标一致,做出动作后获得的奖励相同。
- 完全竞争关系:某个智能体获得收益会导致某些的智能体亏损。
- 合作竞争的混合:多个智能体之间分成多组,组内智能体的利益一致,各个组之间处于竞争关系,例如《王者荣耀》。
- 利己主义:一个智能体的动作会改变环境,从而使得别的智能体受益或者受损,这种关系看起来像是完全竞争关系的子集。
多智能体系统下,需要对强化学习的一些术语进行再定义:
- 奖励:多智能体之间的关系不同,会导致环境给予的奖励不同。若多个智能体之间是合作关系,则多个智能体从环境中获得的奖励相同。若多个智能体之间是竞争关系,则某个智能体从环境中获得正向奖励会导致某个智能体获得负向奖励。第 i i i个智能体在 t t t时刻获得的奖励 R t i R_t^i Rti由状态 S t S_t St和所有智能体的动作 A t = [ A t 1 , A t 2 , . . . , A t n ] A_t=[A_t^1,A_t^2,...,A_t^n] At=[At1,At2,...,Atn]决定。
- 动作价值函数:由于一个智能体执行的动作会影响到其余智能体,因此多智能体系统中第 i i i个智能体的动作价值函数 Q π i ( S t , A t ) Q_\pi^i(S_t,A_t) Qπi(St,At)既依赖于当前的状态 S t S_t St(可以是单个智能体看到环境状态,也可以是多个智能体看到的环境状态),也依赖于所有智能体的动作 A t = [ A t 1 , A t 2 , . . . , A t n ] A_t=[A_t^1,A_t^2,...,A_t^n] At=At1,At2,...,Atn
- 状态价值函数:状态价值函数是动作价值函数关于动作的期望,而智能体执行的动作依赖于策略函数,因此第 i i i个智能体的状态价值函数 V π i ( S t ) V_\pi^i(S_t) Vπi(St)也依赖于所有智能体的策略。
在多智能体系统中,单个智能体的状态价值函数和动作价值函数都受到其余智能体的影响。
合作关系设定下的多智能体系统
在多智能体的设定下,单个智能体未必能观测全局状态。设第
i
i
i个智能体观测到的状态为
O
i
O^i
Oi,则可以假设所有智能体观测到的局部状态总和为全局状态,即
S
=
[
O
1
,
O
2
,
.
.
.
,
O
m
]
S=[O^1,O^2,...,O^m]
S=[O1,O2,...,Om]
在合作关系下,多个智能体从环境中获得奖励是相同的。设第
i
i
i个智能体获得的奖励为
R
i
R^i
Ri,则有
R
1
=
R
2
=
.
.
.
=
R
m
R^1=R^2=...=R^m
R1=R2=...=Rm
此外,每个智能体各自的动作价值函数和状态价值函数都依赖于所有智能体的策略函数
π
(
A
1
∣
S
;
θ
1
)
、
π
(
A
2
∣
S
;
θ
2
)
、
.
.
.
、
π
(
A
m
∣
S
;
θ
m
)
\pi(A^1|S;\theta^1)、\pi(A^2|S;\theta^2)、...、\pi(A^m|S;\theta^m)
π(A1∣S;θ1)、π(A2∣S;θ2)、...、π(Am∣S;θm)。
策略学习的目标函数
合作关系下的多智能体策略学习算法MAC-A2C
由于多个智能体的目标相同,从环境中获得的奖励相同,因此多个智能体共享一个价值网络
V
(
s
;
w
)
V(s;w)
V(s;w),该价值网络输入的状态为
s
=
[
o
1
,
o
2
,
.
.
.
,
o
m
]
s=[o^1,o^2,...,o^m]
s=[o1,o2,...,om],其中
o
i
o^i
oi表示第
i
i
i个智能体观测到的状态。价值网络的输出为对状态
s
s
s的评分。
每个智能体都有自己的策略网络,第
i
i
i个智能体的策略网络记为
π
(
a
i
∣
s
;
θ
i
)
\pi(a^i|s;\theta^i)
π(ai∣s;θi)。由于多个智能体之间是合作关系,因此策略网络的输入状态为
s
=
[
o
1
,
o
2
,
.
.
.
,
o
m
]
s=[o^1,o^2,...,o^m]
s=[o1,o2,...,om],其中
o
i
o^i
oi表示第
i
i
i个智能体观测到的状态。
具体的训练流程为:
训练完毕后的决策流程为:
上述训练流程,策略网络做一次推断,需要同步一次
m
m
m个智能体观测到的状态,这种同步过程非常耗时。在实际场景中,可以使用中心化训练+去中心化决策的trick。具体而言,每个智能体的策略网络仅依据智能体观测到的当前状态决策,即第
i
i
i个策略网络由
π
(
a
i
∣
s
;
θ
i
)
\pi(a^i|s;\theta^i)
π(ai∣s;θi)变为
π
(
a
i
∣
o
i
;
θ
i
)
\pi(a^i|o^i;\theta^i)
π(ai∣oi;θi)。由于价值网络依然依据总体状态
s
s
s进行计算,因此其余智能体观测到的状态信息会通过策略梯度传递至当前智能体中。中心化训练的具体流程为:
模型训练完毕后,使用去中心化决策,第
i
i
i个智能体依据自身观测到状态
o
i
o^i
oi,利用策略网络
π
(
a
i
∣
o
i
;
θ
i
)
\pi(a^i|o^i;\theta^i)
π(ai∣oi;θi)决定执行的动作。
非合作关系下的多智能体策略学习算法MAC-A2C
多个智能体在合作关系下具有共同的目标,因此可以共用一个价值网络。而非合作关系下,多个智能体具有的目标各不相同,因此每个智能体都有与之对应的策略网络和价值网络。设第
i
i
i个智能体观测到的状态为
o
i
o^i
oi,的策略网络为
π
(
a
i
∣
s
;
θ
i
)
\pi(a^i|s;\theta^i)
π(ai∣s;θi)、价值网络为
v
(
s
;
w
i
)
v(s;w^i)
v(s;wi),其中
s
s
s为所有智能体观测到的状态总和,即
s
=
[
o
1
,
o
2
,
.
.
.
,
o
n
]
s=[o^1,o^2,...,o^n]
s=[o1,o2,...,on]。
MAC-A2C的训练流程如下图,注意与合作关系下的多智能强化学习不同,非合作关系下不同智能体从环境中获得的奖励不同。
训练完毕后的决策过程为
上述训练流程,策略网络做一次推断,需要同步一次
m
m
m个智能体观测到的状态,这种同步过程非常耗时。在实际场景中,可以使用中心化训练+去中心化决策的trick,这个过程可以浏览上一个章节。
纳什均衡
在非合作关系下,智能体之间的利益不同,某个智能体取得较大的状态价值函数值,可能导致另外一个智能体取得较小的状态价值函数值,那么该如何判断算法是否收敛呢?在非合作关系下,判断算法是否收敛的标准为纳什均衡。具体而言,在多智能体系统中,当其余所有智能体都不改变策略的情况下,一个智能体
i
i
i单独改变策略
θ
i
\theta_i
θi,无法让其期望回报
J
i
(
θ
1
,
.
.
.
,
θ
m
)
J_i(\theta_1,...,\theta_m)
Ji(θ1,...,θm)变大(策略梯度为0),即智能体无法找到比当前策略更优的策略(无法通过梯度更新参数),这种平衡状态即纳什均衡。
版权归原作者 菜到怀疑人生 所有, 如有侵权,请联系我们删除。