強化学習アルゴリズムの整理

この notebook は新しい内容を足すためではなく、強化学習章の最後に違いを整理し直すための復習用メモです。前半で見た価値関数とベルマン更新が、後半の各アルゴリズムでどう姿を変えるかを一気に見渡します。

最初に縦軸を揃える

強化学習のアルゴリズムは名前で覚えるより、次の軸で整理した方が崩れにくくなります。

この章のアルゴリズム対応表

notebook 学ぶ量 目標値の作り方 ポリシーの立場 主な論点
TD法 V(s) r+γV(s)r + \gamma V(s') 評価寄り bootstrapping の最小形
Q学習 Q(s,a) r+γmaxaQ(s,a)r + \gamma \max_{a'} Q(s', a') off-policy 最善行動を仮定して更新する
SARSA Q(s,a) r+γQ(s,a)r + \gamma Q(s', a') on-policy 探索込みの方策をそのまま学ぶ
n-step TD法 V または Q n-step return 手法依存 bias-variance の折り合い
TD(λ) 主に V λ-return / trace 手法依存 1-step と MC の連続補間
Eligibility Trace VQ TD 誤差を過去へ配る 手法依存 credit assignment の設計
深層強化学習 近似された Q や policy 手法依存 手法依存 表ではなく関数で持つ

どういう順で混乱しやすいか

初学者が詰まりやすいのは、式が違うからではなく、どこが同じでどこが違うかが見えなくなるからです。実際にはかなりの部分が共通です。

  1. まずベルマン更新がある。
  2. その目標値を 1-step にするか n-step にするかを選ぶ。
  3. max を使うか、実際の a' を使うかで off-policy / on-policy が分かれる。
  4. TD 誤差を現在だけに当てるか、trace で過去にも流すかを選ぶ。
  5. 表で持てなくなったら、ニューラルネットへ置き換える。

使い分けの見取り図

章全体を読み終えたあとに残したいこと

この章で本当に覚えたいのはアルゴリズム名ではありません。強化学習は、ベルマン更新という共通骨格の上で、目標値の作り方と誤差の配り方を変えているだけだ、という見方です。この見方が入ると、新しい手法を見てもどの差分が本質かを追いやすくなります。