価値関数

Value Function

価値関数とは

価値関数(Value Function)とは、ある状態や状態-行動ペアの「良さ」を数値で表す関数です。具体的には、その状態(または状態-行動ペア)から始めて方策に従って行動した場合に、将来にわたって得られる累積報酬の期待値を返します。価値関数は強化学習の中核的概念であり、最適な行動決定の基盤となります。

表:価値関数の要点まとめ
ひとことで言うとある状態や行動が、将来どれだけ報酬を生みそうかを表す数値。
なぜ重要か目先の報酬でなく、将来まで見込んだ「良さ」を比べられるようになる。
注意点正確な価値は分からないので、経験から推定していく。

状態価値関数と行動価値関数

価値関数には2種類あります。状態価値関数 V(s) はある状態にいることの価値を表し、行動価値関数 Q(s,a)(Q値)はある状態で特定の行動を取ることの価値を表します。Q値が分かれば、各状態で最もQ値の高い行動を選べばよいため、行動選択に直結する有用な情報となります。

図:価値関数の考え方
1ある状態にいる現在の状況
▶
2将来の報酬を予想この先もらえる合計
▶
3割引して合計遠い未来は小さく
▶
4価値として数値化状態の良さが分かる
▶
5良い方へ進む価値の高い状態を選ぶ

価値関数の推定

価値関数の真の値は通常未知であり、経験データから推定する必要があります。モンテカルロ法はエピソード終了後にリターンの平均で推定し、TD学習は1ステップ先の推定値を使ってブートストラップ的に更新します。深層強化学習ではニューラルネットワークで価値関数を近似します。

価値ベースと方策ベース

価値関数を学習して行動を決定するアプローチを価値ベース手法(Q学習、DQNなど)、方策を直接最適化するアプローチを方策ベース手法(REINFORCE、PPOなど)と呼びます。両者を組み合わせたActor-Criticも広く使われています。