0 前言
根据上一章的内容,已知完全合作关系下的多智能体利益一致有相同的目标,而非合作关系下实际上智能体的奖励和回报都是不一样的,它们都在努力让自己的利益最大化而并不考虑整体利益。
1 非合作关系设定下的策略学习
要注意的点:
- 状态S=[O1,O2,⋯ ,Om]S=[O^1,O^2,\cdots,O^m]S=[O1,O2,⋯,Om],所有智能体的观测之和是状态。
- 动作A=[A1,A2,⋯ ,Am]A=[A^1,A^2,\cdots,A^m]A=[A1,A2,⋯,Am]。
- 奖励并不相同,相对的实际上价值网络的参数对于每个智能体来说也不一样。
目标函数:
完全合作关系:该部分我们回忆一下上一节中的完全合作关系下的智能体:J(θ1,⋯ ,θm)=Es[Vπ(s)]J(\theta^1,\cdots,\theta^m)=E_s[V_{\pi}(s)]J(θ1,⋯,θm)=Es[Vπ(s)],我们只需要找到让目标函数J(θ1,⋯ ,θm)J(\theta^1,\cdots,\theta^m)J(θ1,⋯,θm)最大的θ\thetaθ就可以得到最后用来决策的策略网络。
非合作关系:由于每个智能体的状态价值都不同,所以每个智能体的目标函数也不同
状态价值:V1(s),V2(s),⋯ ,Vm(s)V^1(s),V^2(s),\cdots,V^m(s)V1(s),V2(s),⋯,Vm(s).
目标函数:J1(θ1,⋯ ,θm)=Es[Vπ1],J2(θ1,⋯ ,θm)=Es[Vπ2],⋯ ,Jm(θ1,⋯ ,θm)=Es[Vπm]J^1(\theta^1,\cdots,\theta^m)=E_s[V_{\pi}^1],\quad J^2(\theta^1,\cdots,\theta^m)=E_s[V_{\pi}^2],\cdots,\quad J^m(\theta^1,\cdots,\theta^m)=E_s[V_{\pi}^m]J1(θ1,⋯,θm)=Es[Vπ1],J2(θ1,⋯,θm)=Es[Vπ2],⋯,Jm(θ1,⋯,θm)=Es[Vπm]每一个智能体都希望自己的目标函数最大,最终确定一个θ\thetaθ值。这个问题涉及到一个收敛准则,叫纳什均衡。
下面会对纳什均衡做一个简单的介绍。
纳什均衡(Nash Equilibrium):是博弈论中的一个核心概念。
举个例子来说这个问题:
囚徒A\B | 沉默(合作) | 背叛(不合作) |
---|---|---|
沉默(合作) | (-1,-1) | (-10,0) |
背叛(不合作) | (0,-10) | (-5,-5) |
上表描述了一个囚徒困境的问题,警官分别审问囚徒A和囚徒B,那么根据囚徒所采取的不同动作,会得到不同的结果:
- 如果囚徒A和囚徒B都沉默,那么各判1年
- 如果囚徒A沉默、囚徒B背叛,那么囚徒A判10年,囚徒B释放
- ⋯\cdots⋯
那么在完全合作关系下,实际上如果囚徒A和囚徒B都沉默,那么总体判的最少。
在非合作关系下,每个智能体只考虑自己,那么实际上不管囚徒A选什么,背叛都是囚徒B最好的选择。所以最后即 如果囚徒A和囚徒B都背叛,那么各判5年。从总体上来看当然不是最好的选择,但是它是个人理性的选择结果。
2 非合作关系设定下的多智能体A2C
目标函数:J1(θ1,⋯ ,θm)=Es[Vπ1],J2(θ1,⋯ ,θm)=Es[Vπ2],⋯ ,Jm(θ1,⋯ ,θm)=Es[Vπm]J^1(\theta^1,\cdots,\theta^m)=E_s[V_{\pi}^1],\quad J^2(\theta^1,\cdots,\theta^m)=E_s[V_{\pi}^2],\cdots,\quad J^m(\theta^1,\cdots,\theta^m)=E_s[V_{\pi}^m]J1(θ1,⋯,θm)=Es[Vπ1],J2(θ1,⋯,θm)=Es[Vπ2],⋯,Jm(θ1,⋯,θm)=Es[Vπm]
智能体1:最大化 J1(θ1,⋯ ,θm)=Es[Vπ1]J^1(\theta^1,\cdots,\theta^m)=E_s[V_{\pi}^1]J1(θ1,⋯,θm)=Es[Vπ1]
智能体2:最大化 J2(θ1,⋯ ,θm)=Es[Vπ2]J^2(\theta^1,\cdots,\theta^m)=E_s[V_{\pi}^2]J2(θ1,⋯,θm)=Es[Vπ2]
⋯\cdots⋯
智能体m:最大化 Jm(θ1,⋯ ,θm)=Es[Vπm]J^m(\theta^1,\cdots,\theta^m)=E_s[V_{\pi}^m]Jm(θ1,⋯,θm)=Es[Vπm]
2.1 价值网络
价值网络输入是环境,输出是一个值,该网络用来是近似状态价值函数的,记该价值网络为v(s,wi)v(s,w^i)v(s,wi)。
注意:和完全合作的相比为一的不同就是,对于价值网络来说,完全合作关系下www参数都是一样的,非完全合作关系下每个智能体都不相同记为wiw^iwi
TD目标:y^t=rt+γ⋅v(st+1,wi)\hat{y}_t=r_t+\gamma\cdot v(s_{t+1},w^i)y^t=rt+γ⋅v(st+1,wi)
TD误差:δt=v(st,wi)−y^t\delta_t=v(s_t,w^i)-\hat{y}_tδt=v(st,wi)−y^t
LOSS损失:L(w)=12δt2L(w)=\frac{1}{2}\delta_t^2L(w)=21δt2
更新wiw^iwi:wi←wi−α⋅δt⋅∇wiv(st,wi)w^i\leftarrow w^i-\alpha\cdot \delta_t\cdot\nabla_{w^i }v(s_t,w^i)wi←wi−α⋅δt⋅∇wiv(st,wi)
如果要防止自举偏差,可以将TD目标中的wiw^iwi换一下变成wi−w^{i-}wi−。
2.2 策略网络
同样的我们借助目标函数J1(θ),J2(θ),⋯ ,Jm(θ)J^1(\theta),J^2(\theta),\cdots,J^m(\theta)J1(θ),J2(θ),⋯,Jm(θ)
单个智能体的策略梯度可以表示为:
∇θiJi(θ1,θ2,⋯ ,θm)=ES,A(∇θiln(π(Ai∣S,θi))[Qπi(S,A)−b])\nabla_{\theta^i}J^i(\theta^1,\theta^2,\cdots,\theta^m)=E_{S,A}(\nabla_{\theta^i}ln(\pi(A^i|S,\theta^i))[Q^i_{\pi}(S,A)-b])∇θiJi(θ1,θ2,⋯,θm)=ES,A(∇θiln(π(Ai∣S,θi))[Qπi(S,A)−b])
2.3 训练及决策
第i号智能体:
当前价值网络:wnowiw^i_{now}wnowi,价值网络:v(s;wi)v(s;w^i)v(s;wi)。
目标价值网络:wnowi−w^{i-}_{now}wnowi−,目标网络:v(s;wi−)v(s;w^{i-})v(s;wi−)。
策略网络的参数:θnowi\theta^i_{now}θnowi。
- 当前状态st=[ot1,⋯ ,otm]s_t=[o^1_t,\cdots,o^m_t]st=[ot1,⋯,otm],让每一个智能体独立做随机抽样: ati∼π(⋅∣st;θnowi)a^i_t\sim\pi(\cdot|s_t;\theta^i_{now})ati∼π(⋅∣st;θnowi), ∀i=1,⋯ ,m,\forall i=1,\cdots,m,∀i=1,⋯,m,并执行选中的动作。
- 从环境中观测到奖励rt1,rt2,⋯ ,rtmr^1_t,r^2_t,\cdots,r^m_trt1,rt2,⋯,rtm与下一时刻状态st+1=[ot+11,⋯ ,ot+1m]s_{t+1}=[o^1_{t+1},\cdots,o^m_{t+1}]st+1=[ot+11,⋯,ot+1m]
- 让价值网络做预测:v^ti=v(st;wnowi)\hat{v}^i_t=v(s_t;w^i_{now})v^ti=v(st;wnowi)
- 让目标网络做预测:v^t+1i−=v(st+1;wnowi−)\hat{v}^{i-}_{t+1}=v(s_{t+1};w^{i-}_{now})v^t+1i−=v(st+1;wnowi−)
- 计算TD目标和TD误差:y^ti−=rti+γ⋅v^t+1i−\hat{y}^{i-}_t=r^i_t+\gamma\cdot\hat{v}^{i-}_{t+1}y^ti−=rti+γ⋅v^t+1i− δti=v^ti−y^ti−\delta^i_t=\hat{v}^i_t-\hat{y}^{i-}_{t}δti=v^ti−y^ti−
- 更新价值网络参数:wnewi←wnowi−α⋅δti⋅∇wiv(st;wnowi)w^i_{new}\leftarrow w^i_{now}-\alpha\cdot\delta^i_t\cdot\nabla_{w^i}v(s_t;w^i_{now})wnewi←wnowi−α⋅δti⋅∇wiv(st;wnowi)
- 更新目标网络参数:wnewi−←τ⋅wnewi+(1−τ)⋅wnowi−w^{i-}_{new}\leftarrow \tau\cdot w^i_{new}+(1-\tau)\cdot w^{i-}_{now}wnewi−←τ⋅wnewi+(1−τ)⋅wnowi−
- 更新策略网络参数:θnewi←θnowi−β⋅δti⋅∇θilnπ(ati∣st;θnowi)\theta^i_{new}\leftarrow \theta^i_{now}-\beta\cdot\delta^i_t\cdot\nabla_{\theta^i}ln\pi(a^i_t|s_t;\theta^i_{now})θnewi←θnowi−β⋅δti⋅∇θilnπ(ati∣st;θnowi), ∀i=1,⋯ ,m\forall i=1,\cdots,m∀i=1,⋯,m