- 多智能体的常见设定:
- 合作关系。比如工业机器人
- 竞争关系。比如拳击比赛
- 合作-竞争混合。比如机器人足球比赛
- 利己主义。比如股票自动交易系统
- 多智能体系统的术语:
- 有n个智能体;
- \(S\)为状态;
- \(A^i\)表示第\(i\)个智能体的动作;
- 状态转移:
下一个状态受到所有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\)个智能体的状态价值关于状态取期望(状态具有随机性),得到目标函数:
- 第\(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\)。