【強化学習入門】原理・アルゴリズムまとめ

強化学習入門の基本原理・アルゴリズムについて入門者向けにまとめました。

強化学習とは

強化学習(Reinforcement learning)とは、エージェントがある環境内で現在の状態を観測し、取るべき行動を決定する学習手法の1つです。
つまり、エージェントが試行錯誤を繰り返していき徐々に環境に適応した行動を取るような学習を行います。

「教師あり学習」「強化学習」の違い
教師あり学習 入力に対して正しい出力を与えて学習
強化学習 試行錯誤を繰り返し「評価値(報酬)が最大となる行動」を学習

「状態」「行動」「報酬」とは

強化学習の基本用語である「状態」「行動」「報酬」の意味は次の通りです。

基本用語 説明 例(株取引の場合)
状態 環境の状態 現在の株価
行動 環境に対してエージェントが起こす行動 どのように売買するか
報酬 エージェントが行動を起こしたことで得られた報酬 儲け

強化学習の「処理手順」「前提条件」

強化学習の基本的な流れは次の通りです。

処理内容
1 時刻tの状態s_tをエージェントが観測し、それに応じて行動a_tを起こす
2 エージェントが起こした行動により、環境は新しい状態s_{t+1}に遷移遷移する。そして、遷移に応じた報酬r_tをエージェントに与える。
3 時刻tを1ステップ進め(t+1)、処理1に戻って繰り返す。

ただし、一般的な強化学習において「エ-ジェント」「環境」には次の前提条件が与えられます。

前提条件
1 エ-ジェントはあらかじめ環境に関する情報を持たない。
2 「環境の状態遷移」「報酬の与えられ方」は確率的に行われる。(確率モデルはマルコフ決定過程が用いられるのが一般的)

マルコフ決定過程(MDP)

マルコフ決定過程(Markov decision process: MDP)とは、次に起こる事象の確率が、これまでの過程と関係なく、現在の状態によってのみ決定される確率過程のことです。
強化学習では、マルコフ決定過程モデルを集合の数式を使って次のように表現します。
時刻tにおいて環境状態がsのとき、エージェントは行動aを選択して実行します。
すると、次の時刻t+1において環境は確率的に状態s'へ遷移します。
強化学習では、利益(=累積報酬)を最大化する行動選択の規則\pi(=政策)を学習します。

(1) \begin{eqnarray*} s \in S = \{ s_1 ,s_2 , \cdots ,s_n \} \\ a \in A = \{ a_1 , a_2 , \cdots , a_n \} \\ P(s' | s,a) \\ R(s, a, s') \\ \pi(s, a) \end{eqnarray*}

記号 説明 先程の例題
s 時刻tにおける環境の状態 今日の天気
a 時刻tにおけるエージェントの行動 明日の天気
S 環境がとる有限な状態集合 晴れ、曇り、雨
A エージェントがとる有限な行動集合 晴れ、曇り、雨
P(s' | s,a) 【遷移関数】次の環境状態s'へ遷移する確率
R(s, a, s') 【評価関数】次の環境状態s'からエージェントへ与えられる報酬rの期待値(報酬は確率的に与えられ、その条件付き期待値)
\pi(s, a) 政策\piのもとである環境状態sにおいて行動aを選択する確率
マルコフ過程の詳細についてはこちら
1 マルコフ決定過程(MDP)の原理・例題・計算方法
関連ページ・参考文献
関連記事 【機械学習入門】アルゴリズム&プログラミング
参考文献 強化学習強化学習の基礎強化学習の基礎強化学習について学んでみた。情報意味論(12)強化学習Emergent ComputationQ学習による最短経路学習Pythonではじめる強化学習強化学習入門 ~これから強化学習を学びたい人のための基礎知識~
関連記事