マルコフ決定過程

**マルコフ決定過程**（マルコフけっていかてい、）は、状態遷移が確率的に生じる動的システム（確率システム）の確率モデルであり、状態遷移がマルコフ性を満たすものをいう。
MDP は不確実性を伴う意思決定のモデリングにおける数学的枠組みとして、強化学習など動的計画法が適用される幅広い最適化問題の研究に活用されている。
MDP は少なくとも1950年代には知られていたが、研究の中核は1960年に出版された Ronald A. Howard の "Dynamic Programming and Markov Processes" に起因する。
MDP はロボット工学や自動制御、経済学、製造業を含む幅広い分野で用いられている。

## 概要

マルコフ決定過程は離散時間における確率制御過程 (stochastic control process) である。
各時刻において過程 (process) はある**状態** (state) を取り、意思決定者 (decision maker) はその状態において利用可能な**行動** (action) を任意に選択する。
その後過程はランダムに新しい状態へと遷移し、その際に意思決定者は状態遷移に対応した**報酬** (reward) を受けとる。

遷移後の状態 s' 、および得られる報酬の値 r は現在の状態 s と行動 a のみに依存し、s と a が与えられたもとでそれより過去の状態および行動と条件付き独立となる。
言い換えると、マルコフ決定過程の状態遷移はマルコフ性を満たす。

マルコフ決定過程はマルコフ連鎖に（選択可能な）行動、および（行動を計画する動機を与える）報酬を追加し拡張したものであると解釈できる。
逆に言えば、各ステップにとる行動がそのステップにおける状態のみ依存するとき、マルコフ決定過程は等価なマルコフ連鎖に置き換えることが出来る。

## 定義
MDP は4つの要素の組 (S, A, T, R)で表される。ここで各要素はそれぞれ次を意味する。
* S は状態の集合であり、状態空間 (state space) と呼ばれる。
* A は行動の集合であり、行動空間 (action space) と呼ばれる。特に、ある特定の状態 s \in S で取ることの出来る行動の集合を A_s \subset A によって表記する。
* T は遷移関数 (transition function) と呼ばれ、状態 s \in S において行動 a \in A_s を取った場合における状態 s' \in S への状態遷移確率を規定する実数値 T(s, a, s') \in [0, 1] を割り当てる。
* R は報酬関数 (reward function) と呼ばれ、状態 s \in S から s' \in S に行動 a \in A_s を伴い遷移することによって得られる即時報酬 (immediate reward) またはその期待値を表わす実数値 R(s, a, s') \in \mathbb{R} を規定する。

状態空間 S および行動空間 A は、有限集合の場合と（実数値すべての集合のような）無限集合の場合がある。特に S と A がともに有限集合であるような MDP は**有限マルコフ決定過程** (finite Markov decision process; finite MDP) と呼ばれる。状態空間が有限である場合においては、時刻 t における状態遷移確率は遷移関数によって

  \Pr(s_{t+1} = s' \mid s_t = s, a_t = a) = T(s, a, s')

と記述することが出来る。
（状態空間が有限でない）より一般的なケースにおいては、任意の可測集合 S' \subset S に対して状態遷移確率は

  \Pr(s_{t+1} \in S' \mid s_t = s, a_t = a) = \int_{s' \in S'} T(s, a, s') \, ds'

によって記述される。

## 問題設定
MDP における基本的な問題設定は、現在の状態が与えられたときに意思決定者の取る行動を既定する**方策** (policy) を求めることである。
具体的には、方策とは MDP のある状態 s \in S に対して定められる写像であり、次のように意思決定者の行動を規定する。
* **決定論的方策** (deterministic policy) : a_t = \pi(s)
* **確率的方策** (stochastic policy) : \Pr(a_t = a \mid s_t = s) = \pi(s, a)
 
方策 \pi は、ある目的関数 (objective function) を最大化するようなものが選ばれる。
目的関数には、現在時刻から始まり十分時間が経過した後の時点における報酬の累積値が用いられる。
いま、時刻 \tau において獲得する報酬を r_{\tau} \in \mathbb{R} と表記すると、累積報酬の実現値は r_{t+1} + \cdots + r_{t+H} で求められる。ただし、H は評価区間である。
ここで r_{\tau} は確率変数であり、その実現値は MDP によって規定される状態遷移確率や方策に基づいて確率的に変動する。
したがって、実際の目的関数としては累積報酬の期待値である

  \mathbb{E}_{\pi} \bigg[ \sum_{\tau = 1}^{H} r_{t+\tau} \mid s_t = s \bigg]

