強化学習で「価値関数」といえば、ふつうこの行動価値関数を指します。Q値という呼び名でQ学習やDQNの土台にもなっている、価値ベース強化学習の主役です。この記事では「行動を採点する」という役割に焦点を当てて解説します。

📖 ひと言でいうと

行動価値関数とは、「状態sで行動aを取ったら、その先どれくらいの累積報酬が見込めるか」を数値化する関数Q(s,a)のことで、この値をQ値と呼びます。カーナビに例えると、いま立っている分かれ道(状態)で「右の道を選んだら目的地までの快適さは何点か」「左なら何点か」と、選択肢ごとの点数を出してくれる採点表です。点数さえ正確なら、毎回いちばん高い選択肢を選ぶだけで最適なドライブができます。

🖼 1枚でわかる行動価値関数

行動価値関数Q(s,a) — 行動を採点する関数
  • 入力と出力 — 状態sと行動aのペアを入れると、将来の累積報酬の見込み(Q値)が出る
  • 役割 — 状態sでどの行動が最適かを導く。Q値比較だけで行動を選べる
  • 呼び名 — 一般に「価値関数」といえば行動価値関数を指し、Q値とも呼ぶ
  • 最適化手法 — Q学習、SARSAなどでQ値を学習する
  • 状態価値関数との違い — あちらは状態のみ、こちらは状態+行動を評価
つくもち屋「G検定対策」SUMMARY

📘 公式テキストの説明

強化学習の目的は、現在の状態から将来の累積報酬が最大となるような行動を選択していくことだが、実際に最適な方策を見つけ出すのは難しいため、最適な方策を直接求める代わりに状態や行動の「価値」を設定し、その価値が最大となるように学習をするアプローチの検討がされた。行動価値関数は、状態sでの行動aを評価する関数であり、状態sに対して、どの行動が最適なものかを導く手法である。一般に「価値関数」と言った場合この行動価値関数を指す。価値関数のことをQ値(Q-value)とも呼び、これを最適化することで最適な行動ができるようになるといえる。Q値を最適化する手法にはQ学習(Q-learning)、SARSAなどがある。

前半は「なぜ価値関数が必要か」の背景です。最適な方策(行動ルール)を一発で見つけるのは難しいので、代わりに「価値」というものさしを用意し、価値が最大になるよう学習するという発想の転換がありました。後半が行動価値関数の定義で、「状態sでの行動aを評価する」「一般に価値関数といえばこれ」「Q値と呼ぶ」「Q学習・SARSAで最適化する」という4点はすべて試験の頻出フレーズです。

🔍 しっかり理解する

「状態と行動のペア」を採点する

行動価値関数Q(s,a)は、状態sと行動aのペアを入力に取り、「その状態でその行動を取り、以後も方策に従って行動し続けたときに得られる割引付き累積報酬の期待値」を返します。ポイントは、目先の報酬ではなく将来の合計まで見込んだ点数であることです。プレーンテキストで書くと、Q値は次のような再帰的な関係(ベルマン方程式と呼ばれる形)を満たします。

Q(s,a) = E[ r + γ × Q(s',a') ]

いまの行動の報酬rに、割引率γをかけた次の状態以降の価値を足したものの期待値がQ値になる、という入れ子構造です。

Q値さえあれば行動が決まる — 行動価値関数の最大の強み

🅰 行動価値関数 Q(s,a)
  • 入力は「状態+行動」のペア
  • 状態sでの各行動を採点する
  • Q値の比較だけで行動を選べる(環境の知識が不要)
  • 一般に「価値関数」といえばこちらを指す
🅱 状態価値関数 V(s)
  • 入力は「状態」のみ
  • その状態にいることの良さを採点する
  • 行動選択には各行動の行き先の予測(遷移確率)が別途必要
  • 行動には直接点を付けない

