Updated Mar/18/2024 by

Reinforcement Training (強化学習)

Youtube 「強化学習の探検」 AIcia Solid Project を視聴したときのメモ

https://www.youtube.com/playlist?list=PLhDAH9aTfnxI1OywfnxXCDTWGtYL2NxJR
[UP]

強化学習とは

Reiforcement Learning (強化学習) = 行動選択の科学 Earning (収益) を最大化する。そのために、State (状態) に応じて Action (行動) を選択する。 応用分野

教師あり学習とどこが違うのか?

教師あり学習との類似点 教師あり学習との相違点

強化学習の全体像


マルコフ決定過程 (Markov Decision Process, MDP)

マルコフ決定過程は強化学習の問題設定を与える。 環境 (Environment) と呼ばれる。

マルコフ決定過程では、行動の次の状態と報酬を条件付き確率で設定している。

マルコフ決定過程は5個の要素から成る。 大事なのは次の2個。

(1)行動 → 次の状態

行動に応じて次の状態が決まる。 マルコフ決定過程では $p(s'|s,a)$ で表現する。 「状態 $s$ で行動 $a$ を選択した場合、次の状態が $s'$ である確率」を意味する。

(2)行動 → 報酬

行動の結果、報酬が得られる。 マルコフ決定過程では $p(r|s,a)$ で表現する。 「状態 $s$ で行動 $a$ を選択した場合、報酬が $r$ である確率」を意味する。

マルコフ決定過程の定義

マルコフ決定過程は、以下の5つのデータから成る。
$S$, $A_s$, $p(s'|s,a)$, $p(r|s,a)$, $p(s_0)$

(1) 状態の集合 $S$
$s \in S$ を状態という
(2) 行動の集合 $A_s$
$s \in S$ に対し、集合 $A_s$ が定まっている。$a \in A_s$ を行動という。
(3) 状態遷移の確率 $p(s'|s,a)$
状態 $s \in S$, 行動 $a \in A_s$ に対し、$S$ 上の確率分布 $p(s'|s,a)$ が定まっている。
(4) 報酬の確率 $p(r|s,a)$
状態 $s \in S$, 行動 $a \in A_s$ に対し、$\mathbb{R}$ 上の確率分布 $p(r|s,a)$ が定まっている。
(5) 初期状態の確率 $p(s_0)$
$S$ 上の確率分布 $p(s_0)$ が定まっている。

強化学習の方策 (Policy, $\pi$)

強化学習: 収益最大化のため、状態に応じて、「方策 (Policy)にしたがって」行動を選択する。

  1. マルコフ決定過程が確率を用いて定義されるので、方策も確率分布
  2. 確率分布を考えると、関数で定義した場合を含むことができる。
  3. 関数 $a=f(s)$ は
    $\pi(a|s) = \begin{cases} 1 & \mbox{if} ~~ a = f(s) \\ 0 & \mbox{otherwise} \\ \end{cases} $ と定義した場合と同じである。
  4. 探索
  5. データ収集のときは、最善以外の行動も大事である。 (例) 「95\% は最善手を選択するが、5\% はランダムな手を選択する」など。
  6. 行動が連続値の場合
  7. 行動の数値はある程度ずれてもよい場合 → 連続確率分布を使う。

強化学習の収益

  1. エピソードと軌跡
  2. 収益と価値関数
  3. 収益とは
$\displaystyle g = \sum r_t$
$\displaystyle \mathbb{E}[G] = \sum \mathbb{E} [R_t]$
$\displaystyle \mathbb{E}[G] = \sum {\gamma}^t \mathbb{E} [R_t]$   ←期待割引収益   (今回の話)
$\displaystyle V^{\pi}(s) = \mathbb{E}[G | S_o=s]$
$\displaystyle Q^{\pi}(s, a) = \mathbb{E}[G | S_o=s, A_0=a ]$
他にも $f_0 (\pi)$, $f_{\infty}(\pi)$, $Q_{\infty}^{\pi} (s, a)$, $\cdots$

1. エピソードと軌跡

マルコフ決定過程 (MDP) では収益 $\displaystyle g = \sum_{t} r_t$

MDP と方策があると
$s_0$ → ($a_0$, $r_0$) → s_1 → ($a_1$, $r_1$) → $s_2$ $\cdots$ のように状態が遷移していくが、すべて確率的に決定されていく。

この系列データを「エピソード (episode)」という。 また、データ全体を「軌跡 (trajectory)」という。

2. 収益と価値関数

収益: $\displaystyle g = \sum_{t \geqq 0} r_t$
期待値: $\displaystyle \mathbb{E}[G] = \mathbb{E} [\sum_{t \geqq 0} R_t] = \sum_{t \geqq 0} \mathbb{E} [R_t]$
(上式の左辺) 期待割引収益: $\displaystyle \mathbb{E}[G] = \sum_{t \geqq 0} {\gamma}^t \mathbb{E} [R_t]$
(上式の中辺) 平均報酬: $\displaystyle \mathbb{E} [\sum_{t \geqq 0} R_t] = \lim_{T \rightarrow \infty} \frac{1}{T} \sum_{t \lt T} \mathbb{E}[R_t]$
状態価値関数: $\displaystyle V^{\pi}(s) = \mathbb{E}[G | S_o=s]$    ← 期待割引収益を $S_0=s$ に制限した式
行動価値関数: $\displaystyle Q^{\pi}(s, a) = \mathbb{E}[G | S_o=s, A_0=a ]$    ← 期待割引収益を $S_0=s$, $A_0=a$ に制限した式

3. 収益

記号のおさらい

$s_t$, $a_t$, $r_t$ : 時刻 $t$ での状態、行動、報酬の値    ← データにある実際の値
$S_t$, $A_t$, $R_t$ : 時刻 $t$ での状態、行動、報酬の確率変数
$\mathcal{S}$, $\mathcal{A}_s$, $\mathbb{R}$ : 状態、行動、報酬の集合

内容

収益 $\displaystyle g=\sum{t \geqq 0} r_t$ を最大化したい。 しかし、$g$ はランダムに変動する。 そこで、期待値を調べる。

収益を表す確率変数: $\displaystyle G = \sum_{t \geqq 0} R_t$
期待収益: $\displaystyle \mathbb{E}[G] = \mathbb{E}[\sum_{t \geqq 0} R_t] = \sum_{t \geqq 0} \mathbb{E}[R_t]$

$\mathbb{E}[G]$ は無限和なので発散する場合がある。 そこで、 割引率 $\gamma$ ($0 \leqq \gamma \leqq 1$)を考えて収束させる。

$\displaystyle G = \sum_{t \geqq 0} {\gamma}^t R_t$
$\displaystyle \mathbb{E}[G] = \mathbb{E}[\sum_{t \geqq 0} {\gamma}^t R_t] = \sum_{t \geqq 0} {\gamma}^t \mathbb{E}[R_t]$

割引率の妥当性: 学習がうまくいくのでよい(工学的態度)

問題にあわせて割引率 $\gamma$ を調整 (= 先読み範囲の調整)すると、学習を効率化できる。

割引率の妥当性2 : 遠い将来の価値は価値が下がるのが自然(経済学的態度)

金利が 1\% だと、今日の100万円は、1年後に101万円になる。
すなわち、1年後の100万円は、現在の100万円よりも価値が下がる。

$t\mbox{年後の100万円} = \mbox{100万円} {\frac{100}{101}}^t$

まとめ

期待割引収益は、割引率を考えた「報酬の累積和」の期待値。 以降、「期待割引収益」を単に「収益」と呼ぶことにする。

方策 $\pi$ を明記したいときは $\mathbb{E}$ を $\mathbb{E}^{\pi}$ と書くことにする。

$\displaystyle f_0 (\pi) = \mathbb{E}^{\pi}[G] = \sum {\gamma}^t \mathbb{E}^{\pi}[R_t]$

価値関数

  1. 価値関数とは
  2. 価値関数の使い方

1. 価値関数とは

収益: $\displaystyle \mathbb{E}^{\pi}[G] = \sum {\gamma}^t \mathbb{E}^{\pi}[R_t]$
状態価値関数: $\displaystyle V^{\pi}(s) = \mathbb{E}[G | S_o=s]$    ← 初期の状態が $s$ の場合の収益
行動価値関数: $\displaystyle Q^{\pi}(s, a) = \mathbb{E}[G | S_o=s, A_0=a ]$    ← 初期の状態が $s$, 初期の行動が $a$ の場合の収益
(注意) $\mathbb{E}(X | \bigstar)$ は $\bigstar$ の場合の $X$ の期待値、を意味する。

2. 価値関数の使い方

方策 $\pi$ の学習と並行して、 価値関数 $V^{\pi}$ , \q^{\pi}$ も学習すると効率的に学習できる。

Generalized Policy Iteration

  1. Generalized Policy Iteration
  2. 強化学習4つの対象
強化学習の難しさ → 問題によって解き方が全く異なる。

1. Generalized Policy Iteration

学習方法の話。「繰り返し」

$s_t$ → ($a_t$, $r_t$) → s_{t+1}
「状態 $s_t$ に応じて方策 $\pi$ に従って行動 $a_t$ を選択し、報酬 $r_t$を得る」ことを繰り返し「データを集める」。 集めたデータを使って「学習して方策 $\pi$ を改善する」。 これを繰り返すことが Generalized Policy Iteration である。

Generalized Policy Iteration は「方策改善 (Policy Improvement)」と「方策評価 (Policy Evaluation)」の繰り返しである。

方策改善では、パラメータを変えて $\pi$ を改善する。 方策評価では、価値関数 $V^{\pi}$, $Q^{\pi}$ を推定(学習)する。

「価値関数の値が大きい」ことはすなわち「収益が大きい」ということ。 → 価値関数の大きさで方策の良し悪しが評価できる。

強化学習の勉強の難しさ

  1. 部分問題が非常に多い。
  2. 注力場所が異なる

2. 強化学習4つの対象

データ: data
方策: $\pi$
価値関数: $V$, $Q$
マルコフ決定過程(MDP): $p$, $r$   ← 確率なので

ベルマン方程式: ベルマン期待方程式 (Bellman Expectation Equation)

「2手先の未来を読む」。

定理 (ベルマン期待方程式)

方策 $\pi$ の価値関数 $V^{\pi}(s)$, $Q^{\pi}(s, a)$ は以下の式を満たす。
$\displaystyle V^{\pi}(s) = \sum_{a} {\pi}(a|s) (\sum_{r} p(r+s,a) r + \gamma \sum_{s'} p(s'|s,a) V^{\pi}(s'))$
$\displaystyle Q^{\pi}(s,a) = \sum_{r} p(r|s,a) r + \sum_{s'} p(s'|s,a) \sum_{a'} {\pi}(a'|s') Q^{\pi}(s',a')$

ベルマン方程式を理解する2つのポイント

Step 1: 「状態」の次は「行動」

$V^{\pi}$: $S_0=s$ のときの収益

したがって、$V$ は $Q$ の期待値として計算できる。

$\begin{align} \displaystyle V^{\pi} & = \sum_{a} \pi (a|s) Q^{\pi}(s,a) \\ & = \sum \mbox{「行動を選択する確率」} \times \mbox{「行動後の報酬」} \\ \end{align}$
すべての行動に対してそれぞれの報酬を計算して、確率をかけて和をとれば、期待値となる。

Step 2: 「行動」の次は、「報酬」と「次の状態」

$Q^{\pi} (s,a)$: $S_0=s$, $A_0 = a$ のあとの収益
$\displaystyle \mbox{報酬の期待値} = \sum_r p(r|s,a) \times r$
$\begin{align} Q^{\pi}(s,a) & = (\mbox{はじめの報酬} R_0 \mbox{の期待値}) + (S_1=s' \mbox{ 以降の収益}) \\ & = \sum_r p(r|s,a) r + \gamma \sum_{s'} p(s'|s,a) V^{\pi} (s') \\ \end{align}$
$S_0 (= s)$, $A_0 (= a)$, $R_0$, $S_1 (= s')$, $A_1$, $R_1$, $S_2$, $A_2$, $R_2$, $\cdots$
$V^{\pi} = R_1 + \gamma R_2 + \gamma^2 R_3 + \cdots$

Step 3: ベルマン方程式は2手先を見る

$\begin{align} V^{\pi}(s) &= \sum_a {\pi}(a|s) Q^{\pi} (s, a) \\ &= \sum_a {\pi}(a|s) (\sum_r p(r|s,a) r + \gamma \sum_{s'} p(s'|s,a) V^{\pi} (s')) \\ \end{align}$
$\begin{align} Q^{\pi}(s,a) & = \sum_r p(r|s,a) r + \gamma \sum_{s'} p(s'|s,a) V^{\pi} (s') \\ &= \sum_r p(r|s,a) r + \gamma \sum_{s'} p(s'|s,a) \sum_{a'} {\pi}(a'|s') Q^{\pi}(s',a') \\ \end{align}$

ベルマン状態方程式の証明

$\begin{align} V^{\pi}(s) & = \mathbb{E}^{\pi}[G|S_0=s] \\ &= \mathbb{E}^{\pi}[R_0 | S0=a] + \mathbb{E}^{\pi}[\gamma R_1 + \gamma^2 R_2 + \gamma^3 R_3 + \cdots | S_1=s'] \\ &= \sum_{a} \pi(a|s) \sum_r p(r|s,a) r + \sum_{s'} p(S_1=s'|S_0=s) \times \mathbb{E}^{\pi}[\gamma R_1 + \gamma^2 R_2 + \gamma^3 R_3 |S_1=s'] \\ &= \sum_{a} \pi(a|s) \sum_r p(r|s,a) r + \sum_{s'} \sum_{a} \pi(a|s) p(s'|s,a) \times \gamma V^{\pi}(s') \\ &= \sum_a \pi(a|s)(\sum_r p(r+s,a) + \gamma \sum_{s'} p(s'|s,a) V^{\pi}(s')) \\ \end{align}$ $\begin{align} \because \mathbb{E}^{\pi}[\gamma R_1 + \gamma^2 R_2 + \gamma^3 R_3 |S_1=s'] & = \gamma \mathbb{E}^{\pi}[R_1 + \gamma R_2 + \gamma^2 R_3 |S_1=s'] \\ & \approx \gamma \mathbb{E}^{\pi}[R_0 + \gamma R_1 + \gamma^2 R_2 |S_0=s'] \\ &= \gamma V^{\pi}(s') \end{align}$

まとめ:[基本公式] (1手先の未来)

$\begin{align} V^{\pi} (s) & = \sum_a \pi (a+s) Q^{\pi} (s,a) \\ Q^{\pi} (s, a) & = \sum_r p(r|s,a) r + \gamma \sum_{s'} p(s'|s,a) V^{\pi} (s') \\ \end{align}$

まとめ[ベルマン方程式] (2手先の未来)

$\begin{align} V^{\pi}(s) &= \sum_a {\pi}(a|s) (\sum_r p(r|s,a) r + \gamma \sum_{s'} p(s'|s,a) V^{\pi} (s')) \\ Q^{\pi}(s,a) &= \sum_r p(r|s,a) r + \gamma \sum_{s'} p(s'|s,a) \sum_{a'} {\pi}(a'|s') Q^{\pi}(s',a') \\ \end{align}$

ベルマン方程式: ベルマン最適方程式 (Bellman Optimality Equation)

最適方策 $\pi^{*}$

たいていのマルコフ決定過程においては、最適方策 $\pi^{*}$ という方策があって、すべての状態について価値関数が最大になる。

強化学習の目的は、最適方策(または、その近似解)を発見すること。

最適状態価値関数: $V^{\pi^{*}}(s)$   → 以降 $V^{*}$ と書くことにする。
最適行動価値関数: $Q^{\pi^{*}}(s,a)$   → 以降 $Q^{*}$ と書くことにする。

定理: ベルマン最適方程式

最適方策 $pi^{*}$ についての価値関数 $V^{*}$, $Q^{*}$ は次の式を満たす。

$\begin{align} V^{*}(s) & = \max_a (\sum_r p(r|s,a) r + \gamma \sum_{s'} p(s'|s,a) V^{*}(s')) \\ Q^{*}(s,a) & = \sum_r p(r+s,a) r + \gamma \sum_{s'} p(s'|s,a) \max_{a'} Q^{*}(s',a') \\ \end{align}$

「ベルマン期待方程式の」「期待値」(すなわち、$\displaystyle \sum_a \pi(a|s)$ や $\displaystyle \sum_{a'} \pi(a'|s')$ の部分) を最大値 $\max$ に変更したものが「最適方程式」といえる。

Step 1: 状態の次は行動

一般の方策 $\pi$ の場合、 $\displaystyle V^{\pi}(s) = \sum_a \pi(a|s) Q^{\pi}(s,a)$

$\displaystyle \sum_a \pi(a|s)$ の部分は「様々な行動を選択する確率」(に報酬を乗算した)の和(=期待値)を意味している。

最適方策 $\pi^{*}$ の場合は、 $Q^{*}(s,a)$ が最大となる行動 $a$ を必ず選択する。 したがって、
$\displaystyle V^{*}(s) = \max_a Q^{*}(s,a)$    ← 次の状態がわかった

Step 2: 行動の次は報酬と次の状態

一般の方策の場合、
$\begin{align} Q^{\pi} (s, a) & = \sum_r p(r|s,a) + \gamma \sum_{s'} p(s'|s,a) V^{\pi} (s') \\ \end{align}$

$\displaystyle \sum_r p(r|s,a)$ や $\displaystyle \sum_{s'} p(s'|s,a)$ の部分はマルコフ決定過程が支配している。 したがって、 $V^{\pi} (s') $ を最適に変更すれば、$Q^{\pi}$も最適になる。

$\begin{align} Q^{*} (s, a) & = \sum_r p(r|s,a) + \gamma \sum_{s'} p(s'|s,a) V^{*} (s') \\ \end{align}$

Step 3: ベルマン最適方程式

$\begin{align} \displaystyle V^{*}(s) & = \max_a Q^{*}(s,a) \\ &= \max_a(\sum_r p(r|s,a) r + \gamma \sum_{s'} p(s'|s,a) V^{*}(s')) \\ Q^{*}(s,a) &= \sum_r p(r|s,a) r + \gamma \sum_{s'} p(s'|s,a) V^{*}(s') \\ &= \sum_r p(r|s,a) r + \gamma \sum_{s'} p(s'|s,a) \max_{a'} Q^{*}(s',a') \\ \end{align}$

まとめ: [基本公式] (1手先の未来)

$\begin{align} \displaystyle V^{*}(s) & = \max_a Q^{*}(s,a) \\ Q^{*}(s,a) &= \sum_r p(r|s,a) r + \gamma \sum_{s'} p(s'|s,a) V^{*}(s') \\ \end{align}$

まとめ: [ベルマン最適方程式] (2手先の未来)

$\begin{align} \displaystyle V^{*}(s) &= \max_a(\sum_r p(r|s,a) r + \gamma \sum_{s'} p(s'|s,a) V^{*}(s')) \\ Q^{*}(s,a) &= \sum_r p(r|s,a) r + \gamma \sum_{s'} p(s'|s,a) \max_{a'} Q^{*}(s',a') \\ \end{align}$

方策反復法 (Policy Iteration)

1. 方策反復法とは

多くの強化学習アルゴリズムが、「方策評価と方策更新の繰り返し」である。

方策評価

価値関数の推定。今回は状態価値関数 $V^{\pi}(s)$ を推定する。

状況

連立一次方程式

状態が $s_1$, $s_2$ の2つのとき、$\displaystyle \sum_{s'}$ を $s_1$ の場合と $s_2$ の場合に展開して書くと
$\begin{align} V^{\pi}(s_1) &= \sum_a {\pi}(a|s_1) (\sum_r p(r|s_1,a) r + \gamma ( p(s_1|s_1,a) V^{\pi} (s_1) + p(s_2|s_1,a) V^{\pi} (s_2) )) \\ V^{\pi}(s_2) &= \sum_a {\pi}(a|s_2) (\sum_r p(r|s_2,a) r + \gamma ( p(s_1|s_2,a) V^{\pi} (s_1) + p(s_2|s_2,a) V^{\pi} (s_2))) \\ \end{align}$
$\color{blue}{x = V^{\pi}(s_1)}$, $\color{green}{y = V^{\pi}(s_2)}$ とおくと、上の式は
$\begin{align} \color{blue}{x} = a + b\color{blue}{x} + c\color{green}{y} \\ \color{green}{y} = d + e\color{blue}{x} + f\color{green}{y} \\ \end{align}$
2変数に関する2つの連立1次方程式となる。
状態の数が $N$ 変数に関する $N$ 個の連立1次方程式となる。

1次連立方程式の解の存在

$\gamma < 1$ なら解がただひとつ存在する。
$\gamma = 1$ のときは、場合による。

1次方程式を解くには逆行列の計算が必要となる。

  1. 逆行列が(現実的な時間で)計算できる。
  2. 無理な場合は、ベルマン作用素を利用する。
  3. それでも無理な場合は、別の方法を使う。

2. 方策評価とベルマン作用素

ベルマン作用素

記号 (真の)価値関数: $V^{\pi}(s)$
(推定値の)価値関数: $\widehat{V}^{\pi}(s)$
ベルマン作用素は、ベルマン方程式を利用して推定値の精度を上げる方法である。

ベルマン作用素は $\color{blue}{\widehat{V}^{\pi}(s)}$ から以下の式で $\color{green}{\widehat{V}^{\pi, new}(s)}$ を作る変換。

$\displaystyle \begin{align} \color{green}{\widehat{V}^{\pi, new}(s)} &= \sum_{a} \pi(a|s) ( \sum_{r} p(r|s,a) r + \gamma \sum_{s'} p(s'|s,a) \color{blue}{\widehat{V}^{\pi}(s)} ) \end{align}$

誤差を $\gamma$ 倍に減らすことができる。

$\displaystyle \max |\color{green}{\widehat{V}^{\pi, new}(s)} - V^{\pi}(s)| \leqq \gamma \max |\color{blue}{\widehat{V}^{\pi}(s)} - V^{\pi}(s) |$

$\gamma < 1$ のとき、ベルマン作用素を繰り返し適用することで精度が向上できる。
充分に繰り返したあとの推定値 $\widehat{V}^{\pi}(s)$ を(ほぼ真の)価値関数として、方策評価を完了する。

3. 方策更新

状況

$\widehat{Q}^{\pi}(s,a)$ とは

(真の)行動価値関数: $Q^{\pi}(s,a)$
(推定値の)行動価値関数: $\widehat{Q}^{\pi}(s,a)$
$\widehat{Q}^{\pi}(s,a)$ はベルマン方程式の「1手先の未来読み」で計算できる。
$\begin{align} \widehat{Q}^{\pi}(s,a) &= \sum_r p(r|s,a) r + \gamma \sum_{s'} p(s'|s,a) \widehat{V}^{\pi}(s') \end{align}$

$\mbox{argmax} \widehat{Q}^{\pi}$ とは

$\mbox{argmax} \widehat{Q}^{\pi}$ とは、 状態 $s$ で $\widehat{Q}^{\pi}(s,a)$ が最大となる行動 $a$ を選択する方策

まとめ: 方策反復法

以下の手順を繰り返す。

data:[$\pi$, $V$, $Q$, $p$, $r$] →(Bellman) → data[$V$, $Q$] → ($\color{magenta}{\pi = \mbox{argmax} Q}$) → data[$\pi$]
  1. 方策評価: ベルマン作用素を連続適用することで状態価値関数の推定値 $\color{orange}{\widehat{V}^{\pi}(s)}$ を得る。
  2. 方策更新: $\color{magenta}{\pi = \mbox{argmax} Q}$ で新しい方策 $\color{magenta}{\pi}$ を得る。

マルコフ決定過程なので $p$, $r$ は既知である。 初期状態において $\pi$, $V$, $Q$ は適当に初期化しておいて良く、繰り返しによって、 次第に精度が向上していく。


価値反復法 (Value Iteration)

1. 価値反復法とは

2. 価値反復法とベルマン最適作用素

状況

復習

ベルマン期待方程式
$\begin{align} V^{\pi}(s) &= \sum_a {\pi}(a|s) (\sum_r p(r|s,a) r + \gamma \sum_{s'} p(s'|s,a) V^{\pi} (s')) \\ \end{align}$
ベルマン最適方程式
$\begin{align} \displaystyle V^{*}(s) &= \max_a(\sum_r p(r|s,a) r + \gamma \sum_{s'} p(s'|s,a) V^{*}(s')) \\ \end{align}$
ベルマン作用素
$\displaystyle \begin{align} \color{green}{\widehat{V}^{\pi, new}(s)} &= \sum_{a} \pi(a|s) ( \sum_{r} p(r|s,a) r + \gamma \sum_{s'} p(s'|s,a) \color{blue}{\widehat{V}^{\pi}(s)} ) \end{align}$

ベルマン最適作用素

(真の)最適状態価値関数: $V^{*}(s)$
(推定値の)最適状態価値関数: $\widehat{V}^{*}(s)$
ベルマン最適作用素: ベルマン最適方程式を用いて $V^{*}(s)$ の精度を向上させる手法。

ベルマン最適作用素は、 $\widehat{V}^{*}(s)$ に以下の式を適用して $\widehat{V}^{*, new}(s)$ を計算する変換

$\displaystyle \begin{align} \color{green}{\widehat{V}^{\pi, new}(s)} &= \max_{a} ( \sum_{r} p(r|s,a) r + \gamma \sum_{s'} p(s'|s,a) \color{blue}{\widehat{V}^{\pi}(s)} ) \end{align}$

誤差を $\gamma$ 倍に減らすことができる。

$\displaystyle \max |\color{green}{\widehat{V}^{\pi, new}(s)} - V^{\pi}(s)| \leqq \gamma \max |\color{blue}{\widehat{V}^{\pi}(s)} - V^{\pi}(s)|$

3. 最適方策を計算する

Step 1: $\widehat{Q}^{*}$ を計算する

ベルマン最適方程式の1手先読みで
$\begin{align} \widehat{Q}^{*}(s,a) & = \sum_r p(r|s,a) r + \gamma \sum_{s'} p(s'|s,a) \widehat{V}^{*}(s') \end{align}$
を計算する。

Step 2: $\pi = \mbox{argmax} \widehat{Q}^{*}$

$\mbox{argmax}$ は, 「状態 $s$ で、 $\widehat{Q}^{*}(s,a)$ が最大になる行動 $a$ を選択する」ことを意味する。 したがって、$\pi$ は 「状態 $s$ で、 $\widehat{Q}^{*}(s,a)$ が最大になる行動 $a$ を選択する」 方策となる。

まとめ

最適状態価値関数の更新を繰り返し、最後に一度だけ方策の更新を行う。

data:[$V$, $Q$, $p$, $r$] →(Bellman) → data[$V$, $Q$] → ($\color{magenta}{\pi = \mbox{argmax} Q}$) → data[$\pi$]

$\gamma < 1$ ならば、推定値 $\widehat{V}^{*}(s)$ を適当に初期化して、 ベルマン作用素を何回も適用すれば $V^{*}(s)$ に近い(= 誤差の小さない) 推定値 $\widehat{V}^{*}(s)$ が得られる。

  1. 最適状態価値関数の推定値の更新を繰り返す: ベルマン作用素を連続適用することで最適状態価値関数 $V^{*}(s)$ の推定値 $\color{orange}{\widehat{V}^{*}(s)}$ を得る。
  2. 方策更新: $\widehat{V}^{*}$ から $\widehat{Q}^{*}$ を計算し、 $\color{magenta}{\pi = \mbox{argmax} \widehat{Q}^{*}}$ で新しい方策 $\color{magenta}{\pi}$ を得る。

価値反復法が方策反復法を決定的に違う点は、「繰り返しが無い(= 方策更新は最後に1度だけ行われる)」である。