Q学習は、強化学習の価値関数ベースを代表する学習法で、のちのDQNやRainbowといった深層強化学習ブームの土台になった超重要キーワードです。この記事では、Q値の更新の仕組みを具体的な数値例つきで理解し、DQN系の発展手法まで整理します。
📖 ひと言でいうと
Q学習とは、「状態sで行動aを取ることの価値」を表すQ値を、エージェントが行動するたびに少しずつ更新していく強化学習の手法です。例えるなら、飲食店の点数表を持ち歩き、1回食事するごとに「実際の満足度」と「事前の点数」のずれを見て点数を微修正していくようなものです。食べ歩き(試行)を重ねるほど点数表(Q値の表)が正確になり、最終的にどの状況でどの店を選ぶべきかがわかるようになります。
🖼 1枚でわかるQ学習
📘 公式テキストの説明
エージェントが行動するたびにQ値を更新する学習法。2013年にDeep Mind社はディープラーニングを組み合わせたDQNを発表した。その後、Double DQN、Dueling Network、Categorical DQN、Rainbowなどが提案された。
短い説明ですが、2つの柱があります。1つ目は「行動するたびにQ値を更新する」という学習の仕組みそのもの。2つ目は、Q学習がDQNをはじめとする深層強化学習の系譜の出発点だという歴史的位置づけです。DQNと発展形の名前は、系譜の並びごと問われることがあるので、以下で中身を理解しておきましょう。
🔍 しっかり理解する
Q値の更新式を読み解く
Q学習の心臓部は、次の更新式です(プレーンテキスト表記)。
Q(s,a) ← Q(s,a) + α × ( r + γ × max Q(s',a') − Q(s,a) )
- s, a: 今の状態と、そこで取った行動
- r: 行動の結果もらった報酬
- s': 移った先の次の状態。max Q(s',a')は次の状態で取り得る行動の中で最大のQ値
- α: 学習率(一度にどれだけ修正するか)
- γ: 割引率(将来の報酬をどれだけ重視するか。0〜1)
カッコの中身「r + γ × max Q(s',a') − Q(s,a)」は、「実際に動いてみてわかった価値の見積もり」と「事前のQ値」のずれ(TD誤差)です。このずれのα倍だけQ値を修正する、というのがQ学習の1ステップです。エピソードの終了を待たず、1回行動するごとに更新できる点がモンテカルロ法(REINFORCEなど)との大きな違いです。
表からニューラルネットワークへ — DQNの誕生
素朴なQ学習は「状態×行動」の表(Qテーブル)でQ値を管理します。しかし、ゲーム画面のように状態が事実上無限にあると表では持ちきれません。そこで2013年、DeepMind社はQ値の予測をディープラーニング(畳み込みニューラルネットワーク)で近似するDQN(Deep Q-Network)を発表し、Atariのゲームを画面ピクセルから直接学習させることに成功しました。
DQNの発展形
その後、DQNの弱点を改良する手法が次々に提案されました。Double DQNはQ値が実際より高く見積もられがちな「過大評価」を、行動の選択と評価に別々のネットワークを使うことで抑えます。Dueling Networkは、Q値を「状態そのものの価値」と「行動ごとの優位性」に分けて推定する構造で精度を高めます。Categorical DQNは報酬の期待値だけでなく分布として学習し、これらの改良を組み合わせた集大成がRainbowです。
💡 具体例で考える
数値でQ値の更新を1回だけやってみましょう。迷路を進むロボットが、分かれ道(状態s)で「右に進む」(行動a)を選んだとします。現在のQ(s,右)=2.0、学習率α=0.1、割引率γ=0.9とします。右に進んだら小さな報酬r=1が得られ、次の分かれ道s'での最大Q値がmax Q(s',a')=5.0だったとすると、更新は次のようになります。
Q(s,右) ← 2.0 + 0.1 × ( 1 + 0.9×5.0 − 2.0 ) = 2.0 + 0.1×3.5 = 2.35
「先の見通しまで含めると右はもっと価値が高そうだ」というずれ(+3.5)の1割だけ点数を引き上げました。この小さな修正を何万回も繰り返すことで、ゴールから遠い地点のQ値にもゴールの報酬の情報がじわじわ伝わり、最短経路が浮かび上がってきます。DQNがAtariのブロック崩しで人間の熟練プレイヤーを上回るスコアを出したのも、この同じ更新原理を巨大なニューラルネットワークで実行した結果です。
⚠️ よくある誤解・紛らわしい用語
- Q学習とDQNは別物の学習原理ではない — DQNは「Q学習+ディープラーニング(Q関数の近似)」であり、更新の考え方はQ学習そのものです。
- SARSAとの違い — SARSAも毎ステップQ値を更新しますが、次状態で「実際に選んだ行動」のQ値を使います(方策オン型)。Q学習は実際の選択とは無関係に「最大の」Q値を使う方策オフ型です。maxの有無が見分けポイントです。
- Q値=もらえる報酬そのものではない — Q値は即時報酬ではなく、その行動を起点に将来得られる累積報酬の見込み(期待値)です。
- ε-greedy方策との関係 — ε-greedyはQ学習の中で行動を選ぶ部品であり、Q学習と並列の「別の学習法」ではありません。
📝 試験でのポイント
- 「エージェントが行動するたびにQ値を更新する学習法」という定義文からQ学習を選ばせる問題が基本形です。
- 「2013年・DeepMind社・ディープラーニングとの組み合わせ」という3点セットでDQNを問う問題が想定されます。
- Double DQN、Dueling Network、Categorical DQN、RainbowがいずれもDQNの発展形であることの正誤判定に備えましょう。
- 更新式の中の「max Q(s',a')」の有無でQ学習とSARSAを見分けさせる問題も考えられます。
📚 まとめ
Q学習は、行動価値関数Q(s,a)を行動のたびに更新していく価値関数ベースの代表的な強化学習法です。更新の核は「報酬+次状態の最大Q値」と現在のQ値のずれを学習率の分だけ埋めることにあります。2013年にDeepMind社がディープラーニングと組み合わせたDQNを発表し、その後Double DQN、Dueling Network、Categorical DQN、Rainbowへと発展しました。定義・更新の仕組み・DQN系譜の3点を押さえておきましょう。
