Bellman方程式と状態価値関数、行動価値関数(Q関数)について

強化学習でよく登場するのが「状態価値関数」$v_\pi(s)$ と「行動価値関数(Q関数)」$q_pi(s,a)$ です。
どちらも「将来の収益(割引した報酬の合計)の期待値」を測るものですが、着目する対象が異なります。

この記事では、定義から直感的な意味、Bellman方程式、両者の関係、考え方までを整理して解説します。

はるか
はるか
強化学習って、結局は「どう動けば得するか」を数値化してる。
ふゅか
ふゅか
そうそう!それを考えるために「状態」とか「行動」、「報酬」とかを整理するの。ちょっとゲームのルールみたいでワクワクしない?

1. 前提:強化学習の世界

1.1. 強化学習の要素

強化学習では、以下の要素を持つ環境を扱います(MDP: マルコフ決定過程)。

  • 状態 $S_t$:いまの状況
  • 行動 $A_t$:とれる選択肢
  • 報酬 $R_{t+1}$:行動の結果として得られるスコア
  • 割引率 $\gamma$:将来の報酬をどれだけ重要視するかを決めるパラメータ
  • 方策 $\pi(a\mid s)$:状態 $s$ で行動 $a$ を選ぶ確率を表すルール
  • 遷移確率 $p(s’ \mid s,a)$:状態 $s$ で行動 $a$ をとったとき、次状態 $s’$ に移る確率

1.2. 収益と方策

時刻 $t$ における状態を $S_t$、行動を $A_t$、そのときに得られる報酬を $R_{t+1}$ とします。
行動を選ぶルールは「方策」と呼ばれ、$\pi(a\mid s)$ のように「状態 $s$ で行動 $a$ を選ぶ確率」として定義されます。

将来をどの程度重視するかを調整するのが割引率 $\gamma \in [0,1)$ です。
そして「収益」$G_t$ とは、未来に得られる割引報酬の合計であり、次のように定義されます。

$$G_t = R_{t} + \gamma R_{t+1} + \gamma^2 R_{t+2} + \cdots$$

学習の目的は、この収益 $G_t$ の期待値をできるだけ大きくするような方策を見つけることです。

2. 状態価値関数 $v_\pi(s)$ とは?


状態価値関数の定義は次のとおりです。

$$v_\pi(s) = \mathbb{E}_\pi[\,G_t \mid S_t = s\,]$$

ここで $\mathbb{E}_\pi$ とは「方策 $\pi$ に従って行動を選び続けたときに得られる収益の期待値」を意味します。

2.1. 状態価値関数とBellman方程式

Bellman方程式は状態価値関数を利用して次のように書けます。

$$v_\pi(s) = \sum_{a}\pi(a\mid s)\sum_{s’,r}p(s’\mid s,a)\,(r(s,a,s’)+\gamma v_\pi(s’))$$

収益$G_t $を「最初の1ステップ」と「残り」に分けます:

$$G_t = R_{t} + \gamma G_{t+1}$$

これを価値関数に代入すると

$$v_\pi(s) = \mathbb{E}_\pi[\,G_t \mid S_t = s\,] =  \mathbb E_\pi[R_{t} + \gamma G_{t+1} \mid S_t = s]$$

となります。ここが出発点です。期待値の線形性より

$$v_\pi(s) = \mathbb E_\pi[R_{t} \mid S_t = s ]+ \mathbb E_\pi[\gamma G_{t+1} \mid S_t = s]$$

次にそれぞれを分解して求めます。

はるか
はるか
「Bellman方程式」の導出では、収益を分割。それがカギ。
ふゅか
ふゅか
そうそう!「最初の一歩でもらえる報酬」と「その先の未来の価値」に分けて考えるの。

2.1.1. 報酬の期待値 $\mathbb E_\pi[R_{t} \mid S_t = s]$

これから「状態 $s$ にいるとき、どんな報酬が期待できるのか」を考えてみましょう。

まず、状態 $s$ にいるときに行動 $a$ をとる確率は方策 $\pi(a\mid s)$ です。

そして、その行動を選んだ結果、次の状態 $s’$ に遷移する確率は $p(s’ \mid s,a)$ で表されます。

さらに「状態 $s$ から行動 $a$ をとり、$s’$ に遷移したときに得られる報酬の期待値」を
$r(s,a,s’)$ と書きます。

この3つを組み合わせれば、「状態 $s$ における報酬の期待値」は次のように表せます。

$$\mathbb E_\pi[R_{t} \mid S_t = s] = \sum_a \pi(a\mid s) \sum_{s’} p(s’ \mid s,a)\, r(s,a,s’)$$

2.1.2. 将来収益の期待値 $\mathbb E_\pi[\gamma G_{t+1} \mid S_t = s]$

次に「一歩先の収益」を考えてみましょう。

将来の収益 $G_{t+1}$の期待値は、次の状態 $s’$ に遷移したあと、その状態から先に得られる 状態価値関数 $v_\pi(s’)$ です。

