Jun 19, 2025
Adam Wei
Part 1
Ambient Diffusion Recap
and Implementations
Learning from "clean" (\(p_0\)) and "corrupt" data (\(q_0\))
\(\exists \sigma_{min}\) s.t. \(d_\mathrm{TV}(p_{\sigma_{min}}, q_{\sigma_{min}}) < \epsilon\)
\(\sigma=1\)
\(\sigma=0\)
\(\sigma=\sigma_{min}\)
Clean Data
Corrupt Data
\(\exists \sigma_{min}\) s.t. \(d_\mathrm{TV}(p_{\sigma_{min}}, q_{\sigma_{min}}) < \epsilon\)
(in this example, \(\epsilon = 0.05\))
\(p_0\)
\(q_0\)
Factors that affect \(\sigma_{min}\):
... but also destroys useful signal
... but also destroys useful signal
More info lost
\(\exists \sigma_{min}\) s.t. \(d_\mathrm{TV}(p_{\sigma_{min}}, q_{\sigma_{min}}) < \epsilon\)
\(\sigma=1\)
\(\sigma=0\)
\(\sigma=\sigma_{min}\)
Denoising Loss
Denoising OR Ambient Loss
\(\mathbb E[\lVert h_\theta(x_t, t) + \frac{\sigma_{min}^2\sqrt{1-\sigma_{t}^2}}{\sigma_t^2-\sigma_{min}^2}x_{t} - \frac{\sigma_{t}^2\sqrt{1-\sigma_{min}^2}}{\sigma_t^2-\sigma_{min}^2} x_{t_{min}} \rVert_2^2]\)
Ambient Loss
Denoising Loss
\(x_0\)-prediction
\(\epsilon\)-prediction
(assumes access to \(x_0\))
(assumes access to \(x_{t_{min}}\))
\(\mathbb E[\lVert h_\theta(x_t, t) - x_0 \rVert_2^2]\)
\(\mathbb E[\lVert h_\theta(x_t, t) - \epsilon \rVert_2^2]\)
\(\mathbb E[\lVert h_\theta(x_t, t) - \frac{\sigma_t^2 (1-\sigma_{min}^2)}{(\sigma_t^2 - \sigma_{min}^2)\sqrt{1-\sigma_t^2}}x_t + \frac{\sigma_t \sqrt{1-\sigma_t^2}\sqrt{1-\sigma_{min}^2}}{\sigma_t^2 - \sigma_{min}^2}x_{t_{min}}\rVert_2^2]\)
Sanity check: ambient loss \(\rightarrow\) denoising loss as \(\sigma_{min} \rightarrow 0\)
Experiments: Test all 4
Implementation details: included for completeness...
Can use OOD data to learn in the low-noise regime...
... more on this next time
Part 2
Sim + Real Experiments
"Clean" Data
"Corrupt" Data
\(|\mathcal{D}_T|=50\)
\(|\mathcal{D}_S|=2000\)
Eval criteria: Success rate for planar pushing across 200 randomized trials
Experiments
Choosing \(\sigma_{min}\): Swept several values on the dataset level
Loss function: Tried all 4 combinations of
{\(x_0\)-prediction, \(\epsilon\)-prediction} x {denoising, ambient}
Preliminary Observations
(will present best results on next slide)
\(|\mathcal{D}_S| = 50\), \(|\mathcal{D}_S| = 2000\), \(\epsilon\)-prediction with denoising loss
\(|\mathcal{D}_S| = 50\), \(|\mathcal{D}_S| = 2000\), \(\epsilon\)-prediction with denoising loss
Part 3
Maze Experiments
GCS
(clean)
RRT
(clean)
Task: Cotrain on GCS and RRT data
Goal: Sample clean and smooth GCS plans
Success Rate: 50%
Average Jerk Squared: 7.5k
100 GCS Demos
Success Rate: 99%
Average Jerk Squared: 2.5k
4950 GCS Demos
Success Rate: 100%
Average Jerk Squared: 17k
4950 RRT Demos
Success Rate: 91%
Average Jerk Squared: 12.5k
Cotraining: 100 GCS Demos, 5000 RRT Demos, \(x_0\)-prediction
Success Rate: 98%
Average Jerk Squared: 5.5k
Ambient: 100 GCS Demos, 5000 RRT Demos, \(x_0\)-prediction ambient loss
See plots for qualitative results
Part 4
Next Experiments
Main goal: Cotrain with ambient diffusion using internet data (Open-X, AgiBot, etc) and/or simulation data
... but first some "stepping stone" experiments
Stepping stone experiments are designed to
Corrupt data: RRT/low quality data from 20-30 different environments
Clean data: GCS data from 2-3 environments
Performance metric: Success rate + smoothness metrics in seen/unseen environments
Purpose: Test learning in the high-noise regime
Purpose: Test learning in the high-noise regime
Task: Pick-and-place objects into specific bins
Clean Data: Demos with the correct logic
Corrupt Data: incorrect logic, Open-X, pick-and-place datasets, datasets with bins, etc
Purpose: Test learning in the low-noise regime
Details outlined in a google doc. Can share link privately if interested