1. 定義と概要
行動価値関数とは、状態sにおいて行動aを選択し、その後も方策(行動をどう選ぶかを決めるルール)πに従って行動し続けた場合に得られる将来報酬の期待値(起こりうる結果を確率で重みづけして平均した値)を表す関数です。数式ではQ^π(s,a)=E_π[G_t|S_t=s, A_t=a]と表されます。
このG_tは、割引率(将来の報酬をどれくらい割り引いて評価するかを決める0から1の数値)を考慮して将来報酬を足し合わせた値です。この合計を収益(リターン)と呼びます。
たとえば迷路を探索するエージェント(環境の中で行動を選び学習する主体。プログラムやロボットなど)が、あるマスで「右に進む」という行動を選んだ場合に見込める将来報酬の大きさを数値化したものが、行動価値関数の値に当たります。同じマスにいても選ぶ行動が変われば見込める報酬も変わるため、値は行動ごとに別々に定まります。
強化学習(試行錯誤を通じて報酬を最大化する行動のルールを学ぶ、機械学習の一分野)では、エージェントが試行錯誤を通じて将来報酬の合計を最大化する方策を学ぶことが目的になります。しかし、どの状態がどれくらい良いかを表す状態価値関数V(s)だけでは、その状態で次にどの行動を取るべきかが直接分かりません。
そこで行動そのものを状態とセットで評価する行動価値関数を導入すると、各状態で取りうる複数の行動を比較し、最も価値の高い行動を選べるようになります。
2. 試験対策ポイント
まず押さえておきたいのは、定義式Q^π(s,a)=E_π[G_t|S_t=s, A_t=a]と、状態価値関数V^π(s)との関係式V^π(s)=Σ_a π(a|s)Q^π(s,a)です。この式は、方策のもとで取りうる各行動の価値を確率で重み付けして足し合わせたものが状態価値になるという関係を表しています。
最適行動価値関数Q*(s,a)のもとでは、最適方策(累積報酬が最大になるように選ぶ最善の行動ルール)はargmax_a Q*(s,a)で与えられます。これは、その状態で最も価値の高い行動を選ぶgreedy方策(今分かっている中で最も価値が高い行動を選ぶやり方)を意味します。
最適状態価値関数との関係はV*(s)=max_a Q*(s,a)となり、状態価値関数の関係式が確率の重み付け和だったのに対し、最適な場合は合計ではなく最大値を取る点が異なります。ここは式の形が似ているだけに、取り違えやすい点です。
また、ベルマン方程式(今の価値を「今すぐの報酬」と「次の状態の価値」に分けて表す関係式)を使うと、行動価値関数を再帰的な形で表現できます。
行動価値関数の具体的な数値はQ値(行動価値関数が具体的に返す数値)と呼ばれ、Q学習(Q値を試行錯誤しながら更新していく代表的なアルゴリズム)はそのQ値を更新しながら方策を改善していきます。Q学習の具体的な更新方法については、別の記事で扱います。
3. 関連概念との比較・相違点
状態価値関数V(s)との最大の違いは、行動を条件に含むかどうかという点にあります。引数と評価の対象を並べると、両者の性格の差がはっきりします。
| 観点 | 状態価値関数V(s) | 行動価値関数Q(s,a) |
|---|---|---|
| 引数 | 状態sのみ | 状態sと行動aの組 |
| 表す価値 | 方策に従った場合の平均的な価値 | 特定の行動を選んだ場合の価値 |
| 行動の比較 | 行動ごとの値を持たない | 行動ごとの値を持ち、その場で比較できる |
両者の関係はV(s)=Σ_a π(a|s)Q(s,a)と表され、状態価値は行動価値を方策の確率で重み付けして足し合わせたものに当たります。状態sで次にどの行動を選ぶべきかを直接比較したい場合には、V(s)ではなく行動ごとの価値を持つQ(s,a)が必要になります。
もう一つの違いは、収益(リターン)G_tとの関係にあります。収益G_tはある1回の試行で実際に得られた将来報酬の合計であり、試行のたびに変わりうる確定的な値です。
一方、行動価値関数Q(s,a)はその収益を方策のもとで平均した期待値を表します。同じ状態と行動の組であっても、実際に得られる収益は試行ごとにばらつくため、行動価値関数は個々の結果ではなく平均的な見込みを示す指標という位置づけになります。
4. ビジネス・実務での活用シナリオ
対戦ゲームAIの分野では、将棋や囲碁などのゲームで、現在の局面(状態)に対して指し手(行動)ごとの見込み価値を評価し、最も価値の高い一手を選ぶ枠組みとして行動価値の考え方が使われています。局面の良し悪しだけでなく指し手ごとの価値を個別に持つことで、複数の候補手を比較しながら選択できる仕組みになっています。
推薦システムでは、ユーザーの閲覧履歴(状態)に対して、どの商品を提示するか(行動)ごとの将来的な反応を価値として推定します。購入や継続利用につながりやすい提示ほど高い価値を持つと評価することで、人気の商品を並べるだけでなく、個々のユーザーに合わせた提示を選ぶ設計につながります。
ロボット制御の現場では、現在の姿勢という状態のもとで、どの関節をどう動かすかという行動の価値を学習する形で行動価値の考え方が使われています。関節の動かし方ごとの価値を学習することで、目的の動作を少ない試行回数で達成できるよう改善されていきます。
5. 要点まとめ
- 行動価値関数Q(s,a)は、状態sで行動aを取った後、方策に従って行動し続けた場合に得られる将来報酬の期待値を表す関数です。
- 状態価値関数V(s)との関係はV(s)=Σ_a π(a|s)Q(s,a)であり、最適方策のもとではargmax_a Q*(s,a)で行動を選びます。
- ベルマン方程式で即時報酬と将来価値に分解でき、具体的な数値であるQ値の更新はQ学習などのアルゴリズムが担います。
6. 確認問題
問1行動価値関数Q(s,a)は、状態sにおいて行動aを選択し、その後方策に従って行動し続けた場合に得られる将来報酬の期待値を表す。
解答・解説をみる
○ 正しい
定義どおりで、収益G_tの期待値としてQ^π(s,a)=E_π[G_t|S_t=s, A_t=a]と表されます。この式は行動価値関数の基本形として押さえておきたいポイントです。
問2状態価値関数V(s)は、行動価値関数Q(s,a)を方策の確率で重み付けして足し合わせたものに等しい。
解答・解説をみる
○ 正しい
V(s)=Σ_a π(a|s)Q(s,a)という関係式のとおりで、状態価値関数は行動価値関数から導出できます。最適状態価値関数の場合は合計ではなく最大値を取る点が異なります。
問3行動価値関数Q(s,a)は状態のみを引数に取る関数であり、各行動の価値を評価するには別途、状態価値関数の値を参照する必要がある。
解答・解説をみる
× 誤り
正しくは、行動価値関数は状態と行動の組(s,a)を引数に取る関数であり、状態価値関数を介さずに単独で各行動の価値を評価できます。この点が状態価値関数との違いです。

