将棋の解説者が盤面を見て「先手やや有利ですね」と言うとき、頭の中で動いているのが状態価値関数のイメージです。この記事では「状態そのものの良さを測る」という役割と、「直近の報酬+次の状態の価値」という再帰的な定義のからくりを解説します。
📖 ひと言でいうと
状態価値関数とは、「いまの状態sにいることは、将来の報酬の見込みでいうとどれくらい良いのか」を数値化する関数V(s)のことです。すごろくに例えると、「ゴールに近く、この先に良いマスが続いている位置」は高得点、「振り出しに戻るマスの手前」は低得点、というように盤上の位置(状態)自体に点数を付けるイメージです。どのマスにいるかの良し悪しは測りますが、「次にサイコロで何を出すべきか」という行動への採点はしない——ここが行動価値関数との分かれ目です。
🖼 1枚でわかる状態価値関数
📘 公式テキストの説明
強化学習において状態の「価値」を表す関数で、直近の報酬に次の状態の価値関数を足したもの。方策および遷移確率で未来のとりうる値は変わってくるので、その期待値をとる。最適な方策を直接求める代わりに、状態の価値を設定しその価値が最大となるように学習を進めるアプローチに用いられる。行動価値関数と並んで、強化学習における価値関数アプローチの基礎となる関数である。
この短い説明には3つの重要な要素が詰まっています。①「直近の報酬+次の状態の価値」という再帰的な定義、②未来は確定していないので期待値で定義すること、③方策を直接求める代わりに価値を最大化するアプローチ(価値関数アプローチ)の基礎であること。特に①の再帰構造は、次で図解しながらしっかり理解しましょう。
🔍 しっかり理解する
「直近の報酬+次の状態の価値」という入れ子構造
状態の価値を「これから先にもらえる報酬を全部足したもの」と定義すると、遠い未来まで延々と計算する必要がありそうです。ここで効いてくるのが再帰的な発想です。「状態sの価値=すぐもらえる報酬+その次の状態s'の価値」と定義すれば、未来の分はすべて「次の状態の価値」に折りたたまれます。プレーンテキストで書くと次の形です。
V(s) = E[ r + γ × V(s') ]
γは割引率(将来の報酬を少し割り引く係数)、E[ ]は期待値を表します。この「自分自身を使って自分を定義する」関係はベルマン方程式と呼ばれ、価値を少しずつ矛盾なく更新していく学習の理論的な足場になります。
なぜ「期待値」が必要なのか
未来がどう転ぶかは2つの理由で確定していません。第一に、エージェント自身の方策が確率的なら、次にどの行動を選ぶかにばらつきがあります。第二に、同じ行動をしても環境側の遷移確率によって行き先の状態が変わり得ます。だからV(s)は「起こり得る未来を確率で重み付けした平均=期待値」として定義されます。「方策および遷移確率で未来のとりうる値は変わってくるので、その期待値をとる」という公式テキストの一文はこのことを言っています。
状態の価値がわかると何がうれしいのか
最適な方策(どの状況で何をすべきかのルール一式)を直接探すのは困難です。そこで「どの状態が良い状態か」という地図(V)を先に作り、価値の高い状態へ向かうように行動を選ぶ、という回り道が価値関数アプローチです。ただし、V(s)は状態しか採点しないため、行動を選ぶには「各行動がどの状態につながるか」という環境の知識(遷移確率)が別に必要です。この不便を解消するために「状態+行動」を直接採点するのが行動価値関数で、両者は価値関数アプローチを支える2本柱の関係にあります。
💡 具体例で考える
囲碁AIのAlphaGoには、盤面を入力すると「この局面からの勝ちやすさ」を出力するバリューネットワークが組み込まれていました。これはまさに状態価値関数をディープラーニングで近似したものです。「この盤面は黒有利」という評価は局面(状態)への採点であって、「次にどこへ打つべきか」を直接教えるものではありません。次の一手を決めるには、候補手ごとに打った後の局面を作り、その先の局面評価と組み合わせる必要がありました。状態価値関数の性質——状態は採点できるが行動選択には一段の手間が要る——がよく表れた実例です。
もう1つ、すごろくで数値イメージを作りましょう。「あと2マスでゴール(報酬100)」のマスAと、「隣に振り出しに戻るマスがある」マスBを比べると、この先の報酬の見込みはAの方が高いのでV(A) > V(B)です。同じ「サイコロを振る」行動しかできなくても、状態そのものに価値の差が付く——これが状態価値関数の視点です。
⚠️ よくある誤解・紛らわしい用語
- 行動価値関数との違い(最重要) — 状態価値関数V(s)の入力は状態のみで「その状態にいることの良さ」を測ります。行動価値関数Q(s,a)は状態と行動のペアを入力に「その状態でその行動を取ることの良さ」を測ります。VはQと違い、値の比較だけでは行動を選べません。
- 「価値関数」と言われたらどっち? — 一般に「価値関数」と言った場合は行動価値関数を指す、と公式テキストにあります。状態価値関数が既定だと思い込まないよう注意しましょう。
- 価値=報酬そのものではない — V(s)は「その状態で即もらえる報酬」ではなく、直近の報酬に将来の分(次状態の価値)まで足し込んだ見込みの総和です。
- 期待値の意味 — 「期待値をとる」は「楽観的に見積もる」ことではなく、方策と遷移確率による未来のばらつきを確率で平均することです。
📝 試験でのポイント
- 「状態の価値を表す関数」「直近の報酬に次の状態の価値関数を足したもの」という定義フレーズから状態価値関数を選ばせる問題が基本形です。
- 行動価値関数と並べて「入力は状態のみか、状態+行動か」で見分けさせる対比問題が想定されます。
- 「なぜ期待値をとるのか(方策と遷移確率で未来が変わるため)」という理由の正誤判定に備えましょう。
- 「最適な方策を直接求める代わりに価値を最大化する」という価値関数アプローチの位置づけも問われ得ます。
📚 まとめ
状態価値関数V(s)は、状態にいることの良さを「直近の報酬+次の状態の価値」という再帰構造で表し、方策と遷移確率に関する期待値として定義される関数です。最適な方策を直接求める代わりに状態の価値を最大化する、価値関数アプローチの基礎の一つです。行動まで採点するQ(s,a)との違い——「状態だけを測るのがV、状態+行動を測るのがQ」——を軸に整理しておけば、対比問題で迷いません。
