状態価値関数とは?強化学習で未来の報酬を見積もる仕組み

AIの初心者
状態価値関数は、今いる状態が良いか悪いかを表すものですか?

AI専門家
はい。ただし目先の報酬だけでなく、その状態から将来得られる報酬の合計を、方策に沿って見積もった値です。

AIの初心者
値が大きい状態ほど、長期的に多くの報酬を期待できるのですね?

AI専門家
その通りです。価値を正しく見積もれば、将来の報酬につながる行動を選びやすくなります。
状態価値関数とは。
強化学習において、ある状態から将来どれだけの報酬を得られそうかを表す関数です。本記事では定義、数式、ベルマン方程式、行動価値関数との違い、代表的な推定方法まで解説します。
状態価値関数とは

状態価値関数は、ある状態から方策に従って行動したときに得られる、将来の割引累積報酬の期待値です。強化学習のエージェントは環境を観測し、状態に応じた行動を選び、報酬を受け取ります。状態価値関数は、その時点だけでなく、その後の結果もまとめて状態を評価します。
迷路なら「現在位置」が状態、「上下左右への移動」が行動、「ゴール到達」が正の報酬です。ゴールに近く安全な位置は一般に高い価値を持ちます。ただし、価値は位置だけで決まるわけではありません。どのように行動するかを定めた方策によって変わります。遠回りする方策と最短経路を選ぶ方策では、同じ位置の価値も異なります。
数式で理解する状態価値関数
\(G_t=R_{t+1}+\gamma R_{t+2}+\gamma^2R_{t+3}+\cdots\)
時刻 \(t\) 以降に受け取る割引累積報酬を収益 \(G_t\) と呼びます。\(R_{t+1}\) は次に得る報酬、\(\gamma\) は0以上1以下の割引率です。\(\gamma\) が小さいほど直近の報酬を重視し、1に近いほど遠い将来の報酬も重く評価します。
\(V^\pi(s)=\mathbb{E}_\pi[G_t\mid S_t=s]\)状態価値関数 \(V^\pi(s)\) は、状態 \(s\) から方策 \(\pi\) に従ったときの収益の期待値です。環境の結果や行動に偶然性があるため、単一の結果ではなく平均的にどれだけ得られるかを表します。
例えば今後3回の報酬が10、4、2で、割引率が0.5なら、収益は \(10+0.5\times4+0.5^2\times2=12.5\) です。将来の報酬ほど小さな重みになることが分かります。なお、割引率は単なる「将来は不確実だから」という意味だけでなく、無限に続く課題で合計を有限にしやすくする役割もあります。
ベルマン方程式で現在と未来を結び付ける
\(V^\pi(s)=\sum_a\pi(a\mid s)\sum_{s’,r}p(s’,r\mid s,a)\left[r+\gamma V^\pi(s’)\right]\)
ベルマン方程式は、現在の状態価値を直後の報酬と次状態の価値に分解します。\(\pi(a\mid s)\) は状態 \(s\) で行動 \(a\) を選ぶ確率、\(p(s’,r\mid s,a)\) は次状態 \(s’\) と報酬 \(r\) が生じる確率です。
この再帰的な関係が重要なのは、遠い未来を一度に計算しなくても、隣接する状態の推定値を使って価値を更新できるからです。モデルが分かる小規模な迷路では、各状態の値を繰り返し更新し、変化が小さくなるまで計算します。
行動価値関数との違い
\(Q^\pi(s,a)=\mathbb{E}_\pi[G_t\mid S_t=s,A_t=a]\)
状態価値関数 \(V^\pi(s)\) が「その状態全体」を評価するのに対し、行動価値関数 \(Q^\pi(s,a)\) は「その状態で特定の行動を選んだ場合」を評価します。
| 比較項目 | 状態価値関数 V | 行動価値関数 Q |
|---|---|---|
| 入力 | 状態 \(s\) | 状態 \(s\) と行動 \(a\) |
| 表すもの | 方策に従った状態の価値 | 最初にその行動を選んだ価値 |
| 行動選択 | 遷移モデルなどが必要な場合がある | 行動ごとの値を直接比較しやすい |
方策のもとでは、Vは各行動のQを行動選択確率で重み付けした平均です。一方、最適状態価値関数は \(V^*(s)=\max_a Q^*(s,a)\) と表せます。したがって「状態価値関数は常に最良行動の価値」という説明は正確ではなく、それが成り立つのは最適価値を扱う場合です。
状態価値関数を推定する代表的な方法

| 方法 | 特徴 | 向いている場面 |
|---|---|---|
| 動的計画法 | 遷移確率と報酬のモデルを使い、ベルマン方程式を反復計算する | 環境モデルが既知で状態数が扱える場合 |
| モンテカルロ法 | エピソード終了後、実際の収益を平均する | モデルが不明でも、完結する試行を繰り返せる場合 |
| TD学習 | 実報酬と次状態の推定値を使い、途中で逐次更新する | オンライン学習や長い課題、継続課題 |
TD学習では、角括弧内をTD誤差と呼び、予測と観測のずれを学習率 \(\alpha\) で少しずつ反映します。大規模な状態空間では表形式で全状態を保存できないため、ニューラルネットワークなどの関数近似を使います。
強化学習での使いどころ
第一の用途は方策評価です。現在の方策が各状態からどれほどの成果を期待できるかを測ります。次に、その評価を使ってより価値の高い結果につながる行動へ方策を改善します。評価と改善を繰り返す考え方が方策反復です。
また、Actor-Criticでは、Actorが行動方策を更新し、Criticが状態価値などを推定して学習の指標を与えます。ロボット制御、ゲーム、在庫・資源配分など、結果が時間をかけて現れる問題で状態価値関数が役立ちます。
初心者が注意したいポイント
価値は状態に固定された絶対的な点数ではありません。報酬の定義、割引率、方策、終了条件が変われば値も変わります。値が高いから現実世界で倫理的・安全に望ましいとは限らず、報酬設計が不適切なら意図しない行動を学ぶことがあります。
さらに、推定値には誤差があります。推定値だけを信じて既知の行動に偏ると、より良い行動を発見できません。学習中は探索と活用のバランスが必要です。関数近似を使う場合は、データの偏りや学習の不安定さにも注意します。
まとめ
状態価値関数は、ある状態から方策に従ったときの将来の割引累積報酬を期待値で表します。割引率は直近と将来の報酬の重みを調整し、ベルマン方程式は価値を「直後の報酬+次状態の価値」に分解します。Vは状態、Qは状態と行動の組を評価する点が主な違いです。
学習では動的計画法、モンテカルロ法、TD学習などを問題に応じて使い分けます。まずは迷路のような小さな例で、方策を変えると同じ状態の価値がどう変化するかを確かめると理解しやすくなります。
更新履歴
| 日付 | 内容 |
|---|---|
| 2025年2月1日 | 初回公開 |
| 2026年7月11日 | 方策に依存する定義を明確化し、VとQの式・推定手法を追記 |