が用いられる。
ただし、\mathbb{E}_{\pi}[\cdot \mid s_t = s] は方策 \pi のもとでの（条件付き）期待値を意味する。
このように有限の時間区間における累積報酬を評価する問題設定は**有限時間区間** (finite horizon) と呼ばれる。

行動が連続的に継続されるなどの場合においては、時間区間 H を適切に設定することが困難となる。
そのような場合、**無限時間区間** (infinite horizon) での問題設定が用いられる。
通常、期待値の収束性などの理由から有限時間区間における目的関数の H \to \infty における極限を考えることは不可能であり、典型的には次のように時刻が進むにつれて「割引される」報酬の累積値

  \mathbb{E}_{\pi} \bigg[ \sum_{\tau=0}^{\infty} \gamma^\tau r_{t+\tau+1} \mid s_t = s \bigg]

が用いられる。
ここで \gamma \in [0,1] は**割引率** (discount rate) と呼ばれる値であり、現在の報酬と未来の報酬との間における重要度の差異を表している。

## 価値関数
モデルのマルコフ性により、ある時刻における目的関数の値は方策 \pi を固定した下で状態 s_t \in S の関数とみなすことが出来る。
このような考えのもと、ある方策 \pi \colon S \times A \to [0, 1] に対して定義される

  V^\pi(s) = \mathbb{E}_\pi \bigg[ \sum_{\tau=0}^{\infty} \gamma^{\tau} r_{t+\tau+1} \mid s_t = s \bigg]
 
を **状態価値関数** (state-value function) と呼ぶ。
状態価値関数は、現在の状態 s からはじまり方策 \pi によって行動を決定することで得られる（割引された）累積報酬の値であると解釈できる。
この状態価値関数 V^{\pi}(s) は、次の整合性条件を満たす。

  V^\pi(s) = \sum_{a \in A} \pi(s,a) \sum_{s' \in S} T(s, a, s') \Big( R(s, a, s') + \gamma V^\pi(s') \Big)


任意の \pi' および s \in S に対し V^{\pi^*}(s) \geq V^{\pi'}(s) を満たす方策 \pi^* を**最適方策** (optimal policy) と呼ぶ。
また、最適方策のもとでの状態価値関数 V^*(s) = V^{\pi^{*}}(s) は特に**最適状態価値関数** (optimal state-value function)と呼ばれる。
最適状態価値関数は、次のベルマン方程式を満たす。

  V^*(s) = \max_{a \in A} \sum_{s' \in S} T(s,a,s') \Big( R(s, a, s') + \gamma V^*(s') \Big)


## アルゴリズム
MDP は線形計画法または動的計画法で解くことができる。ここでは後者によるアプローチを示す．

### 価値反復法
価値反復法 (value iteration)は後ろ向き帰納法 (backward induction) とも呼ばれ、ベルマン方程式を満たす価値関数を繰り返し計算により求める。 ロイド・シャープレー が1953年に発表したに関する論文には価値反復法の特殊な場合が含まれるが、このことが認知されたのは後になってからである．

ステップ iにおける価値関数の計算結果を V_i(s) と表記すると、価値反復法における更新式はつぎのように記述される:

  V_{i+1}(s) \leftarrow \max_{a \in A_s} \sum_{s' \in S} T(s, a, s') \Big( R(s, a, s') + \gamma V_i(s') \Big) \quad \forall s \in S


上式をすべての状態において値が収束するまで繰り返したときの値を V^\infty(s) とし、最適方策  \pi^* を次式で求める。


  \pi^*(s) \leftarrow \arg\max_{a \in A_s} \sum_{s' \in S} T(s, a, s') \Big( R(s, a, s') + \gamma V^\infty(s') \Big) \quad \forall s \in S


### 方策反復法
方策反復法 (policy iteration)では、方策固定の下で行われる価値関数の更新 (policy evaluation) と、価値関数固定のもとで行われる方策の更新 (policy improvement) を交互に行うことで最適方策を求める。
# 次の線形方程式を解き、価値関数を更新する
#:
  V^\pi(s) = \sum_{a \in A} \pi(s,a) \sum_{s' \in S} T(s, a, s') \Big( R(s, a, s') + \gamma V^\pi(s') \Big)

# 方策を次式で更新する
#:
  \pi(s) \leftarrow \arg\max_{a \in A_s} \sum_{s' \in S} T(s, a, s') \Big( R(s, a, s') + \gamma V^\pi(s') \Big) \quad \forall s \in S


