もちもち備忘録

びぼーろく

強化学習自分用メモ SAC編

何もわからない自分のための、参考サイトなどを元にした自分用メモ

SAC (soft actor-critic)

  • maximum entropy RL フレームワークに基づく、モデルフリーのoff-policy actor-critic deep RL アルゴ
  • actor:エントロピーを最大化しつつ期待報酬を最大化することが目的
  • つまり、可能な限りランダムに行動しながらタスクを成功させる
  • このフレームワークに基づくdeepRL手法はdeep Q-learning methodとして定式化されてる
  • off-policy updateと安定した確率的actor-critic定式化 (stable stochastic actor-critic formulation) を組み合わせる
  • 様々な連続制御ベンチマークタスクでSOTA達成
  • 他のoff-policyアルゴリズムと対照的に、安定しており、異なるseedにおいて非常に似た性能を達成

SAC (Soft-Actor-Critic)

  • サンプル効率の良い学習と安定性の両方を提供するoff-policy maximum entropy actor-critic アルゴリズム
    • DDPGなどのoff-policy手法が一般的に苦手な、複雑で高次元のタスクでいい感じ
  • Soft-Q学習に由来
    • その他のsoft Q-learningに基づくoff-policy maximum entropyアルゴリズムの複雑さ・不安定性を回避
  • 従来の目的関数に方策エントロピー項を加えて、より多様な探索を可能にした手法
  • エントロピー
    • 価値が大きいけど未探索な点 (価値があまり信用できない)、価値が大きく探索も十分 (価値が信用できる)がわかるように数式に取り入れられている
    • 大きい領域は探索が不十分
    • 小さい領域はよく探索された領域
    • エントロピーが小さい=乱雑ではない=ある行動が起こる確率が高い

3つの重要な要素

  • policyと価値関数ネットワークが分かれたactor-critic
    • 多くのactor-critic アルゴは標準的なon-policy policy gradient formulationを元にactorを更新
  • off-policy定式化
    • 効率化のために先に収集したデータを再利用できる
    • on-policyは安定性向上の傾向あるが、サンプルの複雑さが劣る
    • DDPGは複雑で高次元のタスクへの拡張は困難
      • off-policyのactor-criticアルゴ
      • deterministic policy gradient のの深層学習版
      • off-policy学習を可能とするQ関数推定きと、それを最大化する決定論的アクターを使用
    • SACではoff-policy actor-criticと確率的actorを組み合わせた上にエントロピー最大化も突っ込んだ
  • エントロピー最大化
    • 安定性と探索を可能にする

maximum entropy RL

  • expected returnもポリシーのextpected entropyの両方を最大化するようにpolicyを最適化
  • モデルフリーの先行研究の多くは離散的な行動空間を想定
    • 連続的にするために、最大エントロピー分布をガウスで近似
    • 最適なpolicyからサンプルを引き出すように学習したサンプリングネットワークで近似
    • soft Q-learningは価値関数とactor networkを持つが、本当のactor-criticアルゴではない
      • Q関数は最適Q関数を推定
      • actorはデータ分布を通して以外、Q関数に直接影響を与えない

方策エントロピー

  • 従来の目的関数

    • 価値 (総報酬)の最大化が目的
    • R:即時報
    • E:期待値
    • J:目的関数。ある方策πにおけるそう報酬の期待値
  • Soft-Q学習

    • 方策エントロピーを足した値が目的関数
    • この最大化を目指す
    • これを元にベルマン方程式を導出すると以下
      • Q:行動価値観数
      • r:即時報
      • γ:割引率

方策エントロピー項と方策の更新

  • 方策エントロピー項とそれを代入した後の目的関数は以下
  • 方策関数π
    • Soft-Q学習ではsoftmax方策を採用
      • Q値によって選択される確率が変わる方策
      • 離散値と相性がいい
      • 連続値では計算が複雑になる
    • SAC
      • シンプルなactor-critic型のsoft-Q学習を提案
      • softmax方策の厳密な近似器である必要ではなく、任意の方策を使用しても問題ないことを証明

DDPG/TD3との違い

  • 基本の実装は同じ
  • 引き続き使用しているテクニック

    • Replay Buffer
      • 経験をメモリー上に保存し、その中からランダムにミニバッチ学習
    • Target Network
      • Target Networkを別途作成し、推定価値に使うモデルの学習を遅らせる
      • Hard-Target:一定間隔ごとに同期
      • Soft-Target:少しずつ近づける
    • Clipped Double Q learning
      • actionの選択と推定で別のモデルを使用し、過大評価を防ぐ
  • 違うテクニック

    • 探索ノイズ
      • SACでは確率論的な方策なため不要
      • DDPGでは決定論的方策なので探索にノイズを含めていた
    • Target Policy Smoothing
      • SACではTarget Policyではなく、現状のPolicyからアクションを取得し、ノイズも混ぜない
      • Target Policyから予測された次の状態のアクションにノイズを混ぜてQ関数をsmoothにする

Squashed Gaussian Policy

  • ガウス分布から生成されるアクションは取り得る値が-∞〜∞
  • tanhを適用して-1〜1の範囲に押し込める手法

Reparameterization tric

  • VAEでも使われるテクニック
  • 誤差逆伝搬をする上で、通り道に確率的処理が入ると微分できない
  • 確率的処理を通り道から追い出すことで、誤差逆伝播を可能にしてる

方策エントロピーパラメタαの自動調整

  • α:エントロピー項の反映率を表す
  • 最適な数値は学習の進み具合で変化するので自動調整する
    • SACの初期の論文ではハイパラ
  • エントロピー下限値の制約付き報酬累積和の最大化問題として解く
  • 最終的には以下の式を最小化するようにパラメタαを調整
    • H-:望ましい最小のエントロピー値(ハイパラ)
    • -1xアクション数が推奨値

https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F396150%2F83b584a8-b618-ab88-d1d0-6a9a7a835106.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&w=1400&fit=max&s=503461dff4f2200289fd924c6c66d1bb

強化学習アルゴリズム

  • モデルフリーのRLアルゴの大きな二つの課題
    • high sample complexity
      • 比較的単純なタスクでも数百万ステップのデータ収集が必要な場合がある
      • 高次元の観測を伴う複雑な行動ではさらに多くなりそう
    • brittle convergence properties (脆い収束性?)
      • きめ細やかなハイパラチューニングが必要

deepRLのサンプル効率が悪い原因

  • on-policy学習
    • TRPO, PPO, A3Cなど
    • 各gradient stepに対して新しいサンプルが必要
      • モデルが更新されるたび、方策が変わるので
      • 効果的なpolicyを学習するために必要なgradient stepもステップごとのサンプルの数はタスクの複雑さと共に増加するので大変なコストになっちゃう
      • PPOは重点サンプリングにより再利用可能
  • off-policy
    • Q学習やDDPG
    • 過去の経験を再利用することが目的
      • 過去のpolicy gradient定式化では直接実現できないがQ-learningベースの手法では比較的簡単
    • (off-policy学習とNNによる高次元の非線形近侍の組み合わせは)ハイパーパラメタに敏感で調整が難しいという欠点
      • 特に連続的な状態・行動空間
        • Q-learningで最大化を行うためにseparate actorネットワークが使われることが多い
        • このような設定で一般的に使われるDDPGはサンプル効率が良い学習を提供するが、その脆さとハイパラsensitivityのために使うの大変

参考サイト

qiita.com