$$v_\pi(s’) = \mathbb E_\pi[G_{t+1} \mid S_{t+1} = s’]$$

そこで、$S_t = s$ から行動 $a$ を選び、遷移確率 $p(s’ \mid s,a)$ で
次状態 $s’$ に移り$\mathbb E_\pi[G_{t+1} \mid S_{t+1} = s’]$となることを考慮すると、次のように書けます。

$$\mathbb E_\pi[ G_{t+1} \mid S_t = s] = \sum_a \pi(a\mid s) \sum_{s’} p(s’ \mid s,a)\, v_\pi(s’)$$

2.1.3. 両者を合わせる

以上をまとめると、状態価値関数 $v_\pi(s)$ は「その場で得られる報酬の期待値」と「次状態の価値の期待値」を足したものになります。すなわち、

$$v_\pi(s) = \sum_a \pi(a\mid s) \sum_{s’} p(s’ \mid s,a)\,\bigl(r(s,a,s’) + \gamma v_\pi(s’)\bigr)$$

これが Bellman方程式 です。

3. 行動価値関数 $q_\pi(s,a)$ とは?

行動価値関数は次のように定義されます。

$$q_pi(s,a) = \mathbb{E}_\pi[\,G_t \mid S_t = s, A_t = a\,]$$

これは「状態 $s$ で具体的に行動 $a$ を取ったとき、その後どれくらい収益が期待できるか?」を表しています。行動価値関数はすでに行動を固定して評価する点が状態価値関数と大きな違いです。

行動価値関数はQ関数とも呼ばれます。

はるか
はるか
「行動価値関数」って、状態価値と何が違う?
ふゅか
ふゅか
行動を決めてからの期待値を考えるのがポイント!

3.1. $v_\pi$ と $q_\pi$ の関係

両者は次の関係式で結ばれています。すべての行動をとった後と考慮すれば、
状態価値関数は行動価値関数で表せます。

$$v_\pi(s) = \sum_{a}\pi(a\mid s)\,q_\pi(s,a)$$

3.2. 行動価値関数とBellman方程式

Bellman方程式は行動価値関数を利用して次のように書けます。

$$q_{\pi}(s,a) =\sum_{s’}p(s’\mid s,a)\,(r(s,a,s’)+\gamma \sum_{a’} \pi(a’ \mid s’)\, q_\pi(s’,a’))$$

基本的に状態価値関数の導出と同じになります。

行動価値関数は「状態 $s$ で行動 $a$ をとったとき、その後得られる収益の期待値」として定義されます。

$$q_\pi(s,a) = \mathbb E_\pi[G_t \mid S_t=s, A_t=a]$$

3.2.1. 収益を分解する

収益 $G_t$ を「最初の1ステップ」と「残り」に分けると

$$G_t = R_{t} + \gamma G_{t+1}$$

したがって行動価値関数は次のように書けます。

$$q_\pi(s,a) = \mathbb E_\pi[R_{t} + \gamma G_{t+1} \mid S_t=s, A_t=a]$$

3.2.2. 報酬の期待値部分

行動 $a$ を固定したとき、$s’$ に遷移する確率は $p(s’\mid s,a)$。
そのとき得られる期待報酬は $r(s,a,s’)$ です。したがって

$$\mathbb E_\pi[R_{t} \mid S_t=s, A_t=a] = \sum_{s’} p(s’ \mid s,a)\, r(s,a,s’)$$

3.2.3. 将来収益の期待値部分

次に「残り」の部分を考えます。次状態が $s’$ になったら、そこから先は方策 $\pi$ に従って行動を選びます。
そのときに得られる期待収益は「次状態の行動価値の平均」として次のように表せます。

$$\mathbb E_\pi[G_{t+1} \mid S_{t+1}=s’] = \sum_{a’} \pi(a’ \mid s’)\, q_\pi(s’,a’)$$

これを使えば、

$$\mathbb E_\pi[\gamma G_{t+1} \mid S_t=s, A_t=a] = \gamma \sum_{s’} p(s’ \mid s,a) \sum_{a’} \pi(a’ \mid s’)\, q_\pi(s’,a’)$$

3.2.4. 両者を合わせる

以上をまとめると、行動価値関数の Bellman 方程式が得られます。

$$q_\pi(s,a) = \sum_{s’} p(s’ \mid s,a)\,\bigl(r(s,a,s’) + \gamma \sum_{a’} \pi(a’ \mid s’)\, q_\pi(s’,a’)\bigr)$$

4. まとめ

状態価値関数版

$$v_\pi(s) = \sum_a \pi(a\mid s) \sum_{s’} p(s’ \mid s,a)\,\bigl(r(s,a,s’) + \gamma v_\pi(s’)\bigr)$$

行動価値関数版

$$q_\pi(s,a) = \sum_{s’} p(s’ \mid s,a)\,\bigl(r(s,a,s’) + \gamma \sum_{a’} \pi(a’\mid s’)\, q_\pi(s’,a’)\bigr)$$

PR