強化学習アルゴリズムの整理
この notebook は新しい内容を足すためではなく、強化学習章の最後に違いを整理し直すための復習用メモです。前半で見た価値関数とベルマン更新が、後半の各アルゴリズムでどう姿を変えるかを一気に見渡します。
最初に縦軸を揃える
強化学習のアルゴリズムは名前で覚えるより、次の軸で整理した方が崩れにくくなります。
- 何を学ぶか:
V(s)かQ(s,a)か - 何ステップ先まで実報酬を見るか: 1-step か n-step か
- 目標値をどう作るか: 方策平均か
maxか、実際に選んだa'か - どこへ誤差を配るか: 現在だけか、trace で過去へ広げるか
- 表で持つか、関数近似で持つか
この章のアルゴリズム対応表
| notebook | 学ぶ量 | 目標値の作り方 | ポリシーの立場 | 主な論点 |
|---|---|---|---|---|
| TD法 | V(s) |
評価寄り | bootstrapping の最小形 | |
| Q学習 | Q(s,a) |
off-policy | 最善行動を仮定して更新する | |
| SARSA | Q(s,a) |
on-policy | 探索込みの方策をそのまま学ぶ | |
| n-step TD法 | V または Q |
n-step return | 手法依存 | bias-variance の折り合い |
| TD(λ) | 主に V |
λ-return / trace | 手法依存 | 1-step と MC の連続補間 |
| Eligibility Trace | V や Q |
TD 誤差を過去へ配る | 手法依存 | credit assignment の設計 |
| 深層強化学習 | 近似された Q や policy |
手法依存 | 手法依存 | 表ではなく関数で持つ |
どういう順で混乱しやすいか
初学者が詰まりやすいのは、式が違うからではなく、どこが同じでどこが違うかが見えなくなるからです。実際にはかなりの部分が共通です。
- まずベルマン更新がある。
- その目標値を 1-step にするか n-step にするかを選ぶ。
maxを使うか、実際のa'を使うかで off-policy / on-policy が分かれる。- TD 誤差を現在だけに当てるか、trace で過去にも流すかを選ぶ。
- 表で持てなくなったら、ニューラルネットへ置き換える。
使い分けの見取り図
- まず bootstrapping そのものを理解したい: TD法
- 最適行動を強気に学びたい: Q学習
- 探索込みの現実的な方策をそのまま改善したい: SARSA
- 遠い報酬を早めに反映したい: n-step TD
- 1-step と Monte Carlo の間を滑らかに動きたい: TD(λ)
- 信用割当を現在だけでなく過去へ広げたい: Eligibility Trace
- 状態が大きくて表を持てない: 深層強化学習
章全体を読み終えたあとに残したいこと
この章で本当に覚えたいのはアルゴリズム名ではありません。強化学習は、ベルマン更新という共通骨格の上で、目標値の作り方と誤差の配り方を変えているだけだ、という見方です。この見方が入ると、新しい手法を見てもどの差分が本質かを追いやすくなります。