<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Reinforcement Learning | Florent Delgrange</title><link>https://delgrange.me/category/reinforcement-learning/</link><atom:link href="https://delgrange.me/category/reinforcement-learning/index.xml" rel="self" type="application/rss+xml"/><description>Reinforcement Learning</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><lastBuildDate>Tue, 14 Jul 2026 00:00:00 +0000</lastBuildDate><image><url>https://delgrange.me/media/icon_hu55be7e40e5cc7772513f5d192dadedff_14178_512x512_fill_lanczos_center_3.png</url><title>Reinforcement Learning</title><link>https://delgrange.me/category/reinforcement-learning/</link></image><item><title>It's a matter of timescale: non-linear utility in successor features and multi-objective planning and learning</title><link>https://delgrange.me/publication/mertens-2026-timescale/</link><pubDate>Tue, 14 Jul 2026 00:00:00 +0000</pubDate><guid>https://delgrange.me/publication/mertens-2026-timescale/</guid><description/></item><item><title>Deep SPI: Safe Policy Improvement via World Models</title><link>https://delgrange.me/publication/delgrange-2025-deepspisafepolicy/</link><pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate><guid>https://delgrange.me/publication/delgrange-2025-deepspisafepolicy/</guid><description/></item><item><title>CTDE2: Continuous Training Discrete Execution</title><link>https://delgrange.me/publication/rowies-2026-ctde2/</link><pubDate>Wed, 22 Apr 2026 00:00:00 +0000</pubDate><guid>https://delgrange.me/publication/rowies-2026-ctde2/</guid><description/></item><item><title>Deep SPI</title><link>https://delgrange.me/project/deep_spi/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://delgrange.me/project/deep_spi/</guid><description>&lt;p>Implementation of the techniques presented in our paper &lt;a href="https://delgrange.me/publication/delgrange-2025-deepspisafepolicy/">&lt;em>Deep SPI: Safe Policy Improvement via World Models&lt;/em>&lt;/a>.&lt;/p>
&lt;ul>
&lt;li>
&lt;i class="fab fa-github pr-1 fa-fw">&lt;/i> &lt;strong>Code&lt;/strong>: &lt;a href="https://github.com/florentdelgrange/deepspi/" target="_blank" rel="noopener">GitHub repository&lt;/a>&lt;/li>
&lt;li>&lt;strong>Paper&lt;/strong>: &lt;a href="https://delgrange.me/publication/delgrange-2025-deepspisafepolicy/">ICLR 2026&lt;/a>&lt;/li>
&lt;li>&lt;strong>Blog&lt;/strong>: &lt;a href="https://delgrange.me/post/deep_spi/">Deep SPI explainer&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="the-core-problem">The Core Problem&lt;/h2>
&lt;p>When you train a deep RL policy with auxiliary losses to improve the representation (the observation encoder before your value/critic heads), you face a critical timing problem:
The representation optimized under your behavioral policy may not be reliable for the next policy. Add auxiliary losses to regularize the latent space, improve the policy, and suddenly the encoder has shifted, invalidating the very representation you were relying on.&lt;/p>
&lt;p>&lt;strong>Deep SPI solves this by coupling world-model learning with controlled policy updates&lt;/strong>: you improve the policy step by step, in a neighborhood that keeps it close to regions where the world model is well-calibrated.
This way, updates that look good in the model actually translate to improvements in the real environment.&lt;/p>
&lt;h2 id="how-it-works-the-algorithm">How It Works: The Algorithm&lt;/h2>
&lt;p>Deep SPI operates on a deep RL agent where the &lt;strong>learned representation&lt;/strong> $\phi$ (the encoder) maps raw observations into a compact latent space. This representation is shared by both the policy and the world model—the policy predicts actions from $\phi(s)$, and the world model predicts rewards and transitions from $\phi(s)$. The core insight is that as the policy improves, this shared representation can shift, breaking the world model&amp;rsquo;s calibration. Deep SPI solves this by constraining policy updates to stay in a neighborhood where the world model remains reliable.&lt;/p>
&lt;h3 id="learning-a-reliable-world-model">Learning a Reliable World Model&lt;/h3>
&lt;p>Learn two predictors $\overline{R}$ (reward) and $\overline{P}$ (transition) on behavioral data, operating on the learned representation $\phi(s)$:&lt;/p>
&lt;div>
$$
L_R := \mathbb{E}_{(s,a,r)\sim \pi_b}\left|r - \bar R(\phi(s), a)\right|.
$$
$$
L_P := \mathbb{E}_{(s,a,s')\sim \pi_b}\left[\mathbb{E}_{\overline{s}^+ \sim \bar P(\cdot \mid \phi(s), a)}\|\phi(s') - \overline{s}^+\|\right].
$$
&lt;/div>
&lt;p>These measure calibration exactly where you have data, telling you whether the model is reliable for the next policy update.&lt;/p>
&lt;h3 id="enforcing-a-policy-neighborhood">Enforcing a Policy Neighborhood&lt;/h3>
&lt;p>Restrict new policies to stay close to the current policy: action probabilities can&amp;rsquo;t deviate more than a fixed ratio (similar to PPO&amp;rsquo;s clipping).
This keeps updates close to the data regime, ensuring the world model remains trustworthy.&lt;/p>
&lt;h3 id="the-core-guarantee">The Core Guarantee&lt;/h3>
&lt;p>With constrained updates and small prediction losses, improvements in the learned model transfer back to the real environment.
The gap between model and reality shrinks as the prediction losses shrink — so if you&amp;rsquo;re predicting rewards and transitions well, your planned improvements will actually happen in the real world.&lt;/p>
&lt;h3 id="representation-quality">Representation Quality&lt;/h3>
&lt;p>The encoder remains useful for the next policy: states with very different values can&amp;rsquo;t collapse to the same latent point without breaking the guarantee.
This prevents representation degradation and keeps the learned state abstraction useful as you improve the policy.&lt;/p>
&lt;h2 id="implementation-ppo--world-models">Implementation: PPO + World Models&lt;/h2>
&lt;p>The practical question: how do you enforce the neighborhood in a modern deep RL pipeline?&lt;/p>
&lt;p>&lt;strong>The answer is PPO&lt;/strong>, because its clipped objective already acts like a trust region. We build upon &lt;a href="https://github.com/vwxyzjn/cleanrl" target="_blank" rel="noopener">Clean RL&lt;/a> implementations for robust JAX-based training.
But there&amp;rsquo;s a critical subtlety: auxiliary losses (like $L_R$ and $L_P$) update the encoder, so they can indirectly push the composed policy $\pi := \bar{\pi} \circ \phi$ outside the neighborhood even if the policy head looks well-behaved.&lt;/p>
&lt;p>&lt;strong>The fix&lt;/strong>: fold the auxiliary terms into the advantage function $A(s, a)$:&lt;/p>
&lt;p>$$
U(s, a) := A(s, a) - \alpha_R \cdot L_R - \alpha_P \cdot L_P
$$&lt;/p>
&lt;p>Then optimize a PPO-like objective.
This way, the encoder and policy head move together in a way that respects the neighborhood constraint.&lt;/p>
&lt;h3 id="the-data-coverage-problem">The Data Coverage Problem&lt;/h3>
&lt;p>There&amp;rsquo;s a critical practical detail: PPO is on-policy, which means world-model learning can suffer from narrow, correlated coverage if you collect long rollouts from only a few environments.
That&amp;rsquo;s exactly the wrong regime for learning a well-calibrated world model.&lt;/p>
&lt;p>&lt;strong>The solution&lt;/strong>: use many vectorized JAX environments with shorter rollouts instead of a few environments with long rollouts.
This gives much broader state coverage while staying on-policy—crucial because a local guarantee is only helpful if your local data actually cover enough of the neighborhood to learn the model well.&lt;/p>
&lt;h2 id="implementation-details">Implementation Details&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Framework&lt;/strong>: JAX-based, for efficient jitted computation and GPU scaling&lt;/li>
&lt;li>&lt;strong>Vectorized environments&lt;/strong>: many parallel JAX-jitted environments with shorter rollouts for better state coverage&lt;/li>
&lt;li>&lt;strong>Reproducibility&lt;/strong>: checked-in &lt;code>uv.lock&lt;/code> for exact dependency reproducibility&lt;/li>
&lt;li>&lt;strong>Benchmarks&lt;/strong>: ALE-57 (57 Atari games), with results matching or exceeding PPO and DeepMDPs&lt;/li>
&lt;li>&lt;strong>Environments&lt;/strong>: uses &lt;code>envpool&lt;/code> for high-throughput Atari simulation with GPU support&lt;/li>
&lt;li>&lt;strong>Code structure&lt;/strong>: modular design separating encoder, policy, world model, and PPO training logic&lt;/li>
&lt;/ul>
&lt;h2 id="why-it-matters">Why It Matters&lt;/h2>
&lt;p>Most auxiliary-loss approaches (even &lt;a href="https://delgrange.me/project/vae_mdp/">VAE-MDPs&lt;/a> and related work) derive their guarantees &lt;strong>on-policy&lt;/strong>, meaning they are valid only for the policy that collected the data.
Deep SPI extends this to show that with controlled updates, the guarantees survive the policy change.
This is especially valuable because:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Monotonic improvement&lt;/strong>: You can reason about whether each update actually helps, not just whether it &lt;em>looks good&lt;/em> in hindsight&lt;/li>
&lt;li>&lt;strong>Representation stability&lt;/strong>: The encoder doesn&amp;rsquo;t degrade as you improve the policy—it stays useful for downstream learning&lt;/li>
&lt;li>&lt;strong>No offline requirement&lt;/strong>: Deep SPI works in online settings; you don&amp;rsquo;t need a pre-collected dataset&lt;/li>
&lt;/ol>
&lt;h2 id="results">Results&lt;/h2>
&lt;p>On ALE-57, Deep SPI matches or exceeds PPO and DeepMDPs while maintaining explicit monotonic improvement bounds.
The algorithm demonstrates that principled methods with guarantees and practical performance need not be in tension.&lt;/p>
&lt;figure id="figure-_ale-57-results-deep-spi-is-competitive-across-multiple-metrics-higher-is-better-for-iqm-interquartile-mean-median-and-mean-returns-lower-is-better-for-optimality-gap_">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img src="https://delgrange.me/post/deep_spi/aggregate-metrics.png" alt="_ALE-57 Results: Deep SPI is competitive across multiple metrics. Higher is better for IQM (interquartile mean), median, and mean returns; lower is better for optimality gap._" loading="lazy" data-zoomable width="100%" />&lt;/div>
&lt;/div>&lt;figcaption>
&lt;em>ALE-57 Results: Deep SPI is competitive across multiple metrics. Higher is better for IQM (interquartile mean), median, and mean returns; lower is better for optimality gap.&lt;/em>
&lt;/figcaption>&lt;/figure>
&lt;figure id="figure-_sample-efficiency-deep-spis-wall-clock-learning-curves-match-strong-baselines-showing-the-guarantees-dont-impose-significant-computational-overhead_">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img src="https://delgrange.me/post/deep_spi/sample-efficiency.png" alt="_Sample efficiency: Deep SPI&amp;#39;s wall-clock learning curves match strong baselines, showing the guarantees don&amp;#39;t impose significant computational overhead._" loading="lazy" data-zoomable width="55%" />&lt;/div>
&lt;/div>&lt;figcaption>
&lt;em>Sample efficiency: Deep SPI&amp;rsquo;s wall-clock learning curves match strong baselines, showing the guarantees don&amp;rsquo;t impose significant computational overhead.&lt;/em>
&lt;/figcaption>&lt;/figure>
&lt;h2 id="learn-more">Learn More&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Paper&lt;/strong>: &lt;a href="https://delgrange.me/publication/delgrange-2025-deepspisafepolicy/">&lt;em>Deep SPI: Safe Policy Improvement via World Models&lt;/em>&lt;/a> (ICLR 2026)&lt;/li>
&lt;li>&lt;strong>Blog post&lt;/strong>: &lt;a href="https://delgrange.me/post/deep_spi/">Deep SPI explainer&lt;/a> with visualizations and detailed worked examples&lt;/li>
&lt;li>&lt;strong>Code&lt;/strong>: &lt;a href="https://github.com/florentdelgrange/deepspi/" target="_blank" rel="noopener">GitHub repository&lt;/a> with reproducible setup and Atari experiments&lt;/li>
&lt;/ul></description></item><item><title>Composing Reinforcement Learning Policies, with Formal Guarantees</title><link>https://delgrange.me/publication/delgrange-2025-synthesis/</link><pubDate>Fri, 23 May 2025 00:00:00 +0000</pubDate><guid>https://delgrange.me/publication/delgrange-2025-synthesis/</guid><description>&lt;p>This work received the &lt;strong>Best Poster Award&lt;/strong> at &lt;a href="https://www.benerl.org/workshop/2025-eindhoven#h.1145sba7zrwi" target="_blank" rel="noopener">BeNeRL 2025&lt;/a>.&lt;/p></description></item><item><title>Composing RL policies, with formal guarantees</title><link>https://delgrange.me/project/composing_rl/</link><pubDate>Mon, 05 May 2025 18:05:41 +0200</pubDate><guid>https://delgrange.me/project/composing_rl/</guid><description>&lt;p>Implementation of the techniques presented in our paper &lt;a href="https://delgrange.me/publication/delgrange-2025-synthesis/">&lt;em>Composing Reinforcement Learning Policies, with Formal Guarantees&lt;/em>&lt;/a>.
The source code can be found on &lt;a href="https://github.com/florentdelgrange/synthesis_from_drl" target="_blank" rel="noopener">GitHub&lt;/a>.&lt;/p>
&lt;p>&lt;strong>This project aims at combining &lt;em>reinforcement learning&lt;/em> (RL) and &lt;em>reactive synthesis&lt;/em> to equip learning agents with reliable control policies in large, complex environments.&lt;/strong>&lt;/p>
&lt;p>While &lt;strong>deep RL&lt;/strong> is very effective for allowing learning agents to solve complex tasks, (1) it requires (extensive) reward engineering to align the user&amp;rsquo;s intentions with the learned agent&amp;rsquo;s behaviors, and (2) the learned agent&amp;rsquo;s policies are not reliable (no guarantee).
&lt;strong>Reactive synthesis&lt;/strong> on the other hand produces reliable control policies that are &lt;strong>guaranteed&lt;/strong> to meet &lt;em>specifications&lt;/em> provided in &lt;em>intuitive formal language&lt;/em>. However, this requires access to an explicit environment&amp;rsquo;s model, which is rarely possible in complex environments; even when it is, synthesis does not scale to high-stakes scenarios.&lt;/p>
&lt;p>This proposed framework tackles those issues through a hierarchical decomposition of the environment into sub-regions/sections that we call &amp;ldquo;&lt;strong>rooms&lt;/strong>&amp;rdquo;.
Given a &lt;strong>graph&lt;/strong> (e.g, &amp;ldquo;map&amp;rdquo;, &amp;ldquo;skill graph&amp;rdquo;) that represent this decomposition, we apply RL in each room to get low-level policies satisfying low-level specifications.
Then, we apply synthesis to produce a high-level planner that selects which policy to apply in each room. The resulting method provides guarantees on the resulting agent&amp;rsquo;s controller, allows for a separation of concerns, and mitigates reward engineering.&lt;/p>
&lt;p>The approach relies on learning &lt;strong>world models&lt;/strong> and &lt;strong>discrete latent spaces&lt;/strong>, which enables the formal verification of the low-level policies (via model-checking). Reactive synthesis then composes with the low-level RL policies and the world models to produce high-level planners with guarantees.&lt;/p>
&lt;img src='https://delgrange.me/post/composing_rl/fusing_low_level_components.gif' width='100%'>
&lt;h2 id="new-rl-algorithm-and-environments">New RL algorithm and environments&lt;/h2>
&lt;p>The project also includes WAE-DQN, an RL algorithm learning a discrete and verifiable world model along with its policy, and new &amp;ldquo;two-level&amp;rdquo; environments:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://youtu.be/crowN8-GaRg" target="_blank" rel="noopener">A large, parameterizable grid world with moving obstacles&lt;/a>&lt;/li>
&lt;li>A 8-room &lt;a href="https://delgrange.me/post/composing_rl/video.mp4">A ViZDoom scenario&lt;/a> with ennemies randomly spawning on the map at regular interval.&lt;/li>
&lt;/ul>
&lt;p>The two environments come with low- and high-level variants.
In the low-level variant, the agent is placed in a &lt;em>room&lt;/em> of the two-level environment and its goal is to reach the exit safely, by avoiding moving obstacles.
In the high-level variant, the goal of the agent is to navigate safely through the rooms composing the environment to reach a target location.&lt;/p></description></item><item><title>Integrating RL and Planning through Optimal Transport World Models</title><link>https://delgrange.me/publication/ropke-2025-integrating-rl-planning-ot-world-models/</link><pubDate>Tue, 01 Apr 2025 00:00:00 +0000</pubDate><guid>https://delgrange.me/publication/ropke-2025-integrating-rl-planning-ot-world-models/</guid><description/></item><item><title>Activating Formal Verification of Deep Reinforcement Learning Policies by Model Checking Bisimilar Latent Space Models</title><link>https://delgrange.me/publication/thesis/</link><pubDate>Tue, 20 Aug 2024 00:00:00 +0000</pubDate><guid>https://delgrange.me/publication/thesis/</guid><description/></item><item><title>The Wasserstein Believer: Learning Belief Updates for Partially Observable Environments through Reliable Latent Space Models</title><link>https://delgrange.me/publication/https-doi-org-10-48550-arxiv-2303-03284/</link><pubDate>Wed, 29 May 2024 00:00:00 +0000</pubDate><guid>https://delgrange.me/publication/https-doi-org-10-48550-arxiv-2303-03284/</guid><description/></item><item><title>WAE-PCN: Wasserstein-autoencoded Pareto Conditioned Networks</title><link>https://delgrange.me/publication/wae-pcn/</link><pubDate>Mon, 29 May 2023 00:00:00 +0000</pubDate><guid>https://delgrange.me/publication/wae-pcn/</guid><description/></item><item><title>Wasserstein Auto-encoded MDPs: Formal Verification of Efficiently Distilled RL Policies with Many-sided Guarantees</title><link>https://delgrange.me/publication/delgrange-2023-wasserstein/</link><pubDate>Sun, 01 Jan 2023 00:00:00 +0000</pubDate><guid>https://delgrange.me/publication/delgrange-2023-wasserstein/</guid><description/></item><item><title>Distillation of RL Policies with Formal Guarantees via Variational Abstraction of Markov Decision Processes</title><link>https://delgrange.me/publication/dblp-journalscorrabs-2112-09655/</link><pubDate>Tue, 28 Jun 2022 00:00:00 +0000</pubDate><guid>https://delgrange.me/publication/dblp-journalscorrabs-2112-09655/</guid><description/></item><item><title>A Framework for Flexibly Guiding Learning Agents</title><link>https://delgrange.me/publication/elbarbari-2022/</link><pubDate>Wed, 01 Jun 2022 00:00:00 +0000</pubDate><guid>https://delgrange.me/publication/elbarbari-2022/</guid><description/></item></channel></rss>