行動価値関数(Q関数)入門:ベルマン方程式からQ学習・DQN、改良手法まで徹底解説
行動価値関数とは — 概念と直感
行動価値関数(こうどうかちかんすう、英: action-value function、一般に Q 関数と表記)は、強化学習(Reinforcement Learning; RL)において中心的な役割を果たす関数です。ある時点でエージェントが状態 s にあり、ある行動 a を選んだときに、その後に得られる累積報酬の期待値を表します。直感的には「この状態でこの行動を取ると、将来どれだけ得をするか」を示す指標です。
形式的定義
方策 π(ある状態でどの行動を選ぶかを示す確率分布)が与えられたとき、行動価値関数 Q^π(s, a) は次のように定義されます。
Q^π(s, a) = Eπ [ Σ_{t=0}^∞ γ^t r_{t+1} | s_0 = s, a_0 = a ]
ここで Eπ は方策 π に従う確率的な挙動の下での期待値、γ(ガンマ)は割引率(0 ≤ γ < 1)で将来の報酬をどれだけ重視するかを表します。r_{t+1} は時刻 t+1 に観測される報酬です。
状態価値関数との違い
よく比較される状態価値関数 V^π(s) は「状態 s にあるとき、方策 π に従って行動した場合に得られる期待累積報酬」を示します。一方、行動価値関数は状態と行動の組 (s, a) に対する価値を直接評価します。
- V^π(s) = Eπ [ Σ γ^t r_{t+1} | s_0 = s ]
- Q^π(s, a) = Eπ [ Σ γ^t r_{t+1} | s_0 = s, a_0 = a ]
両者は次の関係で結ばれます: V^π(s) = Σ_a π(a|s) Q^π(s,a) 。
ベルマン方程式(Bellman equation)
行動価値関数はベルマン期待方程式を満たします。すなわち、ある方策 π に対して:
Q^π(s,a) = E [ r_{t+1} + γ Σ_{a'} π(a'|s_{t+1}) Q^π(s_{t+1},a') | s_t=s, a_t=a ]
この再帰的な関係によって、Q 関数は動的に更新していくことができます。最適方策 π* に対応する最適行動価値関数 Q* はベルマン最適方程式を満たします:
Q*(s,a) = E [ r_{t+1} + γ max_{a'} Q*(s_{t+1},a') | s_t=s, a_t=a ]
Q 学習(Q-learning)と SARSA:代表的なアルゴリズム
行動価値関数を直接学習するアルゴリズムとしては Q 学習と SARSA が有名です。
- Q-learning(Watkins & Dayan, 1992)はオフポリシー法で、遷移を用いて Q 値をベルマン最適方程式に向けて更新します。更新式の一般形は: Q(s,a) ← Q(s,a) + α [ r + γ max_{a'} Q(s',a') − Q(s,a) ] 。ここで α は学習率。
- SARSA(オンポリシー法)の更新式は: Q(s,a) ← Q(s,a) + α [ r + γ Q(s',a') − Q(s,a) ] 。ここで a' は実際に選択した次の行動であり、方策に従うためオンポリシーとなります。
オフポリシーは「目標とする方策」と「行動を生成する方策」が異なっても収束可能な利点がある一方、オンポリシーは探索戦略と学習方針が一致するため安定性に寄与します。
関数近似とディープ Q ネットワーク(DQN)
状態空間や行動空間が大きい(連続的な)場合、テーブルで Q 値を保持できません。そこで関数近似(線形、ニューラルネットワーク等)を使って Q(s,a; θ) をパラメータ θ で表現します。DQN(Deep Q-Network、Mnih et al., 2015)はニューラルネットワークで Q を近似し、以下の工夫で安定化しています:
- 経験再生バッファ(experience replay):遷移のミニバッチをランダムに再利用して相関を減らす。
- ターゲットネットワーク:学習中の Q ネットワークとは別に一定間隔で更新される固定ターゲットを用いる。
DQN の適用で、画像入力から直接 Q 値を学習し高性能を示した例が多数あります。ただし関数近似は発散や過大評価バイアスを生むことがあり、それに対応する改良も提案されています(後述)。
代表的な改良と課題
- 過大評価バイアス:max 演算により Q 値が過大評価される問題。Double DQN(Hasselt et al., 2016)は評価と選択を分離してこのバイアスを軽減します。
- 連続行動空間:Q 学習は離散行動に適している。連続空間には DDPG、TD3、SAC などの actor-critic ベースの手法が使われます。これらは行動(policy)を別に学習することで連続値を扱います。
- サンプル効率:環境との対話コストが高い場合、少ないサンプルで効率的に学習する必要があります。モデルベース RL、優先経験再生(Prioritized Experience Replay)などが提案されています。
- 部分観測(POMDP):観測で状態が完全に判らない場合、履歴や内部状態を保持する RNN/LSTM を用いるか、POMDP を明示的に扱うアルゴリズムが求められます。
方策改善と Q 関数の役割
Q 関数を学習する主目的は、より良い方策を導くためです。典型的には次のように方策改善を行います:
- ε-greedy:確率 ε でランダム行動、1−ε で argmax_a Q(s,a) を選ぶ。
- ソフトマックスや Boltzmann:Q の差に基づく確率的選択。
- 方策勾配や actor-critic:Q を critic として方策(actor)を直接改善する。
Q 関数が正確であれば、greedy 方策は最適方策に近づきます。ただし近似誤差や探索不足により局所最適に陥る可能性もあります。
実装上の注意点と実践的ヒント
- 報酬のスケーリングや正規化:報酬振幅が大きいと学習が不安定化するため、正規化やクリッピングを行うことが一般的。
- 割引率 γ の選定:近視的(γ が小さい)だと短期報酬重視、γ に近い値だと長期報酬重視になる。タスク特性に合わせて調整。
- 探索スケジュール:ε を徐々に減らす(ε-annealing)ことで初期の探索と後期の収束を両立。
- 評価と訓練の分離:学習中は探索を行うが、定期的に探索を止めた評価(greedy)を実施して真の性能を測る。
- 安定化手法の併用:ターゲットネット、経験再生、正則化、学習率スケジューリングなどを組み合わせる。
拡張:マルチエージェントや階層的強化学習での Q 関数
複数のエージェントが相互作用する環境(マルチエージェント RL)では、各エージェント用の Q 関数や中央集権型の Q を考えるアプローチがある。階層的強化学習では高レベルの「オプション」やサブポリシーに対して価値関数を定義し、抽象化された行動単位の評価を行う。
まとめ:行動価値関数の重要性
行動価値関数は「どの行動が有望か」を直接評価する強力な道具であり、Q 学習、DQN、Actor-Critic 系など多くの RL 手法の基盤です。理論的にはベルマン方程式により再帰的に定義され、実践的には関数近似や各種安定化技術を組み合わせることで現実的な問題に適用されます。課題としては近似誤差、過大評価、サンプル効率の問題などがあり、これらに対する多くの改良策が研究・実装されています。
参考文献
- Richard S. Sutton and Andrew G. Barto, "Reinforcement Learning: An Introduction" (2nd edition)
- Mnih et al., "Playing Atari with Deep Reinforcement Learning" (2013) / "Human-level control through deep reinforcement learning" (Nature, 2015)
- C. J. C. H. Watkins and P. Dayan, "Q-learning" (1992)
- Volodymyr Mnih et al., DQN アルゴリズムの論文(arXiv / Nature)
- Timothy P. Lillicrap et al., "Continuous control with deep reinforcement learning" (DDPG, 2015)
- Hasselt, G. van, "Double Q-learning" / "Deep Reinforcement Learning with Double Q-learning" (2016)


