Q-learning(Q学習)完全ガイド:基礎理論・収束条件から実装、DQN拡張とハイパーパラメータ最適化まで

はじめに

Q-learning(キューラーニング)は、強化学習(Reinforcement Learning; RL)の代表的なアルゴリズムの一つで、環境との試行錯誤を通して最適な行動方針(ポリシー)を学習します。特に「モデルを必要としない(model-free)」かつ「オフポリシー(off-policy)」な時系列逐次決定問題の手法として広く使われており、理論的な収束性の保証や実践的な拡張(Deep Q-Network など)により、研究と実運用の双方で重要な位置を占めています。本コラムでは、基本原理、数式、実装上の注意点、拡張・派生、実用的なコツまで詳しく解説します。

Q-learningの基本概念(MDPと報酬)

Q-learningはマルコフ決定過程(Markov Decision Process; MDP)を前提とします。MDP は典型的に次の要素で定義されます。

  • 状態集合 S
  • 行動集合 A
  • 遷移確率 P(s'|s,a)
  • 報酬関数 R(s,a,s')(または期待報酬)
  • 割引率 γ ∈ [0,1]

エージェントは各時刻 t において現在の状態 s_t を観測し、行動 a_t を選択、環境から報酬 r_t と次状態 s_{t+1} を受け取り、それを繰り返すことで学習します。Q-learning は状態 s と行動 a の組 (s,a) に対する行動価値関数 Q(s,a)(その後に得られる期待累積割引報酬)を推定し、最終的に最適行動は argmax_a Q(s,a) として決定されます。

Q-learning アルゴリズム(更新則)

Q-learning のコアは単純な更新則です。観測 (s_t, a_t, r_t, s_{t+1}) に対し、Q テーブルの値を以下のように更新します。

更新式:

Q(s_t,a_t) ← Q(s_t,a_t) + α [ r_t + γ max_{a'} Q(s_{t+1}, a') − Q(s_t,a_t) ]

  • α は学習率(0 < α ≤ 1)
  • γ は割引率(0 ≤ γ < 1 が一般的)
  • 右辺の局所誤差(TD誤差)は r_t + γ max_{a'} Q(s_{t+1}, a') − Q(s_t,a_t) です

特徴として、次状態での最大 Q 値(max_{a'} Q(s',a'))を参照するため「オフポリシー(off-policy)」に分類されます。すなわち、実際にエージェントが次に取る行動とは無関係に、最良と推定される行動の価値で更新します。

正確な動作の流れ(疑似コード)

Initialize Q(s,a) arbitrarily (e.g. zeros)
for each episode:
  initialize s
  while not terminal:
    choose a from s using behavior policy (e.g. ε-greedy on Q)
    take action a, observe r, s'
    Q(s,a) = Q(s,a) + α [ r + γ max_{a'} Q(s',a') - Q(s,a) ]
    s = s'

収束性と必要条件

Q-learning の理論的収束性は Watkins & Dayan (1992) により示されており、有限の MDP に対して以下の条件が満たされれば Q(s,a) は最適 Q* に確率 1 で収束します。

  • すべての状態-行動対 (s,a) が無限回訪問される(探索が十分行われる)こと
  • 学習率 α_t(s,a) が時間とともに減衰し、 Σ_t α_t = ∞ かつ Σ_t α_t^2 < ∞ を満たすこと(例:α_t = 1 / (1 + visits(s,a)) のような減衰)

これらの条件は理想的な保証であり、実践では探索戦略や学習率の設定が収束速度や最終性能に大きく影響します。

探索 (Exploration) と活用 (Exploitation)

Q-learning を動かす上で最も重要な設計の一つが探索と活用のバランスです。代表的手法は以下の通りです。

  • ε-greedy:確率 ε でランダム行動、1-ε で argmax_a Q(s,a)。シンプルで広く利用される。
  • ε を徐々に減らすスケジュール(例:線形減衰、指数減衰)で初期は探索多めにする。
  • ソフトマックス(Boltzmann):確率的に Q 値に比例した選択。温度パラメータで確率分布を調整。
  • UCB(上限信頼境界):主にバンディット問題で使われるが、状態依存の派生も可能。

実装上の注意点とハイパーパラメータ

  • 学習率 α:大きすぎると発散しやすく、低すぎると学習が遅い。経験に基づく減衰が一般的。
  • 割引率 γ:長期報酬を重視するなら 0.9〜0.99、即時報酬重視なら小さめ。
  • 初期 Q 値:楽観的初期化(大きめの値)を用いると探索が促進されることがある。
  • 報酬設計:スケールやスパース性に注意。報酬が大きすぎると学習が不安定になることがある。
  • エピソード長・終端条件:有限問題では終端状態の取り扱いを明確に。

限界と発展(関数近似・Deep Q-learning)

Q-table(状態数×行動数をそのまま保持)方式は状態空間が小さいときに有効ですが、状態空間が大きい・連続値の場合は現実的でありません。そこで関数近似(線形近似やニューラルネットワーク)で Q 関数を表現します。しかし、オフポリシー学習と関数近似の組合せは不安定または発散することが知られており(Baird の反例など)、それを解決するための技術が多数提案されました。

Deep Q-Network (DQN, Mnih et al., 2015) はディープニューラルネットワークで Q を近似する代表的手法で、以下の工夫により安定化しています。

  • 経験再生(Experience Replay):以前の遷移をバッファに貯め、ミニバッチでサンプリングして学習することで相関を減らす。
  • ターゲットネットワーク:目標値計算に使うネットワークを数ステップごとに固定して更新し、学習のブレを抑える。
  • 報酬クリッピング、入力正規化などの実務的対策

さらに Double DQN、Dueling DQN、Prioritized Experience Replay など多くの改良手法が提案され、学習の精度と安定性が向上しています。

代表的な派生・比較

  • SARSA:オンポリシーな TD 制御。更新式に max ではなく実際に選んだ次の行動の Q を使う
  • Expected SARSA:期待値を用いた更新で分散を減らす
  • Double Q-learning:過大評価バイアスの低減を目的とした手法(Deep 版は Double DQN)
  • Q(λ):多段階のブートストラップを組み合わせる(TD(λ) の Q 版)

簡単な例:グリッドワールドでの流れ

例として 4x4 のグリッドワールドを考えます。エージェントは上下左右に移動し、あるセルがゴールで報酬 +1、落とし穴で -1、その他の移動で 0 とします。初めは Q を全て 0 に初期化し、ε-greedy(ε=0.1)で行動選択。エピソードを多数回回すと、Q 値は次第にゴールへ導く経路に高い値を与えるようになり、最終的に最短経路を導く方策が得られます。学習率や ε の減衰、エピソード数により収束の速度や方策に差が出ます。

実務的なアドバイス

  • まずは簡単な環境(離散・小規模)で Q-table 実装を試し、ハイパーパラメータの感触を掴む。
  • 状態数が爆発する場合は特徴量設計や関数近似(線形、ニューラルネット)を検討するが、安定化技術(経験再生・ターゲットネットワーク等)を併用する。
  • 報酬設計は重要:スパース報酬問題には報酬成形や段階的タスク分解が有効な場合がある。
  • 評価は学習曲線(報酬の平均、成功率)を用いて過学習や不安定さを観察する。

まとめ

Q-learning は強化学習の基本であり、理論的基盤と実用的な拡張の両方が整っている強力な手法です。小規模・離散問題ではシンプルかつ確実に有効であり、大規模・連続問題では DQN をはじめとする関数近似法と組み合わせることで適用可能になります。ただし、オフポリシー学習と関数近似の組合せは不安定になり得るため、安定化策やハイパーパラメータの調整が不可欠です。基礎理論に立ち返りつつ、実践での工夫を重ねることが成功への近道です。

参考文献