これらの操作を \pi がすべての状態に対し変化しなくなるまで繰り返すことで、最適方策を得る。
方策反復法は離散値を取る方策の値が変化しなくなるという明確な終了条件を持つため有限時間でアルゴリズムが終了するという利点を持つ。

## 拡張と一般化
### 部分観測マルコフ決定過程

MDP では方策 \pi(s) を計算する際に現在の状態 s が既知であることを仮定している。
実際には状態観測に不確実性が伴う場合などこの仮定が成り立たない場合が多く、このような場合の一般化として**[[部分観測マルコフ決定過程]]** (Partially Observable Markov Decision Process; POMDP) が用いられる。

### 強化学習

状態遷移確率 T(s,a,s') や報酬関数 R(s,a,s') が未知の場合，環境との相互作用を通じてこれらの情報を得ながら行動を決定する必要がしばしば生じる．このような問題は強化学習の枠組みで議論される．

強化学習における代表的な学習アルゴリズムはQ学習と呼ばれるものである。
Q学習では、**行動価値関数** (action-value function) と呼ばれる関数 Q^\pi(s,a) に着目する。ここで Q^\pi(s,a) は次のように定義される:

  Q^\pi(s,a) = \mathbb{E}_\pi[\sum_{t=0}^\infty \gamma^t r_{t+1} | s_0=s, a_0=a]


いま，最適方策のもとでの行動価値関数 Q^*(s,a) = \max_\pi Q^\pi(s,a)  は V^*(s) = \max_{a} Q^*(s,a) を満たす。
すなわち、Q^* を学習することができれば（モデルのパラメータを直接求めることなく）最適方策を獲得することができる。
Q学習では、各試行における遷移前後の状態と入力、および試行で得られる即時報酬の実現値をもとに Q(s,a) の値を逐次更新する。
実際の学習プロセスでは、すべての状態を十分サンプリングするため確率的なゆらぎを含むよう学習時の行動が選択される。

強化学習では最適化に必要なパラメータの学習を状態遷移確率・報酬関数を介することなくおこなうことが出来る（価値反復法や方策反復法ではそれらの明示的な仕様（各状態間の遷移可能性，報酬関数の関数形など）を与える必要がある）。
状態数（および行動の選択肢）が膨大な場合、強化学習はしばしばニューラルネットワークなどの関数近似と組み合わせられる。

### 学習オートマトン
機械学習理論における MDP のもう一つの応用は学習オートマトン (Learning Automata) と呼ばれる。
これは環境が確率的な挙動を示す場合における強化学習の一つでもある。
学習オートマトンに関する最初の詳細な論文は 1974 年に Narendra と Thathachar によりまとめられた（そこでは有限状態オートマトンと明示的に記載されている）。
強化学習と同様，学習オートマトンのアルゴリズムも確率や報酬が未知の場合の問題を解くことができる。
Q学習の違いは，価値関数ではく学習の結果を探すために行動の確率を直接求めることである。
学習オートマトンは収束性が解析学の要領で厳密に証明されている．

### 制約付きマルコフ決定過程
制約付きマルコフ決定過程 (Constrained Markov Decision Process; CMDP) はマルコフ決定過程の拡張である。
MDP と CMDP には3つの基本的な違いがある:
* ある行動をほかのものの代わりに適用した後で（複数の）コストが発生する
* CMDP は線形計画法のみで解くことが出来る（動的計画法を用いることはできない）
* 終端時刻における方策が初期状態に依存する
CMDP の応用例は数多く存在し、最近ではロボット工学におけるモーションプランニングに用いられている。

## 参考文献

* 
* 
* 
* 
* 
* 
* 
* 
* 
* 

## 外部リンク
* Reinforcement Learning An Introduction by Richard S. Sutton and Andrew G. Barto
* Learning to Solve Markovian Decision Processes by Satinder P. Singh
* Optimal Adaptive Policies for Markov Decision Processes by Burnetas and Katehakis (1997)
* ソフトウェアパッケージ
** MDP Toolbox for MATLAB, GNU Octave, Scilab and R The Markov Decision Processes (MDP) Toolbox.
** MDP Toolbox for Matlab - An excellent tutorial and Matlab toolbox for working with MDPs.
** MDP Toolbox for Python A package for solving MDPs
** SPUDD A structured MDP solver for download by Jesse Hoey

## 関連項目
* 動的計画法
* ベルマン方程式
* 強化学習
* Q学習