You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This may be a bit pedantic but, I wonder if there is a bug in the way the log probabilities are calculated for the annealed GMM distribution. My understanding is that annealed sampling uses scores from the ‘noise distribution’ which should reflect a Gaussian perturbed input. I’m assuming you guys achieve this by adding the noise distribution to the original GMM, hence allowing you to calculate the true log probabilities from the same GMM now scaled with the noise sigmas.
However, adding two Gaussian random variables should add the variances from both distributions as shown (taken from Wikipedia)
In this case sigma_x would be the original GMM sigma (which is set to 1), and sigma_y would correspond to the noise level. So shouldn't the calculation in the lines below be using something like sigma = np.sqrt(sigma**2 + self.sigma**2) instead of just the sigma passed in to the function? In my own tests, sampling with these updated sigmas gives more faithful results to the original distribution.
This may be a bit pedantic but, I wonder if there is a bug in the way the log probabilities are calculated for the annealed GMM distribution. My understanding is that annealed sampling uses scores from the ‘noise distribution’ which should reflect a Gaussian perturbed input. I’m assuming you guys achieve this by adding the noise distribution to the original GMM, hence allowing you to calculate the true log probabilities from the same GMM now scaled with the noise sigmas.
However, adding two Gaussian random variables should add the variances from both distributions as shown (taken from Wikipedia)
In this case
sigma_x
would be the original GMM sigma (which is set to 1), andsigma_y
would correspond to the noise level. So shouldn't the calculation in the lines below be using something likesigma = np.sqrt(sigma**2 + self.sigma**2)
instead of just thesigma
passed in to the function? In my own tests, sampling with these updated sigmas gives more faithful results to the original distribution.ncsn/models/gmm.py
Lines 45 to 46 in adb98fb
The text was updated successfully, but these errors were encountered: