r_nsdのブログ

r_nsdのブログ

勉強したこと・調べたこと・思ったことを残しておくためのブログ

MENU

【強化学習】モデルベースとモデルフリー

ベルマン方程式の記事で価値関数を再帰的な形で定義しました.

状態価値関数
V^{\pi}(s) = \sum_{a} \pi(a|s) \sum_{s'} P(s'|s,a) \bigl( R(s,a,s')+\gamma V^{\pi}(s') \bigr)

行動価値関数
Q^{\pi}(s,a) = \sum_{s'} P(s'|s,a) \bigl( R(s,a,s')+\gamma \sum_{a'} \pi(a'|s') Q^{\pi}(s',a') \bigr)


おさらいすると強化学習は,この価値関数が最大となるような方策\pi(a|s)を求めることを目的としていました.

良い方策を求めるためには,価値関数を推定しなければなりません.価値関数の式を見ればわかるように遷移関数と報酬関数がわかっていれば価値関数を算出することができます.

環境(遷移関数や報酬関数)のことをモデルと呼び,方策を学習する際に,環境が既知の場合は「モデルベース」, 環境が未知の場合は「モデルフリー」と呼びます.

モデルベース

モデルベースによる方策の最適化はプランニングとも呼ばれ,動的計画法に基づいて価値を推定します. 推定する方法は「価値反復法」と「方策勾配法」の2種類あります.

価値反復法とは,価値関数が再帰的な形で定義できることを利用して,価値関数の値が収束するまで値を更新する(価値を反復して計算する)という手法です.

価値反復法では,エージェントは行動価値を最大化するような方策を選択すると仮定します.価値をベースに考えるので「value ベース」と呼ばれます.

一方,方策反復法では,価値関数が最大となるように方策を更新して求めます.方策を更新すると価値関数の値も変わるので,方策の更新(方策改善)と価値関数の算出(方策評価)を交互に行って方策を求めます.方策をベースに考えるので「policy ベース」と呼ばれます.

モデルフリー

モデルベースとは異なり,環境(遷移関数と報酬関数)が未知の場合は,エージェントと環境の相互作用により得られたデータを用いながら価値を推定していきます.モデルを陽に用いないで価値を推定し方策を学習する方法をモデルフリーと呼びます.

モデルフリーの場合は,数ステップ毎に価値関数の誤差(TD誤差)を小さくするように価値を学習するTD学習に基づく手法として,Q学習やSARSA などがあります.

ステップ毎ではなくエピソード完了時に価値を修正する手法としてはモンテカルロ法やProfit Sharing などがあります.