Q学習とDQN:価値ベース強化学習の内部
TD学習でQ値がなぜ更新できるのか、なぜ深層化すると発散するのかを原理から理解。経験再生・ターゲットネットワーク・Double DQNが何の問題を潰しているかが一本につながります。
- 1.Q学習はベルマン最適方程式を1サンプルで近似するTD更新で、環境モデルなしに最適行動価値 Q* へ収束するオフ方策アルゴリズムです。
- 2.DQNはQ値をニューラルネットで近似し、相関と非定常という「致命的な三つ組」を経験再生とターゲットネットワークで緩和して学習を安定させます。
- 3.max演算が誤差を上向きに拾う過大評価バイアスを、行動選択と価値評価を別ネットに分けるDouble DQNが軽減します。
価値ベースという立場
強化学習 の解き方は大きく二つに分かれます。方策を直接パラメータ化して勾配で動かす 方策勾配法 と、各状態行動の「良さ」を表す価値を学び、そこから貪欲に方策を取り出す価値ベース法です。Q学習とDQNは後者の代表で、学ぶ対象は行動価値関数 Q(s,a) ―― 状態 s で行動 a を取り、以降は最適に振る舞ったときに得られる割引リターンの期待値です。
価値ベースの土台は ベルマン最適方程式 です。最適行動価値 Q* は次の自己無撞着な関係を満たします。
Q*(s,a) = E[ r + γ·max_{a'} Q*(s',a') ]
r : 即時報酬
γ : 割引率(0以上1未満)
s' : 行動後に遷移した次状態
「今の価値 = 即時報酬 + 次状態で最善を尽くしたときの価値の割引」という再帰です。遷移確率 P(s'|s,a) が分かっていれば動的計画法で解けますが、現実にはモデルが未知です。そこでサンプルから直接 Q* に近づける手法が要ります。
TD学習によるQ値更新
Q学習の核心は、ベルマン最適方程式の右辺を1サンプルで近似した目標値に向けて、現在の推定を少しずつ動かすことです。環境と1ステップやり取りして (s, a, r, s') を得たら、次のように更新します。
TD目標 y = r + γ·max_{a'} Q(s',a')
TD誤差 δ = y - Q(s,a)
更新 Q(s,a) ← Q(s,a) + α·δ
α : 学習率
δ は「実際に起きた1ステップを使った見積もり」と「今の見積もり」のズレで、TD誤差と呼びます。ここで重要なのは、目標 y の中に自分自身の推定 Q(s',a') が入っている点です。最終結果を待たず、次状態の現在推定で先取りして更新する ―― これがブートストラップであり、エピソード終了を待つモンテカルロ法との決定的な違いです。
TD目標が max_{a'} を使う点が効きます。実際に環境で取った行動が探索的なものでも、目標は常に「次状態で最善の行動を取った場合」を見ます。つまり行動を選ぶ方策(探索的)と評価する方策(貪欲)が別で、これをオフ方策と呼びます。だからこそ過去の経験を後から再利用できます。
割引率が1未満ならベルマン最適作用素は縮小写像になり、表形式(状態行動が有限で各 Q(s,a) を独立に持つ)かつ全状態行動を無限回訪れる条件下で、Q学習は確率1で Q* に収束することが証明されています。
εグリーディによる探索
収束には全状態行動の継続訪問が要るため、探索が欠かせません。最も使われるのがεグリーディです。
確率 1-ε : 貪欲行動 argmax_a Q(s,a) を選ぶ(活用)
確率 ε : ランダムに行動を選ぶ(探索)
学習初期は ε を大きく取って広く探索し、学習が進むにつれて減衰させ活用へ寄せます。ε を0にしないのは、推定が偏ったまま局所解に貪欲固着するのを避けるためです。Q学習がオフ方策なので、εグリーディで集めた経験から貪欲方策の価値を学べる ―― 探索と学習対象を分離できるのが価値ベース法の強みです。
関数近似と「致命的な三つ組」
状態空間が画像のように巨大だと表形式は破綻します。そこで Q(s,a) をパラメータ θ を持つニューラルネット Q_θ(s,a) で近似します。ところが、ここで理論の安全弁が外れます。次の三つが揃うと学習が発散しうることが知られ、致命的な三つ組(deadly triad) と呼ばれます。
| 要素 | 何が問題か |
|---|---|
| 関数近似 | 1点の更新が他の状態の Q 値にも波及し、保証された縮小性が崩れる |
| ブートストラップ | 目標が自分の推定を含むため、誤差が目標を通じて自己増幅する |
| オフ方策 | 更新する分布と行動する分布がずれ、誤差を打ち消す力が働かない |
表形式では各 Q(s,a) が独立で1点更新が他に影響しないため縮小性が保たれましたが、共有パラメータの近似ではこの独立性が失われます。Q学習をそのまま深層化すると、TD誤差を二乗した損失を勾配降下で最小化する形になりますが、目標 y が θ に依存して毎ステップ動くため、最適化問題自体が非定常になり振動・発散しやすいのです。
DQNの安定化:経験再生とターゲットネットワーク
DQN(Deep Q-Network)は三つ組のうち二つの悪影響を実装上の工夫で抑え込みます。
第一が経験再生(experience replay) です。集めた遷移 (s,a,r,s') をリプレイバッファに溜め、学習時はそこからランダムにミニバッチをサンプルします。これで連続するステップ間の強い時間相関が切れ、勾配降下が前提とする独立同分布に近づきます。加えて1つの経験を何度も再利用できるためサンプル効率も上がります。これはQ学習がオフ方策だからこそ成立します。
第二がターゲットネットワークです。TD目標の計算に使うネットを、学習中のネット Q_θ とは別の固定コピー Q_{θ⁻} にします。
損失 L(θ) = E[ ( r + γ·max_{a'} Q_{θ⁻}(s',a') - Q_θ(s,a) )² ]
θ⁻ : ターゲット網のパラメータ(数千ステップごとに θ をコピー)
目標を作る θ⁻ をしばらく凍結することで、目標が毎ステップ動く非定常性が和らぎ、回帰問題が「動かない的を狙う」形に近づきます。一定間隔で θ を θ⁻ へ同期し、徐々に的を更新します。
同じネットで目標も予測も作ると、θ を更新した瞬間に目標も同方向へ動き、追いかけっこになって正のフィードバックで発散しがちです。ターゲットを凍結すると、その間は目標が定数とみなせて勾配が安定し、振動が抑えられます。
過大評価バイアスとDouble DQN
DQNには残る欠陥があります。TD目標の max_{a'} Q_{θ⁻}(s',a') は、推定値に乗ったノイズのうち大きい方を選んでしまう点です。各 Q 推定が真値の周りに無相関な誤差を持つとき、最大値の期待値は真の最大値より大きくなります(最大値の期待は期待の最大以上、ジェンセンの不等式)。結果、価値が系統的に上振れする過大評価バイアスが生じ、誤った行動が過大評価されて方策を歪めます。
Double DQN はこれを、max が一手で担っている「行動選択」と「価値評価」を別ネットに分離して軽減します。
通常DQN y = r + γ·Q_{θ⁻}( s', argmax_{a'} Q_{θ⁻}(s',a') )
Double DQN y = r + γ·Q_{θ⁻}( s', argmax_{a'} Q_θ (s',a') )
行動の選択はオンライン網 Q_θ で行い、その行動の評価はターゲット網 Q_{θ⁻} で行います。両者の誤差が独立なら、片方が偶然高く評価した行動をもう片方が同じだけ高く評価する確率は下がり、最大化由来の上振れが打ち消されます。実装はターゲット計算の一行を差し替えるだけで、追加の網も要りません。
Q学習が「オフ方策」と呼べる理由(行動方策と目標方策の分離、max を使う点)、致命的な三つ組の構成要素、ターゲットネットが緩和するのは三つ組のどれか(ブートストラップの非定常性)、Double DQN が分離するもの(行動選択と価値評価)――この対応関係を押さえると説明が一貫します。
まとめ
Q学習はベルマン最適方程式を1サンプルのTD更新へ翻訳した、モデル不要・オフ方策の価値ベース法です。表形式では収束が保証されますが、深層化すると致命的な三つ組により発散しうる。DQNは経験再生で相関を、ターゲットネットワークで非定常性を抑えて学習を成立させ、Double DQNは max が生む過大評価バイアスを行動選択と価値評価の分離で緩和します。各工夫が「三つ組のどの病理を治療しているか」で読み解くと、価値ベース強化学習の設計思想が一本の線に揃います。
AI/機械学習 Article
Q学習とDQN:価値ベース強化学習の内部を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
強化学習
比較で見る軸
難易度: advanced / カテゴリ: AI/機械学習 / タグ数: 5
導入後に効く点
DQNはQ値をニューラルネットで近似し、相関と非定常という「致命的な三つ組」を経験再生とターゲットネットワークで緩和して学習を安定させます。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- AI/機械学習
- タグ数
- 5
判断チェックリスト
- 自社の用途が「強化学習 / Q学習」に近いか確認する。
- 強みである「Q学習はベルマン最適方程式を1サンプルで近似するTD更新で、環境モデルなしに最適行動価値 Q* へ収束するオフ方策アルゴリズムです。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。