PPOにおいて動的ルーティングするマルチタイムスケール優位性が(そしてシンプルな分離型の解決策が)方策崩壊を引き起こす理由 [R]

Reddit r/MachineLearning / 2026/4/16

💬 オピニオンIdeas & Deep AnalysisTools & Practical UsageModels & Research

要点

  • この記事は、Actor-Criticアーキテクチャの中でPPOに動的にルーティングするマルチタイムスケール優位性(異なる割引率)を用いると、多くの場合、取り返しのつかない方策崩壊や不十分な局所解に至ると主張する。
  • 失敗の原因は、2つの最適化上の病理にあるとされる。すなわち、PPO損失の抜け道を時間方向の注意/ルータが悪用する「surrogate objective hacking(代理目的のハッキング)」と、アレイアトリック不確実性が小さいことからルーティングが短い地平を好む「temporal uncertainty paradox(時間的な不確実性の逆説)」である。
  • 診断の説明は、遅延報酬タスク(例:LunarLander)での挙動によって示される。エージェントは、成功した着陸にコミットするよりも、ショーピング報酬を最大化するために過度に短視眼的になり、宙を漂ってしまうことがある。
  • 著者の修正策(「Target Decoupling(ターゲットの分離)」/「Representation over Routing(ルーティングより表現)」)は、マルチタイムスケールの学習をクリティック側に保持したうえで、アクター側の更新では長期的な優位性シグナルのみを用いることで、マルチタイムスケールのルーティングからアクターを切り離すことを提案する。
  • 著者は、分離により漂い(ホバリング)が防止され、頑健な学習が可能になり(複数シードで一貫して200ポイントの閾値を上回るなど)、最小の再現可能なPyTorchの例に加え、関連論文およびGitHubへのリンクを提示している。

Hi folks,

I’m an undergrad doing some research on temporal credit assignment, and I recently ran into a frustrating issue. Trying to fuse multi-timescale advantages (like γ = 0.5, 0.9, 0.99, 0.999) inside an Actor-Critic architecture usually leads to irreversible policy collapse or really weird local optima.

I spent some time diagnosing exactly why this happens, and it boils down to two main optimization pathologies:

  1. Surrogate Objective Hacking: When the temporal attention mechanism is exposed to policy gradients, the optimizer just finds a shortcut. It manipulates the attention weights to minimize the PPO surrogate loss, actively ignoring the actual environment control.
  2. The Paradox of Temporal Uncertainty: If you try to fix the above by using a gradient-free method (like inverse-variance weighting), the router just locks onto the short-term horizons because their aleatoric uncertainty is inherently lower. In delayed-reward environments like LunarLander, the agent becomes so short-sighted that it just endlessly hovers in mid-air to hoard small shaping rewards, terrified of committing to a landing.

The Solution: Target Decoupling

The fix I found is essentially "Representation over Routing." You keep the multi-timescale predictions on the Critic side (which forces the network to learn incredibly robust auxiliary representations), but you strictly isolate the Actor. The Actor only gets updated using the purest long-term advantage.

Once decoupled, the agent stops hovering and learns a highly fuel-efficient, perfect landing, consistently breaking the 200-point threshold across multiple seeds without any hyperparameter hacking.

I got tired of bloated RL codebases, so I wrote a strict 4-stage Minimal Reproducible Example (MRE) in pure PyTorch so you can see the agent crash, hover, and finally succeed in just a few minutes.

Paper (arXiv): https://doi.org/10.48550/arXiv.2604.13517

GitHub (MRE + GIFs): https://github.com/ben-dlwlrma/Representation-Over-Routing

I built this MRE as a standalone project to really understand the math behind PPO and temporal routing. I've fully open-sourced the code and the preprint, hoping it saves someone else the headache of debugging similar "attention hijacking" bugs.

Feel free to use the code as a reference or a starting point if you're building multi-horizon agents. Hope you find it useful!

submitted by /u/dlwlrma_22
[link] [comments]