行動価値関数のいちばんの実用的な強みは、Q値を並べて比較するだけで行動を決められることです。状態sでQ(s,a)が最大になる行動aを選べばよく、「この行動をしたら次にどんな状態になるか」という環境の知識(遷移確率)は不要です。これに対して状態の良さしか教えてくれない状態価値関数では、行動選択のために環境の予測が別途必要になります。Q学習・SARSA・DQNといった価値ベースの手法がそろって行動価値関数を学習対象にするのは、この「そのまま行動選択に使える」性質のためです。

Q値を最適化する2つの代表手法

Q値の学習法の代表がQ学習とSARSAです。どちらも行動のたびに「実際の報酬から見えた価値」と「現在のQ値」のずれを縮めるように更新しますが、Q学習は次状態での最大Q値を使い(方策オフ型)、SARSAは実際に選んだ次の行動のQ値を使う(方策オン型)という違いがあります。ここでは「Q値の最適化手法=Q学習、SARSA」というつながりを押さえておきましょう。

💡 具体例で考える

ロボット掃除機が部屋の隅(状態s)にいる場面を考えます。取れる行動は「前進」「右回転」「左回転」の3つで、学習済みのQ値がQ(s,前進)=1.2、Q(s,右回転)=3.8、Q(s,左回転)=0.5だったとします。前進すると壁にぶつかりやすく、右回転すればゴミの多いエリアに向かえる、といった経験がこの点数差に凝縮されています。掃除機は3つの数値を比べて右回転を選ぶだけです。「隅にいることが良いか悪いか」という漠然とした評価ではなく、「隅で右回転すること」の価値がピンポイントでわかる——これが行動価値関数の働きです。

DQNがゲーム画面から操作を学ぶときも構図は同じで、ニューラルネットワークが画面(状態)を入力に「ボタンごとのQ値」を出力し、最大のボタンを押します。巨大な採点表を関数近似で持っているわけです。

⚠️ よくある誤解・紛らわしい用語

💡 ポイント
  • 状態価値関数との違い(最重要) — 状態価値関数V(s)は「状態sにいること」だけを採点し、行動には点を付けません。行動価値関数Q(s,a)は「状態sで行動aを取ること」まで含めて採点します。V(s)だけでは各行動の行き先を予測できないと行動を選べませんが、Q(s,a)は比較するだけで行動を選べます。
  • 「価値関数」の既定はどちらか — 公式テキストのとおり、一般に「価値関数」と言った場合は行動価値関数を指します。文脈なしで「価値関数=状態の評価」と思い込むと選択肢を誤ります。
  • Q値=即時報酬ではない — Q値はその行動で直後にもらえる報酬ではなく、将来の累積報酬の見込みです。
  • Q学習との関係 — 行動価値関数は「学習される対象(関数)」、Q学習は「それを最適化する手法(アルゴリズム)」です。関数と手法を混同しないようにしましょう。

📝 試験でのポイント

💡 ポイント
  • 「状態sでの行動aを評価する関数」という定義文から行動価値関数を選ばせる問題が基本形です。
  • 「一般に価値関数と言った場合はどちらを指すか」という、状態価値関数との対比問題が想定されます。
  • 「価値関数のことをQ値とも呼ぶ」「Q値の最適化手法にはQ学習・SARSAがある」という用語のつながりの正誤判定に備えましょう。
  • 「最適な方策を直接求める代わりに価値を設定する」という価値関数アプローチの動機を問う問題も考えられます。

📚 まとめ

行動価値関数Q(s,a)は、状態sで行動aを取ることの将来の累積報酬の見込みを採点する関数で、Q値とも呼ばれます。一般に「価値関数」といえばこの行動価値関数を指します。Q値を比較するだけで最適な行動を導けるのが強みで、Q学習やSARSAはこのQ値を最適化する手法です。状態のみを評価する状態価値関数との違い——「状態だけ」か「状態+行動」か——を一言で言えるようにしておきましょう。