強化学習基礎(メモ書き)
強化学習基礎
MDP→TD→Q-Learning→DQN手前まで、強化学習の基本的なことをかいつまんだまとめ
(自分用の自己満メモ)
素晴らしい講義
David Silver氏による強化学習講義
これにほぼ対応した素晴らしい演習問題+α
GitHub - dennybritz/reinforcement-learning: Implementation of Reinforcement Learning Algorithms. Python, OpenAI Gym, Tensorflow. Exercises and Solutions to accompany Sutton's Book and David Silver's course.
Malkov Decision Process (MDP)
完全に観測可能(fully observable)な環境を表す過程
MP (Malkov Process, Malkov Chain)
Malkov Property
これの意味するところは、未来が現在のみに依存し、過去とは独立しているということ.
MPはの組で定義され、は有限の状態集合、は状態遷移確率行列で、
である.
MRP (Malkov Reward Process)
MPにスカラー値が加わったもので、の四つ組で定義される.
はreward function(報酬関数)で、
はdiscount factor(割引率)で、 である.
Return
ここでreturnという量を定義する.
return とは、時刻からの割り引かれた報酬の合計値.
つまり、
なぜ割引?
discount factorの直感的なイメージは、将来の報酬の、現在の値とみることができる.
- returnの発散を回避する
- 将来への不確実性
- 即時的な報酬の方が重要な場合など
- 動物は基本的に即時的な報酬の方を重要視する
- など
Value Function
returnの期待値としてvalue function(価値関数)を定義する.
Bellman Equation
このvalue functionは二つの量に分解することができる.
(returnの定義からすぐ分かる)
つまり、即時的な報酬と次の状態の割り引かれた価値に分解できた.
MDP (Malkov Decision Process)
MRPに決定が加わったもので、の五つ組で定義される.
は、有限な行動の集合
状態遷移確率と報酬も行動に依存するようになるので、
これが環境に対応する.
Policy
行動が加わったのでpolicyというものを定義する
これは、ある状態での取り得る行動の確率分布を表し、エージェントの振る舞いを決定する.
state-value & action-value function
MDPにおけるstate-value function(状態価値関数)とは
これはpolicy に従った場合の、状態からの将来のreturnの期待値で、その状態の価値を表す.
MDPにおけるaction-value function(行動価値関数)とは
これはpolicy に従い、状態にいる時に行動を取る時の将来のreturnの期待値で、その行動の価値を表す.
Bellman Expectation Equation
さて、MRPの場合と同様にこれらは、即時的な報酬と、割引された未来の報酬に分割することができる
を定義したので、状態遷移確率と併せて期待値の部分を展開してみる.
Optimal value function
最適なstate-value functionとaction-value functionを次のように定義する.
Optimal Policy
policyに関して次の半順序を定義する
この時、最適なpolicyとは
であり、このようなpolicyが存在し、はとを達成するという定理がある.
また、最適なpolicyは以下のように得ることができ、決定的なpolicyである.
Bellman Optimality Equation
最適なpolicyを仮定した時のBellman Equation. Bellman Expectation Equationと区別しておくことがとても重要
Policy/Value Iteration(簡単に)
強化学習において、Dynamic Programming (Full backup)によるアプローチには、大きく次の2種類のアプローチが存在する.
Policy Iteration
Policy EvaluationとPolicy Improvementを繰り返してpolicyを最適化する.
Policy Evaluation: 現在のpolicyを評価することのみを行う.
これはBellman Expectation Equationに基づいて行われる.
Policy Improvement: 評価に基づいてpolicyの更新を行う.
Value Iteration
明示的にpolicyは持たない.
value functionをBellman Optimality Equationに基づいて更新することで、最適なvalue functionに近づけていく.
Model-free Prediction (Policy EvaluationのSample backup版)
Model-freeというのは、環境のダイナミクスを利用しない(知らなくて良い)という意味.
Dynamic ProgrammingでのPlanningと比較すると分かりやすいが、例えばDPは状態遷移確率行列が必要になる.
Predictionでは、value functionを予測することを目的とする. (最適化することは後述のControlの領分)
基本的にMonte-Carlo(MC)とTemporal-Difference(TD)というアプローチが存在する.
どちらの手法もイテレーティブに価値関数を更新して評価するのだが、以下の形で表現できる.
真のreturnの方向に修正していく. が、真returnは未知なのでこれを何かしらに置き換える.
MCの場合はreturnとして実際に観測したを利用するのに対して、TD(0)の場合はreturnの予測値を使う.
したがって、MCではを得るために"episodic"でないといけないし、offlineであり、完全なepisodeを必要とする.
TD(0)の場合は、bootstrappingするのでonlineで、しかも不完全なepisodeから学習することが可能である.
MCには深く立ち入らないでTDに焦点を当てていく.
改めてTD(0)の更新式は、
で、をTD Target、をTD Errorと呼ぶ
TD(に拡張できるのだが、とりあえずここではTD(0)にとどめる.
Model-free Control (Policy Improvementの Sample backup版)
value functionを最適化することを考える.
今まで、、つまりstate-valueについて考えていたが、ここでgreedy policy(最大値を与える行動を常に取るpolicy)を想定してみると、
である.
状態遷移確率、つまり環境のモデルが必要になってきてしまう.
一方で、action-valueの場合は、
これはmodel-free.
したがって、action-valueに基づいて更新を行うことにする.
-greedy exploration
ここで-greedyという考え方を定義する.
確率でgreedyな行動を、確率でランダムな行動を取るというもの.
は行動数
これによってPolicy Improvementを行えばとなるという定理がある.
GLIE (Greedy in the Limit with Infinite Exploration)
全てのstate-actionペアが無限回探索される時、policyがgreedy policyに収束するような探索方法.
例えば、-greedyでが0に収束するようなものならば、GLIEである.
On-Policy TD Control (Policy IterationのSample backup版)
Sarsa(0)
Policy Evaluationは以下の更新式に基づく、
Policy Improvementは-greedy policy に基づいて更新する
returnの予測値は現在の状態において行動を取った時の次の状態において、policy に従って行動を選んだ場合の予測値になっている.
ここで、(サンプルした)Bellman Expectation Equationに基づいていることを再確認したい.
GLIEかつステップサイズがRobbins-Monro(略)になっていれば最適なaction-value functionに収束する定理が存在する.
Off-Policy Control (Value IterationのSample backup版)
Off-Policyでは、target policy を評価するのだが、行動自体はbehavior policy に従って行う.
なぜそんなことをするのか??
- ひとつのpolicyに従いながら、複数のpolicyについて学習できる
- 探索的なpolicyに従いながら、最適なpolicyについて学習できる
- 例えば、他の人がどう動いているのだろうということを学ぶイメージ
Importance Sampling
さて、確率分布に関する期待値を確率分布で取る場合、Importance Samplingという操作を行う.
例えば、TD(0)のPolicy Evaluationはインクリメンタルな更新なので、以下のようになる
だがしかし、こんなことは必要ない、そうQ-Learningならね.
Q-Learning
returnの予測値は、状態においてに従って行動を取った時の次の状態において、に従って行動を取る時の予測値となっている.
とを具体的に定義する.
- はgreedy policy、
- は-greedy policy
従って、
ここで、(サンプルした)Bellman Optimality Equationに基づいていることを再確認しておきたい.
Q-Learningは最適なaction-value functionに収束するという定理がある.
関数近似
今までの話をスケールアップさせる上では、value functionを近似することが必要不可欠となる.
ちなみに、今までの収束の話は関数近似した場合、必ずしも成立しなくなる.
確率的勾配降下法(SGD)
今、でパラメータ化されたvalue functionを、真のvalue functionをとした時、以下の最小化問題を解きたい.
に関する勾配は、
よって、SDGの各ステップは以下の更新を行う
期待値でないのは"確率的"勾配降下であるから(勾配をサンプリグする).
インクリメンタルな平均値の更新をイメージすれば、これが期待値になっていくことが直感的にわかる.
ここにおいても、を何かしらに置き換えるわけだが、TD(0)の場合(Policy Evaluation)は、TD Targetで置き換えて、
これは、action-valueについても同様で、
ではQ-Learningにおいては...? → DQN