An Expectation-Maximization Algorithm for Training Clean Diffusion Models from Corrupted Observations

Weimin Bai, Yifei Wang, Wenzheng Chen, He Sun
2/3/2026

No official code found. Best implementation: weiminbai/EMDiffusion (5 stars, Apache-2.0, last commit 2024-10-24). 2 more below.

Abstract

Diffusion models excel in solving imaging inverse problems due to their ability to model complex image priors. However, their reliance on large, clean datasets for training limits their practical use where clean data is scarce. In this paper, we propose EMDiffusion, an expectation-maximization (EM) approach to train diffusion models from corrupted observations. Our method alternates between reconstructing clean images from corrupted data using a known diffusion model (E-step) and refining diffusion model weights based on these reconstructions (M-step). This iterative process leads the learned diffusion model to gradually converge to the true clean data distribution. We validate our method through extensive experiments on diverse computational imaging tasks, including random inpainting, denoising, and deblurring, achieving new state-of-the-art performance.

View on arXivView PDF

Code Implementations(3)

Apache-2.0

Official PyTorch implementation of EMDiffusion: 'An Expectation-Maximization Algorithm for Training Clean Diffusion Models from Corrupted Observations'

51C++, CudaOct 24, 20241 years agoApache-2.0
00C++, CudaOct 30, 20247 months ago

Official PyTorch implementation of EMDiffusion: 'An Expectation-Maximization Algorithm for Training Clean Diffusion Models from Corrupted Observations'

11C++, CudaOct 30, 20241 years ago

Similar Papers

Cite this paper

@article{bai2026expectationmaximization,
  title  = {An Expectation-Maximization Algorithm for Training Clean Diffusion Models from Corrupted Observations},
  author = {Weimin Bai and Yifei Wang and Wenzheng Chen and He Sun},
  year   = {2026},
  eprint = {2407.01014},
  archivePrefix = {arXiv},
  doi    = {10.48550/arXiv.2407.01014},
  url    = {https://arxiv.org/abs/2407.01014},
  journal = {NEURIPS 2024 2024}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2407.01014.svg)](https://codeofpaper.com/paper/2407.01014)

Discussion