多智能体强化学习

  1. 多智能体的常见设定:

    1. 合作关系。比如工业机器人
    2. 竞争关系。比如拳击比赛
    3. 合作-竞争混合。比如机器人足球比赛
    4. 利己主义。比如股票自动交易系统
  2. 多智能体系统的术语:

    1. 有n个智能体;

    2. \(S\)为状态;

    3. \(A^i\)表示第\(i\)个智能体的动作;

    4. 状态转移:

      \[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的影响。

    5. \(R^i\)是第\(i\)个智能体获得的奖励,\(R^i_t\)是第\(i\)个智能体在时间\(t\)获得的奖励。

    6. 回报\(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\)

    7. 策略网络\(\pi(a^i | s;\theta^i)\),每个智能体都有自己的策略网络。

    8. 状态价值函数:\(V^i(s_t;\theta^1,...,\theta^n) = \mathbb{E}[U_t^i|S_t = s_t]\),第\(i\)个agent的状态价值函数受所有其他策略网络的影响。

  3. 多智能体系统的收敛问题(无法通过改变策略来获得更大的期望回报)

    1. 多个智能体达到收敛的标准是纳什均衡。即所有agent都不能通过改变自身策略来获得更高回报。
  4. 单智能体策略梯度

    1. 系统中某一个智能体的状态价值受其他智能体的影响,将其他智能体的参数固定,对第\(i\)个智能体的状态价值关于状态取期望(状态具有随机性),得到目标函数:

      \[J^i(\theta^1,\theta^2,...,\theta^n) = \mathbb{E}_S[S;\theta^1,...\theta^n] \]

    2. \(i\)个网络的目标就是使用梯度上升最大化\(J^i(\theta^1,...,\theta^n)\)

    3. 这种每个agent只更新自己的参数的方式可能永远也无法收敛。

  5. 多智能体训练三种常见方法:

    1. 完全去中心化,就是上面所提的单智能体策略梯度,各个智能体只管优化自己的参数,不和其他智能体共享信息。

    2. 完全中心化,智能体本身不做决策,而是完全交由一个中央控制器负责训练和决策,agent执行来自中央控制器的动作指令。

      1. agent没有策略网络。
      2. 训练时每个agent将自己的观测\(o^i\)和奖励\(r^i\)告诉给中央控制器,由中央控制器告诉agent动作。
      3. 中央控制器的策略网络结构只有一个\(\pi(a^i|o^1,...,o^n;\theta^i)\),但每个agent有对应的一套参数\(\theta^i\)
      4. 做决策时策略网络要用到所有agent的观测。使用不同的网络参数给不同的agent动作指令。
      5. 中央控制器有n个策略网络和n个动作价值网络(actor-critic),价值网络输入是所有agent的观测和动作。
      • 完全中心化的缺点:训练和使用阶段都要和中央控制器通信和同步,导致反应速度慢。
    3. 中心化训练+去中心化执行。使用中央控制器来训练,等训练结束后舍弃之,决策交由agent来做。

      1. 每个agent都有一个自己的策略网络。
      2. 训练时有一个中央控制器帮助agent训练策略网络,执行阶段每个agent根据自己的局部观测做出决策。
      3. 中央控制器上有n个动作价值网络\(q(o,a;w^i)\);
  6. 局部观测

    1. 多智能体系统中某一个agent可能不能完全观察到当前的状态state;
    2. \(o^i\)表示第\(i\)个agent的观测,\(o^i \ne s\)
posted @ 2021-07-30 23:00  风和雨滴  阅读(865)  评论(0编辑  收藏  举报