価値関数とは
価値関数(Value Function)とは、ある状態や状態-行動ペアの「良さ」を数値で表す関数です。具体的には、その状態(または状態-行動ペア)から始めて方策に従って行動した場合に、将来にわたって得られる累積報酬の期待値を返します。価値関数は強化学習の中核的概念であり、最適な行動決定の基盤となります。
| ひとことで言うと | ある状態や行動が、将来どれだけ報酬を生みそうかを表す数値。 |
|---|---|
| なぜ重要か | 目先の報酬でなく、将来まで見込んだ「良さ」を比べられるようになる。 |
| 注意点 | 正確な価値は分からないので、経験から推定していく。 |
状態価値関数と行動価値関数
価値関数には2種類あります。状態価値関数 V(s) はある状態にいることの価値を表し、行動価値関数 Q(s,a)(Q値)はある状態で特定の行動を取ることの価値を表します。Q値が分かれば、各状態で最もQ値の高い行動を選べばよいため、行動選択に直結する有用な情報となります。
1ある状態にいる現在の状況
▶
2将来の報酬を予想この先もらえる合計
▶
3割引して合計遠い未来は小さく
▶
4価値として数値化状態の良さが分かる
▶
5良い方へ進む価値の高い状態を選ぶ
価値関数の推定
価値関数の真の値は通常未知であり、経験データから推定する必要があります。モンテカルロ法はエピソード終了後にリターンの平均で推定し、TD学習は1ステップ先の推定値を使ってブートストラップ的に更新します。深層強化学習ではニューラルネットワークで価値関数を近似します。
価値ベースと方策ベース
価値関数を学習して行動を決定するアプローチを価値ベース手法(Q学習、DQNなど)、方策を直接最適化するアプローチを方策ベース手法(REINFORCE、PPOなど)と呼びます。両者を組み合わせたActor-Criticも広く使われています。