Re Reference AI

技術

Q学習とは

Q-Learning

状態と行動の組み合わせの価値(Q値)を試行錯誤を通じて学習する、強化学習の代表的な手法

強化学習機械学習

ひとことで言うと

「この状況でこの行動を取ると将来どれだけ得か」を、実際に試しながら学んでいく強化学習の手法。

概要

Q学習は、エージェントがある状態である行動を取ったときに、その後得られる将来の報酬の合計をどれだけ期待できるかを表すQ値(状態行動価値関数)を、環境との試行錯誤を通じて反復的に学習する強化学習の手法。 各時点でエージェントは現在の状態を観測し、行動を選択して実行し、環境から報酬と次の状態を受け取る。 この経験をもとに、実際に得られた報酬と次の状態での最良の行動のQ値を使って、現在のQ値の推定値を少しずつ真の値に近づけるよう更新していく。 環境のモデル(状態遷移確率など)を事前に知らなくても学習できるモデルフリーな手法であり、あらかじめ最適な方策を決め打ちせず実際に行動しながら学習するオフポリシー型の手法としても知られる。

背景

強化学習では、エージェントが環境の完全なモデルを持たない状況でも、試行錯誤を通じて最適な行動を学習できる手法が求められていた。 Q学習は、状態と行動の組み合わせごとの価値を直接推定し、環境のモデルを必要とせずに最適方策へ収束できる手法として考案された。

歴史

1989年: Watkinsが博士論文でQ学習を提案。 1992年: WatkinsとDayanがQ学習の収束性を理論的に証明する論文を発表。 2013-2015年: DeepMindが、Q学習にニューラルネットワークを組み合わせたDQN(Deep Q-Network)でAtariゲームを人間並みにプレイできることを示し、深層強化学習の火付け役に。

アーキテクチャ

状態と行動の全ての組み合わせに対応するQ値を格納するQテーブル(状態数×行動数の表)を用意し、各セルの値はその状態でその行動を取った場合に期待できる将来の割引累積報酬を表す。 ベルマン方程式に基づき、実際に得た報酬と次の状態での最大Q値を使って、現在のQ(s,a)の推定値を少しずつ更新していく。 状態・行動空間が大きく表で管理できない場合は、このQテーブルをニューラルネットワークで近似したDQN(Deep Q-Network)が使われる。

ワークフロー

エージェントが現在の状態を観測する。 現在のQ値の推定値をもとに行動を選択(探索と活用のバランスを取りながら)して実行し、環境から報酬と次の状態を受け取る。 受け取った報酬と次の状態で得られる最良のQ値を使い、現在の状態行動ペアのQ値を更新する。 これを繰り返し、Q値が真の値に収束するまで学習を続ける。

コード例

Q学習の更新式(Bellman方程式に基づく更新)

import numpy as np

# Q[state][action] のQテーブル、学習率alpha、割引率gamma
alpha, gamma = 0.1, 0.99

def update_q(Q, state, action, reward, next_state):
    best_next = np.max(Q[next_state])
    td_target = reward + gamma * best_next
    Q[state][action] += alpha * (td_target - Q[state][action])
    return Q

利点

  • 環境の遷移確率などのモデルを事前に知らなくても、試行錯誤だけで学習できる
  • オフポリシー型のため、探索のための行動と学習対象の方策を分けて設計しやすい
  • 状態・行動空間が離散的で小規模な問題では、理論的な収束性が保証されている

欠点

  • 状態・行動空間が大きくなると、全ての組み合わせのQ値を表で管理する方式では現実的に扱えなくなる
  • 連続的な状態・行動空間をそのまま扱うことができず、関数近似(ニューラルネットワーク等)との組み合わせが必要になる
  • 報酬がまばらにしか得られない環境では、学習が非常に遅くなることがある

比較

  • モンテカルロ木探索Q学習が価値関数を学習して方策を導くのに対し、モンテカルロ木探索はシミュレーションによる探索で行動を選ぶ
  • 機械学習Q学習は強化学習に分類される手法で、教師あり学習とは異なり正解ラベルではなく報酬信号から学習する
  • RLHFRLHFはQ学習とは異なる強化学習アルゴリズム(PPO等)を用いるが、報酬信号から方策を学習する点は共通する

関連用語

機械学習モンテカルロ木探索RLHF強化学習

よくある質問

Q学習とDQNの違いは?

Q学習は本来、状態と行動の全組み合わせのQ値を表で管理する手法だが、状態空間が大きいと現実的に扱えない。DQNはこのQ値をニューラルネットワークで近似することで、画像のような高次元の状態でも扱えるようにした発展形。

モデルフリーとは?

環境がどのような状態遷移や報酬の仕組みを持つかという事前知識(モデル)を必要とせず、実際の試行錯誤の経験だけから学習できる性質のこと。Q学習はこのモデルフリーな手法の代表例。

参考文献

関連Zenn記事