多智能体强化学习
-
多智能体的常见设定:
- 合作关系。比如工业机器人
- 竞争关系。比如拳击比赛
- 合作-竞争混合。比如机器人足球比赛
- 利己主义。比如股票自动交易系统
-
多智能体系统的术语:
-
有n个智能体;
-
\(S\)为状态;
-
\(A^i\)表示第\(i\)个智能体的动作;
-
状态转移:
\[p(s^{\prime} | s,a^1,a^2…a^n) = \mathbb{P}(S^{\prime} = s^{\prime} | S = s, A^1 = a^1 … A^n = a^n)
\]下一个状态受到所有agent的影响。
-
\(R^i\)是第\(i\)个智能体获得的奖励,\(R^i_t\)是第\(i\)个智能体在时间\(t\)获得的奖励。
-
回报\(U^i_t = R_t^i + R_{t+1}^i + … + R_{\tau}^i\),折扣回报\(U^i_t = R_t^i + \lambda R_{t+1}^i + … + \lambda^{\tau – t} R_{\tau}^i\)。
-
策略网络\(\pi(a^i | s;\theta^i)\),每个智能体都有自己的策略网络。
-
状态价值函数:\(V^i(s_t;\theta^1,…,\theta^n) = \mathbb{E}[U_t^i|S_t = s_t]\),第\(i\)个agent的状态价值函数受所有其他策略网络的影响。
-
-
多智能体系统的收敛问题(无法通过改变策略来获得更大的期望回报)
- 多个智能体达到收敛的标准是纳什均衡。即所有agent都不能通过改变自身策略来获得更高回报。
-
单智能体策略梯度
-
系统中某一个智能体的状态价值受其他智能体的影响,将其他智能体的参数固定,对第\(i\)个智能体的状态价值关于状态取期望(状态具有随机性),得到目标函数:
\[J^i(\theta^1,\theta^2,…,\theta^n) = \mathbb{E}_S[S;\theta^1,…\theta^n]
\] -
第\(i\)个网络的目标就是使用梯度上升最大化\(J^i(\theta^1,…,\theta^n)\)。
-
这种每个agent只更新自己的参数的方式可能永远也无法收敛。
-
-
多智能体训练三种常见方法:
-
完全去中心化,就是上面所提的单智能体策略梯度,各个智能体只管优化自己的参数,不和其他智能体共享信息。
-
完全中心化,智能体本身不做决策,而是完全交由一个中央控制器负责训练和决策,agent执行来自中央控制器的动作指令。
- agent没有策略网络。
- 训练时每个agent将自己的观测\(o^i\)和奖励\(r^i\)告诉给中央控制器,由中央控制器告诉agent动作。
- 中央控制器的策略网络结构只有一个\(\pi(a^i|o^1,…,o^n;\theta^i)\),但每个agent有对应的一套参数\(\theta^i\)。
- 做决策时策略网络要用到所有agent的观测。使用不同的网络参数给不同的agent动作指令。
- 中央控制器有n个策略网络和n个动作价值网络(actor-critic),价值网络输入是所有agent的观测和动作。
- 完全中心化的缺点:训练和使用阶段都要和中央控制器通信和同步,导致反应速度慢。
-
中心化训练+去中心化执行。使用中央控制器来训练,等训练结束后舍弃之,决策交由agent来做。
- 每个agent都有一个自己的策略网络。
- 训练时有一个中央控制器帮助agent训练策略网络,执行阶段每个agent根据自己的局部观测做出决策。
- 中央控制器上有n个动作价值网络\(q(o,a;w^i)\);
-
-
局部观测
- 多智能体系统中某一个agent可能不能完全观察到当前的状态state;
- 令\(o^i\)表示第\(i\)个agent的观测,\(o^i \ne s\)。