# Why using ground-truth noise in a diffusion model does not work?

**URL:** <https://discuss.huggingface.co/t/why-using-ground-truth-noise-in-a-diffusion-model-does-not-work/48909>\
**Category:** Beginners\
**Created:** [August 1, 2023, 4:16am UTC](https://discuss.huggingface.co/t/why-using-ground-truth-noise-in-a-diffusion-model-does-not-work/48909 "2023-08-01T04:16:42Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Phoenix0617](https://avatars.discourse-cdn.com/v4/letter/p/9fc29f/32.png) [@Phoenix0617](https://discuss.huggingface.co/u/Phoenix0617)\
**Post date:** [August 1, 2023, 4:16am UTC](https://discuss.huggingface.co/t/why-using-ground-truth-noise-in-a-diffusion-model-does-not-work/48909/1 "2023-08-01T04:16:42Z")

</div>

I am learning the diffusion model recently. In the beginning, I did not pay a lot of effort to train the desired U-Net. As we know, the U-Net is trained to predict a noise according to the loss function:

\frac{1}{2} \text{const}(\alpha\_t) \|\epsilon\_\theta - \epsilon\_0 \|^2\_2.

Therefore, I am trying to conduct a very trivial test to verify the whole framework. I just recorded \epsilon\_0 at each step of adding noise, and substitute it to the sampling process.

In my opinion, as the U-Net is trained to predict \epsilon\_0, if I use the ground-truth noise, it should still work. Although this process may lose variation, it is expected to reconstruct the original image.

However, the results imply I am wrong.

When T=300, the sampling process is

 ![Figure_2](https://us1.discourse-cdn.com/hellohellohello/original/3X/2/e/2ee31d3c485954fba35b0c52fbafdc114a34f6b1.png)

The information is totally lost!

So, why does this not work? According to formulations, it should work. What was I missing?
