1. マルコフゲームって?

Note: このブログは強化学習若手の会 Advent Calendar 2021 20日目の記事として書かれました。遅れてすみません。

通常の強化学習では、エージェントは一人しかおらず、世界は固定されています。 遷移確率Pは変化しません。 この設定では、エージェントは例えば期待割引報酬和 Eπ[t=0γtr(st)]\mathbb{E}_{\pi}[ \sum_{t=0}^\infty \gamma^t r(s_t)] を最大化するような方策を学習します。

一方で、学習するエージェントがいくつかいる場合はどうでしょうか? すると、エージェントがもらえる期待報酬和は他のエージェントの方策π0,π1,...,πk\pi_0, \pi_1, ..., \pi_kに依存してしまいます。 では、Eπ0,π1,...,πk[t=0γtr(st)]\mathbb{E}_{\pi_0, \pi_1, ..., \pi_k}[ \sum_{t=0}^\infty \gamma^t r(s_t)] を最大化すればいいのかというと、必ずしもそうではありません。 利害関係が対立する場合があるからです。 このような場合に対し、どのように学習の目標を設計し、また実際に学習することができるのでしょうか?

このブログでは、このようなマルチエージェント設定での学習を扱うフレームワークの一つであるマルコフゲームに注目し、その性質について概観します。特に、

MDPについての説明はアルバータ大学の講義資料およびその日本語訳を参照しています。

なお、このブログは自分が勉強用に書いたものなので、やや不親切な記述があるかと思いますが、ご了承願います。

2. マルコフ決定過程と基本定理

マルコフゲームの説明に入る前に、一人で学習する設定であるマルコフ決定過程 (Markov Decision Process, 以後MDPと呼ぶ)を使って、少しウォーミングアップしましょう。


定義1: MDP

MDP M\mathcal{M}は、以下から成る。

  • (有限)状態集合 S\mathcal{S}
  • (有限)行動集合 A\mathcal{A}
  • 状態遷移確率 P:S×AΔ(S)P: \mathcal{S} \times \mathcal{A} \rightarrow \Delta(\mathcal{S})
    • Δ(S)\Delta(\mathcal{S})S\mathcal{S}上の確率分布の空間(確率単体)
    • 状態ssで行動aaをとったときss'に遷移する確率をP(ss,a)P(s'|s, a)と書く
  • 報酬関数 r:S×A[0,1]r: \mathcal{S} \times \mathcal{A} \rightarrow [0, 1]
    • 状態ssで行動aaをもらえる即時報酬をr(s,a)r(s, a)と書く
  • 割引報酬率 0γ<10 \leq \gamma < 1
  • 初期状態分布 μΔ(S)\mu \in \Delta(\mathcal{S})

いま、エージェントとして、「記憶のない」方策π:SΔ(A)\pi: \mathcal{S} \rightarrow \Delta(\mathcal{A})を考え、π(as)\pi(a|s)により状態ssで行動aaをとる確率を表記します。 ある方策π\piを固定したとき、エージェントがもらう報酬の期待値を以下のように書きます。


定義2: 状態価値関数 VπV^\pi・状態行動価値関数 Qπ(s,a)Q^\pi(s, a)・期待リターンGπG^\pi

$$ \begin{align*} V^\pi(s) &= \mathbb{E}_{\pi} \left[\sum_{t = 0} ^\infty \gamma^t r(S_t, A_t)\right] \\ &= \sum_{a \in \mathcal{A}} \pi(a|s)\left(r(s, a) + \gamma \sum_{s'\in\mathcal{S}} P(s'|s,a) V^\pi(s)\right) \\ Q^\pi(s, a) &= r(s, a) + \gamma \sum_{s' \in \mathcal{S}} P(s'|s,a) V^\pi(s) \\ G^\pi &= \sum_{s \in \mathcal{S}} \mu(s) V^\pi(s) \end{align*} $$

ここで、St,AtS_t, A_tは時刻ttでの状態・行動に対応する確率変数です。 このとき、(割引)報酬和の期待値GπG^\piを最大化することがエージェントの目標であり、その目標を達成する方策を最適方策π\pi^*と書きます。

π\pi^*を求めるための非常に強力な道具がベルマン作用素(Bellman operator)と呼ばれる一連のオペレーターです。


定義3: 方策π\piについてのベルマン演算子

VVを任意の価値関数とする。このとき、方策π\piに付随するベルマン演算子Tπ\mathcal{T}^\piVVTπV\mathcal{T}^\pi Vに写像する。TπV\mathcal{T}^\pi Vは以下のように与えられる。

(TπV)(s)=aAπ(as)(r(s,a)+sSP(ss,a)V(s))(\mathcal{T}^\pi V)(s) = \sum_{a \in \mathcal{A}} \pi(a|s) \left( r(s, a) + \sum_{s' \in \mathcal{S}} P(s'|s,a) V(s') \right)


これだけだとだから何?という感じがしますが、この演算子は一回の適用で真のVπV^\piとの差1が(最大ノルムにおいて)γ\gammaずつ縮まるという性質を持っているので、 これを繰り返し適用するとVπV^\piを得ることができます。 少しやってみましょう。


  1. VVS|\mathcal{S}|次元のベクトルだとみなすと、最大ノルムの差が縮まります。