openai / consistency_models

Official repo for consistency models.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

The difference between Loss( f(x0+t_{n+1}*z) , f(x0+t_{n}*z) ) and Loss( f(x0+t_{n+1}*z), x0 )?

ZGCTroy opened this issue · comments

  1. In CT, would it be acceptable to use Loss( f(x0+t_{n+1}*z), x0 ) in place of Loss( f(x0+t_{n+1}*z) , f(x0+t_{n}*z) ) ?
  2. I would like to know if doing so would still comply with the principles of consistency models, or would it completely deviate or only result in a slight decrease in performance?

I think this might just make it a score-based model. Like Yang Songs earlier work, or instead very like EDM. The +1 wouldn't really matter I feel.

Or is it possible to use both Loss( f(x0+t_{n+1}*z), x0 ) and Loss( f(x0+t_{n+1}*z) , f(x0+t_{n}*z) )? The first term enforces the similarity with the ground truth images, while the second term enforces the consistency. Simply using the consistency term would in fact decrease the generation performance or lead to longer training.

loss(x0+t_{n+1}*z), x0) can only enforce the model to learn the expectation of x0, not the target point of the current trajectory. It is a wrong loss term for one step diffusion

loss(x0+t_{n+1}*z), x0) can only enforce the model to learn the expectation of x0, not the target point of the current trajectory. It is a wrong loss term for one step diffusion

Yes, although you can target the GT I think this would actually make the task harder. By trying to target the trajectory you are smoothing the data manifold which makes training easier.