Reinforcement Learning: Day 1

Reinforcement Learningについて体系的に学習しておきたい。
テキストは「Pythonde学ぶ強化学習、著:久保孝宏」
——————————————-
強化学習とは?
強化学習と、機械学習、人工知能といったキーワードの関係を理解する
強化学習以外の学習法に対する、強化学習のメリット・デメリットを理解する
機械学習の基本的な仕組みを理解する
——————————————-
Markov Decision Process(MDP)マルコフ決定過程の構成要素
s: 状態(State)
a: 行動(Action)
T:状態遷移の確率(遷移関数/Transition function)
R:即時報酬(報酬関数/Reward function)

ここで行動の主体が具現化したものであるならばロボットのようなものであるが、プログラム的には状態を受け取り、行動を出力する関数であり、この関数を戦略Policyと呼ぶ。この戦略に従って動く行動の主体をエージェントAgentと呼ぶ。

MDPにおける報酬(r)は「直前の状態と遷移先」に依存する即時報酬immediate rewardである。
即時報酬だけを得るようにしても、エピソードにおける報酬の総和を最大化することはできない。
報酬の総和は、エピソードがT時刻に終了するとして、
Gt = r(t+1) + r(t+2) + …..+ r(T) と記述できるが、これはエピソード終了時点でないと計算できない。

そこで「見積もり」を立てることになる。でも見積もりは不正確なので、その分を割り引いて考える必要がある。この割り引くための係数を割引率(Discount factor)γと呼ぶ。
割引率を含んだ報酬の総和は、
Gt = r(t+1) + γr(t+2) + γ^2(r(t+3) +…..+ γ^(T-t-1)r(T) 

割引率は0から1の間であり、将来になればなるほど、割引率の指数が増加し、割り引かれていく。
先のことはどうなるかわからないからである。即時報酬を将来の不確からしさを割り引いて計算したものは現時点での「割引現在価値」と呼ばれる。
再帰的な表現では、
Gt = r(t+1) + γG(t+1)

ここでGtは、報酬の総和を見積もった「期待報酬Expected reward」、あるいは「価値Value」と呼ぶ。
価値を算出することを「価値評価Value approximation」と呼ぶ。
この価値評価が、強化学習が学習する2つのことの一点目である「行動の評価方法」となる。
行動の評価は、行動自体や行動の結果、遷移する状態の価値評価によって行われる。
——————————————
コメント;まるで、不動産屋の講習会のようだね。強化学習=不動産屋=トランプ流か!
——————————————
とりあえず、デモ environment_demo.py を動かしてみる。

なるほど、10回トライして、報酬総和を算出している。Agentの行動の経過がわからないので、現位置表示print(state) をmain関数のwhile not doneのループ内に記述する。

このモデルの環境の座標位置と報酬について、エクセルで整理してみる。

スタート地点の座標は[2,0]で、そこから、そのままま[2,0]に留まって、-0.04の減点、
次に、[2,1]の右横に移動して、-0.04の減点と続く。最後手前、[0,2]の位置にたどり着いて、右横に移動して、
[0,3]となって1点を獲得し、総合報酬は、-1.840と借金状態。

最後にたどり着いた位置が表示されていないので、修正する。

[0,3]で終了して1点確保か、[1,3]で終了して1点を減点されるか!