Open Source Robotics

高品質なオープンソースロボティクスプロジェクト、ツール、ソフトウェアの厳選コレクション。

Soft Actor-Critic

  • 別名: SAC
  • カテゴリ: Learning & autonomy › RL & simulation
  • タグ: reinforcement-learning, off-policy, actor-critic, maximum-entropy, robot-learning, continuous-control

報酬と行動のエントロピーの両方を最大化するように確率的なポリシーを学習させ、サンプル効率のためにリプレイバッファの過去の経験を再利用するオフポリシーの強化学習アルゴリズム。

定義

Soft Actor-Critic(SAC)は、Tuomas Haarnoja らが 2018 年に発表した、連続行動空間のためのオフポリシーのアクター・クリティック型強化学習アルゴリズムである。最大エントロピーの枠組みに基づいており、ポリシーは期待報酬だけを最大化するのではなく、報酬に行動のエントロピー、すなわちランダム性に対するボーナスを加えたものを最大化する。温度パラメータが両者のバランスを決める。エントロピー項は幅広い探索を促し、ポリシーが早い段階で単一の行動に収束してしまうのを防ぐ。

SAC は、確率的なポリシー(アクター)と、2 つの Q 関数のクリティックを学習する。ポリシーは通常ガウス分布であり、そのサンプルは行動の制限を守るために tanh 関数で押しつぶされる。学習目標を計算する際に 2 つのクリティックの最小値をとることで、Q 学習でよく見られる過大評価バイアスが減る。これは TD3 アルゴリズムと共通の技法であり、ゆっくり更新されるターゲットネットワークが学習を安定させる。SAC の後のバージョンでは、ポリシーのエントロピーを選んだ目標値の近くに保つように温度を自動調整し、最も敏感なハイパーパラメータの 1 つを不要にしている。

SAC はオフポリシーであるため、ロボットが経験するすべての遷移はリプレイバッファに保存され、多数の勾配更新で再利用される。これにより、各更新の後にデータを破棄する PPO などのオンポリシー手法よりもかなりサンプル効率が高い。この性質から、SAC は、1 分ごとのインタラクションが時間と摩耗のコストになる物理的なロボット上で直接学習する場合や、シミュレーションが遅いか利用できないタスクで、よく選ばれるようになった。

トレードオフは計算量とスケーリングにある。SAC は環境の 1 ステップごとに多数のネットワーク更新を行い、新しいデータが安価な大規模並列 GPU シミュレーションからは、これまで PPO ほどの恩恵を受けてこなかった。高次元の行動空間や大きなネットワークでは学習が不安定になることもあり、SAC のようなオフポリシー手法を多数の並列環境や多くの関節を持つロボットにスケールさせる方法が現在研究されている。

重要な理由

SAC は、実機のロボットハードウェア上で直接学習する場合を含め、データが高価な状況で深層強化学習を実用的なものにした。今も連続制御の標準的なベースラインの 1 つであり、そのエントロピー正則化された定式化は、後の多くのオフポリシー手法やモデルベース手法に影響を与えている。

主な用途

  • 実機ハードウェアでの学習 — 限られたロボットの稼働時間でマニピュレーションやロコモーションのスキルを学習させる
  • 連続制御のベンチマーク — シミュレーション上のロボットタスクの標準的なベースライン
  • マニピュレーション — 疎な報酬や整形された報酬で把持、押し、挿入のポリシーを学習する
  • 事前学習済みポリシーのファインチューニング — 行動クローニングで得たポリシーをオンライン強化学習で改善する
  • 車両やドローンの制御 — 連続的な操舵や推力の指令を学習する

実際の使われ方

SAC を使うチームは通常、ロボットやシミュレータを標準的な環境インタフェースで包み、Stable-Baselines3 などのライブラリの実装を選んで、リプレイバッファのサイズ、バッチサイズ、学習率、環境ステップに対する勾配更新の比率を設定する。ハードウェア上で学習する場合は、行動に対する安全制限、自動リセット、搭載センサで計測できる報酬信号を追加し、デモンストレーションや以前の実行のデータでリプレイバッファをあらかじめ満たしておくことも多い。エンジニアはクリティックの損失、温度の値、ポリシーのエントロピーを監視する。温度がほぼゼロまで下がったり、クリティックの推定値が際限なく大きくなったりするのは、学習の調整が必要であることを示すよくある兆候である。

よくある誤解

  • SAC は常に PPO より優れている — SAC のほうがサンプル効率は高いが、数千のシミュレーション環境を並列に実行する場合、実時間では PPO のほうが速く学習することが多い
  • エントロピーボーナスによって最終的なポリシーはランダムになる — 運用時には通常、平均の行動が使われ、温度の自動調整によって学習が進むにつれてエントロピーは下がる
  • SAC は変更なしで離散行動を扱える — 標準のアルゴリズムは連続行動を対象としており、離散版には修正が必要である
  • オフポリシーならどんな古いデータでも使える — 現在のポリシーの振る舞いから大きく離れたデータは、特に完全なオフライン設定では、依然として価値推定を不安定にしうる

知っておくべき人

  • 物理的なハードウェア上で学習させるロボット学習の研究者
  • 連続制御に取り組む強化学習の実務者
  • オンラインのファインチューニングを使うマニピュレーションのエンジニア
  • アクター・クリティック手法を学ぶ学生

関連技術

  • 近接方策最適化(Proximal Policy Optimization)
  • TD3
  • 深層決定論的方策勾配(Deep Deterministic Policy Gradient、DDPG)
  • リプレイバッファ(Replay Buffer)
  • 最大エントロピー強化学習(Maximum Entropy Reinforcement Learning)
  • Stable-Baselines3

関連用語

  • Reinforcement Learning
  • Proximal Policy Optimization
  • Sim2Real

関連プロジェクト

  • LeRobot: HuggingFace ML library for real-world robotics in PyTorch
  • MuJoCo: DeepMind physics engine for robotics and ML research
  • PyBullet: Python physics simulator for robotics and RL research with fast CPU-based simulation
  • OpenPI: Physical Intelligence VLA foundation models for general robot control
  • Microduck: Pollen Robotics' $399 walking duck robot: open-source software, closed hardware
  • Isaac Lab: NVIDIA robot learning framework: one task API across Newton, PhysX and Isaac Sim

動画

  • L5 DDPG and SAC (Foundations of Deep RL Series): Pieter Abbeel

このウェブサイトにはJavaScriptが必要です。オープンソースロボティクスプロジェクトを閲覧するにはJavaScriptを有効にしてください。