Q学習 (Q-Learning) とは?
Q学習は、強化学習における代表的なモデルフリー・価値ベースのアルゴリズムです。エージェントは環境と相互作用し、試行錯誤を通じて、各状態 \(s\) で各行動 \(a\) を取った際の将来にわたる累積報酬の期待値(行動価値)、すなわちQ値 Q(s, a) を学習します。これにより、エージェントはどの状態でどの行動を取るのが最適かを判断できるようになります。
Q学習の更新式
エージェントが状態 \(s\) で行動 \(a\) を取り、報酬 \(r\) を得て状態 \(s'\) に遷移したとき、Q値は以下の式で更新されます(ベルマン方程式に基づきます)。
$ Q_{new}(s, a) \leftarrow Q_{old}(s, a) + \alpha [ \underbrace{(r + \gamma \max_{a'} Q_{old}(s', a'))}_{TDターゲット} - Q_{old}(s, a) ]$
この式の各要素:
- \(Q_{old}(s, a)\): 更新前のQ値(現在の価値の見積もり)。
- \(r\): 行動 \(a\) を取った直後に得られた即時報酬。
- \(\gamma\) (割引率): 将来の報酬を現在の価値にどれだけ割り引くか(0〜1)。将来をどれだけ重視するか。
- \(\max_{a'} Q_{old}(s', a')\): 遷移先の状態 \(s'\) において、取りうる全ての行動 \(a'\) の中で最大のQ値。次の状態で最も良い行動を取った場合の価値の見積もり。
- \(r + \gamma \max_{a'} Q_{old}(s', a')\): TDターゲット。行動の結果得られた情報(即時報酬+次の最善の価値の見積もり)に基づく、Q(s, a) のより良い推定値(目標値)。
- \(TDターゲット - Q_{old}(s, a)\): TD誤差。目標値と現在の見積もりの差。
- \(\alpha\) (学習率): TD誤差をどの程度Q値の更新に反映させるか(0〜1)。更新のステップ幅。
Q学習は「現在の価値の見積もり」を、「実際の経験に基づく目標値」に、学習率に応じて少しずつ近づけていく学習プロセスです。
計算ステップ
与えられた情報:
- 現在のQ値 \(Q_{old}(s, a) = Q((1, 1), 上)\): 0.5
- 学習率 \(\alpha\): 0.1
- 報酬 \(r\): -0.1
- 割引率 \(\gamma\): 0.9
- 次の状態での最大Q値 \(\max_{a'} Q_{old}(s', a') = \max_{a'} Q((1, 2), a')\): 1.0
1. TDターゲットの計算:
$TDターゲット = r + \gamma \max_{a'} Q_{old}(s', a') = -0.1 + (0.9 \times 1.0) = -0.1 + 0.9 = 0.8$
2. TD誤差の計算:
$TD誤差 = TDターゲット - Q_{old}(s, a) = 0.8 - 0.5 = 0.3$
3. Q値の更新:
$Q_{new}((1, 1), 上) \leftarrow Q_{old}(s, a) + \alpha \times TD誤差 = 0.5 + (0.1 \times 0.3) = 0.5 + 0.03 = 0.53$
したがって、更新後のQ値は 0.53 です。
Q学習の重要ポイント
- 目的: 各状態・行動ペアの価値 (Q値) を学習し、最適な方策(どの状態でどの行動を取るべきか)を見つける。
- モデルフリー: 環境の完全なモデル(状態遷移確率など)を知らなくても学習可能。
- オフポリシー: 実際に経験を収集するための方策(例: 探索のためのランダム行動を含む方策)と、学習対象の最適方策(常にQ値が最大の行動を選ぶ方策)が異なっていても学習可能。更新式に \(\max_{a'}\) を使う点がこれを可能にしている。
- 応用: ゲームAI、ロボット制御、推薦システムなど多岐にわたる。深層学習と組み合わせたDeep Q-Network (DQN) は複雑なタスクで成功している。