【強化学習】モデルベース(価値反復法,方策反復法)
強化学習の目的は「長期的な報酬を最大化する方策を求めること」であり,長期的な報酬は価値関数で表現されます.
ある状態で方策に従って行動したときの価値関数を状態価値関数と呼び,次の式で定義します.
価値反復法
価値反復法 (Vlaue Iteration) とは,方策は「価値が最大となる行動を選択する」という仮定のもとで,価値を繰り返し更新しながら価値を推定する方法です.価値をベースに考えるので「Value ベース」の手法と呼ばれます.
方策は「価値が最大となる行動を選択する」ことなので,状態価値関数を以下の式に書き換えます.
この価値関数の形を用いて更新を行います.
具体的なアルゴリズムは以下の通りです.
- Initialize (例えば全ての状態に対して)
- Repeat
← 0
For each
←
←
←
until < (は小さい正数)
方策反復法
方策反復法 (Policy Iteration) とは,価値反復法とは異なり,行動は方策に基づき選択されます.方策を更新していくことで方策を求めます.具体的には,方策を更新すると価値も更新されるため,更新された方策の下で価値を推定する「方策評価」と,推定した価値により方策を更新する「方策改善」を繰り返すことで方策を求めます.方策をベースに考えるので「policy ベース」と呼ばれます.
具体的なアルゴリズムは以下の通りです.
- Initialize (例えば全ての状態に対して,は一様分布)
Policy Evaluation
Repeat
← 0
For each
←
←
←
until ← (は小さい正数)Policy Improvement
policy_stable ← True
For each
a ←
← argmax
if
policy_stable ← False
if policy_stable, stop and return , else go to 2