TL;DR
MPC-Injectionは、RL学習と同じシミュレータでMPCが生成した遷移をオフポリシーRLのリプレイバッファに約25%混ぜ、タスク報酬を変えずに設計者が望む歩容の挙動basinへ方策を寄せる。2D walkerとUnitree Go2で、純粋RLの振動・座り込みを避け、報酬整形やAMP-MPCに質的に近い歩容を報告。ただし実機は定性的sim-to-real中心で、比率・タスク・ロボット一般化は要検証。
既存手法との違い
原論文の比較は、同一報酬下の純粋RL(0%注入)、報酬整形(Go2では21項)、同じMPCロールアウトで学習したAMP-MPC、関連手法として人間デモ拡張リプレイやMPC/RLハイブリッド。条件は2D walkerでSAC/TD3・50万ステップ・5シード、Go2でSAC・100万ステップ・5シード、注入率0/25/50/75/100(walker)。違いは、MPC-Injectionが報酬設計・判別器・キネマティックリターゲット・補助損失を追加せず、MPC遷移をリプレイ分布に混ぜるだけという点。原論文では、MPC-Injectionは報酬整形やAMP-MPCと質的に比較可能な歩容を作り、トルクCDFが低めと報告。ただし詳細な数値表は提示本文からは確認できない。
使える条件
オフポリシーRL(SAC/TD3)と、RL学習と同じシミュレータでMPC軌道をオフライン生成できることが前提。望む挙動をMPCコストで指定し、遷移をリプレイバッファにp%注入する。報酬は注入時に再計算できる。検証は2D walkerとUnitree Go2で、Go2は質量・摩擦・関節ダイナミクスのドメインランダム化を伴う定性的sim-to-real。MPCはwalkerでサンプリングベース、Go2で勾配ベース。計算資源の詳細や実機の定量評価は提示本文からは確認できない。
限界と未検証の範囲
提示本文の範囲では、評価は2D walkerのシミュレーションとGo2のシミュレーション+定性的sim-to-realが中心。実機での大規模・定量評価、他ロボット/タスクへの一般化、SAC/TD3以外のアルゴリズムは未確認。25%が最も安定だが、walkerでは50/75/100%で規則的歩容にならないと報告。MPCデータの質・コスト設計に依存し、望む挙動をMPCで表現できない場合は効かない可能性。報酬が不足指定のためリターンだけではbasin判定できず、足拍・状態分布等で評価。ハードウェア定量や計算オーバーヘッドの詳細は提示本文からは確認できない。
解説
ロボット歩行のRLって、報酬を最大化してるのに変な歩き方になることあるんだ?
ある。速度追従だけだと脚を振動させたり、胴体で床を滑ったりする。リターンは高いのに使えない歩容になる。
じゃあ報酬に歩き方の項を足せばいいの?
それが報酬整形。でも調整が大変で、挙動を変えるたびに再学習が要る。AMPも判別器やキネマティックリターゲットが必要になる。
この論文のMPC-Injectionはどう違うの?
同じシミュレータでMPCが作った遷移を、オフポリシーRLのリプレイバッファに混ぜる。タスク報酬は変えない。
MPCの行動を真似する損失を入れる感じ?
入れない。遷移だけを混ぜる。actorは自分の行動で更新されて、criticも混合バッファから学ぶ。注入時にRL報酬を再計算できる。
混ぜる比率はどれくらい?
目標比率pで、25%が一番安定。2D walkerでは0/25/50/75/100%をSACとTD3で5シード、50万ステップ。25%は5/5で直立の周期歩行になった。高い比率は規則的な歩容にならない。
Go2の四脚は?
SACで100万ステップ、5シード。純RLは脚の振動、25%は周期のあるトロット。比較は同一報酬の純RL、21項の報酬整形、同じMPCデータで学習したAMP-MPC。トルクCDFはAMP-MPCや報酬整形より低めと報告されてる。
実機でも試してるの?
Go2で質量・摩擦・関節ダイナミクスをランダム化して、定性的なsim-to-realをやってる。バレルロールやバウンディングも、注入するMPCデータを変えると選べる。ただ実機の大規模な定量評価や、他ロボットへの一般化は提示本文からは確認できない。
なるほど、報酬じゃなくてリプレイ分布で歩容のbasinを選ぶんだ。
そう。望む挙動をMPCのコストで書けるなら、RL側の報酬設計を増やさずに寄せられる。ただしMPCデータの質や設計コストには依存する。
25%混ぜるだけで歩き方が変わるなら、私の勉強にも25%だけやる気を注入してほしいな。
残り75%のやる気が足りないだけだろ。