-
Notifications
You must be signed in to change notification settings - Fork 34
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
Question on simplex bijector implementation #283
Comments
Softmax isn't bijective. The one we have now is (maps from d to d-1 dimensional) |
See also #51. |
Betanalpha does discuss a bijective softmax by arbitrarily setting the endpoint logits. Any experience with this? |
That's supported e.g. in GPLikelihoods (see maybe also the discussion in JuliaGaussianProcesses/GPLikelihoods.jl#55). |
Good to know thanks. Though, back to my original intention, I really wish that our simplex bijector could play nicely with GPUs out of the box. Among non-NF bijectors, it seems the simplex bijector is really going to be the big challenge going in that direction. Do we have any plans on how to pursue this? It does seem to me that the softmax approach would be much easier to get this done. |
Actually, nevermind. I just wrote a stick-breaking bijector using array operations based on the implementations of numpyro and tensorflow. If this were to be added to |
On Julia >= 1.9, a CUDA specialization could be put in an extension (possibly could even just be an extension with GPUArrays). |
I do have the feeling that this will have to wait until the batch operation interface is finalized. @torfjelde Do we have an expectation on when that would be? |
There are three main ways to use softmax for simplex transforms. One uses parameter expansion to retain bijectivity: |
Hi,
It appears that
torch.probability
simply uses softmax for the simplex bijector.Is there a reason our simplex transform is much more complicated?
I was also thinking about a GPU-friendly implementation, which the current implementation appears hard do.
The text was updated successfully, but these errors were encountered: