Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Encoding of discrete states #30

Open
bicycle1885 opened this issue Mar 7, 2023 · 1 comment
Open

Encoding of discrete states #30

bicycle1885 opened this issue Mar 7, 2023 · 1 comment

Comments

@bicycle1885
Copy link
Collaborator

There is a discrepancy of encodings of discrete states:

  • IndependentDiscreteDiffusion assumes the state x is encoded with one-hot encoding.
  • UnifromDiscreteDiffusion assumes the state x is encoded with integers from 1 to #{number of states}.

We should unify the encodings so that different diffusions can be used interchangeably.
I think encoding states with integers from 1 to #{number of states} would be better here because it is simpler and we can drop the dependency on OneHotArrays.jl, which makes the package more light.

@murrellb
Copy link
Member

murrellb commented Mar 7, 2023

This was intentional. There are potential experimental uses that exploit the fact that IndependentDiscreteDiffusion can handle uncertainty, such as using the expected probabilities instead of a sample as x0. This doesn't recover the target, but could do other interesting things, and we don't want to rule it out. It also makes the closed form stuff from the example simpler, which is useful for asking questions about convergence etc. Also, I expect almost all standard use cases will involve UnifromDiscreteDiffusion as a default, and not have to worry about this consistency, and we can leave IndependentDiscreteDiffusion for advanced use. I'd take it out of the example, except I want the closed form version in there for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants