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
Trying to fit a moderately sized dataset (N=218, D=6, 108 trials) with OrthogonalGaussianEmissions is unreasonably slow, taking about 41 seconds per iteration. By contrast, the same model with GaussianEmissions takes about 0.9 seconds per iteration.
@slinderman This is because we don't have a closed form m-step for this emissions class, and so we're defaulting to SGD. The orthogonal C matrices are parameterized by the cayley transform (it's quite clever), and then we take gradients through this transform (instead of on the C matrix itself). If we are willing to live with an approximate m-step, we could probably make this much faster by doing gradient descent on the manifold of orthogonal matrices. It seems like this works quite well and is not too tricky to implement, but it's probably not worth the trouble for now.
One thing I'll do immediately is change the default to be the normal GaussianEmissions, so that users don't end up using the slow version.
The text was updated successfully, but these errors were encountered:
Trying to fit a moderately sized dataset (N=218, D=6, 108 trials) with OrthogonalGaussianEmissions is unreasonably slow, taking about 41 seconds per iteration. By contrast, the same model with GaussianEmissions takes about 0.9 seconds per iteration.
@slinderman This is because we don't have a closed form m-step for this emissions class, and so we're defaulting to SGD. The orthogonal C matrices are parameterized by the cayley transform (it's quite clever), and then we take gradients through this transform (instead of on the C matrix itself). If we are willing to live with an approximate m-step, we could probably make this much faster by doing gradient descent on the manifold of orthogonal matrices. It seems like this works quite well and is not too tricky to implement, but it's probably not worth the trouble for now.
One thing I'll do immediately is change the default to be the normal GaussianEmissions, so that users don't end up using the slow version.
The text was updated successfully, but these errors were encountered: