diff --git a/.doctrees/api.doctree b/.doctrees/api.doctree index f417a234..4b51aadd 100644 Binary files a/.doctrees/api.doctree and b/.doctrees/api.doctree differ diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index 709ec7bd..92883f29 100644 Binary files a/.doctrees/environment.pickle and b/.doctrees/environment.pickle differ diff --git a/.doctrees/notebooks/generalized_gaussian_ssm/cmgf_logistic_regression_demo.doctree b/.doctrees/notebooks/generalized_gaussian_ssm/cmgf_logistic_regression_demo.doctree index 35b033f7..baee9987 100644 Binary files a/.doctrees/notebooks/generalized_gaussian_ssm/cmgf_logistic_regression_demo.doctree and b/.doctrees/notebooks/generalized_gaussian_ssm/cmgf_logistic_regression_demo.doctree differ diff --git a/.doctrees/notebooks/generalized_gaussian_ssm/cmgf_mlp_classification_demo.doctree b/.doctrees/notebooks/generalized_gaussian_ssm/cmgf_mlp_classification_demo.doctree index 379083e4..7ed0bc41 100644 Binary files a/.doctrees/notebooks/generalized_gaussian_ssm/cmgf_mlp_classification_demo.doctree and b/.doctrees/notebooks/generalized_gaussian_ssm/cmgf_mlp_classification_demo.doctree differ diff --git a/.doctrees/notebooks/generalized_gaussian_ssm/cmgf_poisson_demo.doctree b/.doctrees/notebooks/generalized_gaussian_ssm/cmgf_poisson_demo.doctree index fcf354ff..99ecb397 100644 Binary files a/.doctrees/notebooks/generalized_gaussian_ssm/cmgf_poisson_demo.doctree and b/.doctrees/notebooks/generalized_gaussian_ssm/cmgf_poisson_demo.doctree differ diff --git a/.doctrees/notebooks/hmm/autoregressive_hmm.doctree b/.doctrees/notebooks/hmm/autoregressive_hmm.doctree index 0e154e15..bffe4f3f 100644 Binary files a/.doctrees/notebooks/hmm/autoregressive_hmm.doctree and b/.doctrees/notebooks/hmm/autoregressive_hmm.doctree differ diff --git a/.doctrees/notebooks/hmm/casino_hmm_inference.doctree b/.doctrees/notebooks/hmm/casino_hmm_inference.doctree index 72dc5905..ceec8a87 100644 Binary files a/.doctrees/notebooks/hmm/casino_hmm_inference.doctree and b/.doctrees/notebooks/hmm/casino_hmm_inference.doctree differ diff --git a/.doctrees/notebooks/hmm/casino_hmm_learning.doctree b/.doctrees/notebooks/hmm/casino_hmm_learning.doctree index 91331cda..d1e94f36 100644 Binary files a/.doctrees/notebooks/hmm/casino_hmm_learning.doctree and b/.doctrees/notebooks/hmm/casino_hmm_learning.doctree differ diff --git a/.doctrees/notebooks/hmm/gaussian_hmm.doctree b/.doctrees/notebooks/hmm/gaussian_hmm.doctree index a4e364c6..e7e8e925 100644 Binary files a/.doctrees/notebooks/hmm/gaussian_hmm.doctree and b/.doctrees/notebooks/hmm/gaussian_hmm.doctree differ diff --git a/.doctrees/notebooks/linear_gaussian_ssm/kf_linreg.doctree b/.doctrees/notebooks/linear_gaussian_ssm/kf_linreg.doctree index 54f9b5ed..69eff992 100644 Binary files a/.doctrees/notebooks/linear_gaussian_ssm/kf_linreg.doctree and b/.doctrees/notebooks/linear_gaussian_ssm/kf_linreg.doctree differ diff --git a/.doctrees/notebooks/linear_gaussian_ssm/kf_tracking.doctree b/.doctrees/notebooks/linear_gaussian_ssm/kf_tracking.doctree index 4fdb569e..193955a2 100644 Binary files a/.doctrees/notebooks/linear_gaussian_ssm/kf_tracking.doctree and b/.doctrees/notebooks/linear_gaussian_ssm/kf_tracking.doctree differ diff --git a/.doctrees/notebooks/linear_gaussian_ssm/lgssm_hmc.doctree b/.doctrees/notebooks/linear_gaussian_ssm/lgssm_hmc.doctree index 8e5e59ea..ff45711f 100644 Binary files a/.doctrees/notebooks/linear_gaussian_ssm/lgssm_hmc.doctree and b/.doctrees/notebooks/linear_gaussian_ssm/lgssm_hmc.doctree differ diff --git a/.doctrees/notebooks/linear_gaussian_ssm/lgssm_learning.doctree b/.doctrees/notebooks/linear_gaussian_ssm/lgssm_learning.doctree index 596a93e4..e7b77ae9 100644 Binary files a/.doctrees/notebooks/linear_gaussian_ssm/lgssm_learning.doctree and b/.doctrees/notebooks/linear_gaussian_ssm/lgssm_learning.doctree differ diff --git a/.doctrees/notebooks/linear_gaussian_ssm/lgssm_parallel_inference.doctree b/.doctrees/notebooks/linear_gaussian_ssm/lgssm_parallel_inference.doctree index b58eca52..62a83021 100644 Binary files a/.doctrees/notebooks/linear_gaussian_ssm/lgssm_parallel_inference.doctree and b/.doctrees/notebooks/linear_gaussian_ssm/lgssm_parallel_inference.doctree differ diff --git a/.doctrees/notebooks/nonlinear_gaussian_ssm/ekf_mlp.doctree b/.doctrees/notebooks/nonlinear_gaussian_ssm/ekf_mlp.doctree index 540a08b7..e00bf494 100644 Binary files a/.doctrees/notebooks/nonlinear_gaussian_ssm/ekf_mlp.doctree and b/.doctrees/notebooks/nonlinear_gaussian_ssm/ekf_mlp.doctree differ diff --git a/.doctrees/notebooks/nonlinear_gaussian_ssm/ekf_ukf_pendulum.doctree b/.doctrees/notebooks/nonlinear_gaussian_ssm/ekf_ukf_pendulum.doctree index 09573962..be0d0d22 100644 Binary files a/.doctrees/notebooks/nonlinear_gaussian_ssm/ekf_ukf_pendulum.doctree and b/.doctrees/notebooks/nonlinear_gaussian_ssm/ekf_ukf_pendulum.doctree differ diff --git a/.doctrees/notebooks/nonlinear_gaussian_ssm/ekf_ukf_spiral.doctree b/.doctrees/notebooks/nonlinear_gaussian_ssm/ekf_ukf_spiral.doctree index a6eae470..63c6283d 100644 Binary files a/.doctrees/notebooks/nonlinear_gaussian_ssm/ekf_ukf_spiral.doctree and b/.doctrees/notebooks/nonlinear_gaussian_ssm/ekf_ukf_spiral.doctree differ diff --git a/_images/00abd4c88733301bc8e9588389ce97efd14d1e2a53e3699c662ad6c5b558b087.png b/_images/00abd4c88733301bc8e9588389ce97efd14d1e2a53e3699c662ad6c5b558b087.png deleted file mode 100644 index e02ffdeb..00000000 Binary files a/_images/00abd4c88733301bc8e9588389ce97efd14d1e2a53e3699c662ad6c5b558b087.png and /dev/null differ diff --git a/_images/03705c85d1d67848d77fb8810f62b31320c4a87908ae21710b3e0993cc827b6b.png b/_images/03705c85d1d67848d77fb8810f62b31320c4a87908ae21710b3e0993cc827b6b.png deleted file mode 100644 index 5d86b486..00000000 Binary files a/_images/03705c85d1d67848d77fb8810f62b31320c4a87908ae21710b3e0993cc827b6b.png and /dev/null differ diff --git a/_images/03757462ee84538a578475a99a45389c41251d1b7b82a0902b3e2972ae0b7830.png b/_images/03757462ee84538a578475a99a45389c41251d1b7b82a0902b3e2972ae0b7830.png new file mode 100644 index 00000000..c31ff561 Binary files /dev/null and b/_images/03757462ee84538a578475a99a45389c41251d1b7b82a0902b3e2972ae0b7830.png differ diff --git a/_images/06479e2da8e6176990942193a044d57fb03186fcac352c58b09325d6a319025e.png b/_images/06479e2da8e6176990942193a044d57fb03186fcac352c58b09325d6a319025e.png deleted file mode 100644 index 28da57a4..00000000 Binary files a/_images/06479e2da8e6176990942193a044d57fb03186fcac352c58b09325d6a319025e.png and /dev/null differ diff --git a/_images/080c758320419216e19cda8ab9325e2fa3d85994e23f9ffc6b5b2ba6b5c465b7.png b/_images/080c758320419216e19cda8ab9325e2fa3d85994e23f9ffc6b5b2ba6b5c465b7.png deleted file mode 100644 index fd2a2967..00000000 Binary files a/_images/080c758320419216e19cda8ab9325e2fa3d85994e23f9ffc6b5b2ba6b5c465b7.png and /dev/null differ diff --git a/_images/0a68df3e026b88e74e040626f693f181422f1f965c187f1a74b103d91f9e17b2.png b/_images/0a68df3e026b88e74e040626f693f181422f1f965c187f1a74b103d91f9e17b2.png new file mode 100644 index 00000000..e59f5ac3 Binary files /dev/null and b/_images/0a68df3e026b88e74e040626f693f181422f1f965c187f1a74b103d91f9e17b2.png differ diff --git a/_images/0adf22464d7f435620598aea06069f4344d96ebb7c20e1ab45fbc2eb6d5d00c7.png b/_images/0adf22464d7f435620598aea06069f4344d96ebb7c20e1ab45fbc2eb6d5d00c7.png deleted file mode 100644 index 7b377ff9..00000000 Binary files a/_images/0adf22464d7f435620598aea06069f4344d96ebb7c20e1ab45fbc2eb6d5d00c7.png and /dev/null differ diff --git a/_images/0b46e049fa3cf8be995407500af2212fbb9580f32acc08ac7efc9871b8a01383.png b/_images/0b46e049fa3cf8be995407500af2212fbb9580f32acc08ac7efc9871b8a01383.png deleted file mode 100644 index dc19d9c7..00000000 Binary files a/_images/0b46e049fa3cf8be995407500af2212fbb9580f32acc08ac7efc9871b8a01383.png and /dev/null differ diff --git a/_images/0b881e82519134a37a2774bb436dd22f24bc528acdaceb56a95690802869043c.png b/_images/0b881e82519134a37a2774bb436dd22f24bc528acdaceb56a95690802869043c.png new file mode 100644 index 00000000..5e90dc2a Binary files /dev/null and b/_images/0b881e82519134a37a2774bb436dd22f24bc528acdaceb56a95690802869043c.png differ diff --git a/_images/d8df222a447dec631ae9ba39991e65eb76e7e91a94321c955ff5b6121d1a01ed.png b/_images/103e44c8aec7e17eb94eab0e39fab5105c35177bdc27d01a1789800db4e352d1.png similarity index 99% rename from _images/d8df222a447dec631ae9ba39991e65eb76e7e91a94321c955ff5b6121d1a01ed.png rename to _images/103e44c8aec7e17eb94eab0e39fab5105c35177bdc27d01a1789800db4e352d1.png index c1bf418c..abae7788 100644 Binary files a/_images/d8df222a447dec631ae9ba39991e65eb76e7e91a94321c955ff5b6121d1a01ed.png and b/_images/103e44c8aec7e17eb94eab0e39fab5105c35177bdc27d01a1789800db4e352d1.png differ diff --git a/_images/135c33916d94cea32601a68e4c6ff010ef9963e2816acc58008e26607cbcd6e8.png b/_images/135c33916d94cea32601a68e4c6ff010ef9963e2816acc58008e26607cbcd6e8.png new file mode 100644 index 00000000..a837a068 Binary files /dev/null and b/_images/135c33916d94cea32601a68e4c6ff010ef9963e2816acc58008e26607cbcd6e8.png differ diff --git a/_images/17908d569fb701f26a4a6599f6d64d9911fe1ea5e9c5060c368cb51ae5f3a35b.png b/_images/17908d569fb701f26a4a6599f6d64d9911fe1ea5e9c5060c368cb51ae5f3a35b.png new file mode 100644 index 00000000..ccd209ec Binary files /dev/null and b/_images/17908d569fb701f26a4a6599f6d64d9911fe1ea5e9c5060c368cb51ae5f3a35b.png differ diff --git a/_images/17e27b8b0c858725bd87f6eec19aa846180651b64e6487aac6dc1f728e9bbe8e.png b/_images/17e27b8b0c858725bd87f6eec19aa846180651b64e6487aac6dc1f728e9bbe8e.png deleted file mode 100644 index c1e25207..00000000 Binary files a/_images/17e27b8b0c858725bd87f6eec19aa846180651b64e6487aac6dc1f728e9bbe8e.png and /dev/null differ diff --git a/_images/18da6051c9c8466e2c4761b3b3c44768a3f531aeef432d98cc44fe1edd4794cf.png b/_images/18da6051c9c8466e2c4761b3b3c44768a3f531aeef432d98cc44fe1edd4794cf.png deleted file mode 100644 index f6fbb1bd..00000000 Binary files a/_images/18da6051c9c8466e2c4761b3b3c44768a3f531aeef432d98cc44fe1edd4794cf.png and /dev/null differ diff --git a/_images/1f6af34808c383447d5792b76b341648fa0eae69e094108643aa7f46b33bb428.png b/_images/1f6af34808c383447d5792b76b341648fa0eae69e094108643aa7f46b33bb428.png new file mode 100644 index 00000000..1cb5f0a8 Binary files /dev/null and b/_images/1f6af34808c383447d5792b76b341648fa0eae69e094108643aa7f46b33bb428.png differ diff --git a/_images/200444e7ebc5e0ccae8f3888ad4f871790680c8ef28e89cc2bbdeb4cf767b56a.png b/_images/200444e7ebc5e0ccae8f3888ad4f871790680c8ef28e89cc2bbdeb4cf767b56a.png new file mode 100644 index 00000000..9ce41df8 Binary files /dev/null and b/_images/200444e7ebc5e0ccae8f3888ad4f871790680c8ef28e89cc2bbdeb4cf767b56a.png differ diff --git a/_images/222b5cd7f41c432d4b20b608a0b008077e0fbd158287421497a81ab900a06642.png b/_images/222b5cd7f41c432d4b20b608a0b008077e0fbd158287421497a81ab900a06642.png new file mode 100644 index 00000000..0435df33 Binary files /dev/null and b/_images/222b5cd7f41c432d4b20b608a0b008077e0fbd158287421497a81ab900a06642.png differ diff --git a/_images/252c662a9ae585c3ec8b3b6d7de7b7309a51519a2176a017faa4f02a62a0549c.png b/_images/252c662a9ae585c3ec8b3b6d7de7b7309a51519a2176a017faa4f02a62a0549c.png new file mode 100644 index 00000000..465e9e8d Binary files /dev/null and b/_images/252c662a9ae585c3ec8b3b6d7de7b7309a51519a2176a017faa4f02a62a0549c.png differ diff --git a/_images/2551d105b38eb2f9de1dd4be0b542c5e1281686d967ed2b1b134a342c8bdfbaf.png b/_images/2551d105b38eb2f9de1dd4be0b542c5e1281686d967ed2b1b134a342c8bdfbaf.png new file mode 100644 index 00000000..77959d70 Binary files /dev/null and b/_images/2551d105b38eb2f9de1dd4be0b542c5e1281686d967ed2b1b134a342c8bdfbaf.png differ diff --git a/_images/e77985327dbba218c44ffd7d5aef34dd145fd334bf06cb48afaba84166fb2326.png b/_images/2e58d28b7e191a47ef0a87e26a3488aee8d65b3eb43377df9a32a79c68d9aa04.png similarity index 99% rename from _images/e77985327dbba218c44ffd7d5aef34dd145fd334bf06cb48afaba84166fb2326.png rename to _images/2e58d28b7e191a47ef0a87e26a3488aee8d65b3eb43377df9a32a79c68d9aa04.png index dfb65396..b9fa747c 100644 Binary files a/_images/e77985327dbba218c44ffd7d5aef34dd145fd334bf06cb48afaba84166fb2326.png and b/_images/2e58d28b7e191a47ef0a87e26a3488aee8d65b3eb43377df9a32a79c68d9aa04.png differ diff --git a/_images/2ec04df7a5ddde84220c553f3a6380194e5f4e400f9c580a8e165a002bc3e38c.png b/_images/2ec04df7a5ddde84220c553f3a6380194e5f4e400f9c580a8e165a002bc3e38c.png new file mode 100644 index 00000000..6edba659 Binary files /dev/null and b/_images/2ec04df7a5ddde84220c553f3a6380194e5f4e400f9c580a8e165a002bc3e38c.png differ diff --git a/_images/30379c9df19083f2902969a8281c4ca2742c800b09977a0170301110f342f2e0.png b/_images/30379c9df19083f2902969a8281c4ca2742c800b09977a0170301110f342f2e0.png deleted file mode 100644 index 0a41fbc5..00000000 Binary files a/_images/30379c9df19083f2902969a8281c4ca2742c800b09977a0170301110f342f2e0.png and /dev/null differ diff --git a/_images/31123478ba1eaa4341a8f1a02467ebb13885cdd27803c9bc81bfeba6194434a6.png b/_images/31123478ba1eaa4341a8f1a02467ebb13885cdd27803c9bc81bfeba6194434a6.png deleted file mode 100644 index 38719032..00000000 Binary files a/_images/31123478ba1eaa4341a8f1a02467ebb13885cdd27803c9bc81bfeba6194434a6.png and /dev/null differ diff --git a/_images/d5b209a73506fdacdb16962e3da5bf260743fcea6510e4ac29c15d897cdef276.png b/_images/33976f0f40bd39e97a64bf4f0dcbbe79fef5d16e67821cadc0309ea9c51ca56c.png similarity index 99% rename from _images/d5b209a73506fdacdb16962e3da5bf260743fcea6510e4ac29c15d897cdef276.png rename to _images/33976f0f40bd39e97a64bf4f0dcbbe79fef5d16e67821cadc0309ea9c51ca56c.png index 21993de5..d6bfe130 100644 Binary files a/_images/d5b209a73506fdacdb16962e3da5bf260743fcea6510e4ac29c15d897cdef276.png and b/_images/33976f0f40bd39e97a64bf4f0dcbbe79fef5d16e67821cadc0309ea9c51ca56c.png differ diff --git a/_images/e12d61c1fd0f9c3e885b48759488571088f050813912e9dbdad64041c2d36dc1.png b/_images/33f11bf82640bbd15bad15a77ca736574dfc9a61baec9d5c11ba72d30512f681.png similarity index 99% rename from _images/e12d61c1fd0f9c3e885b48759488571088f050813912e9dbdad64041c2d36dc1.png rename to _images/33f11bf82640bbd15bad15a77ca736574dfc9a61baec9d5c11ba72d30512f681.png index 17e50c7f..a6572673 100644 Binary files a/_images/e12d61c1fd0f9c3e885b48759488571088f050813912e9dbdad64041c2d36dc1.png and b/_images/33f11bf82640bbd15bad15a77ca736574dfc9a61baec9d5c11ba72d30512f681.png differ diff --git a/_images/364817e02926ed6c030c2913a3741c219ee3f75b8981d800f6d46cb9295df95d.png b/_images/347df011cfab6dfe9e40d06883172d0c54690724a220847f222bc21133c47a2c.png similarity index 98% rename from _images/364817e02926ed6c030c2913a3741c219ee3f75b8981d800f6d46cb9295df95d.png rename to _images/347df011cfab6dfe9e40d06883172d0c54690724a220847f222bc21133c47a2c.png index a3ba400a..51b3408e 100644 Binary files a/_images/364817e02926ed6c030c2913a3741c219ee3f75b8981d800f6d46cb9295df95d.png and b/_images/347df011cfab6dfe9e40d06883172d0c54690724a220847f222bc21133c47a2c.png differ diff --git a/_images/492407c50a043f07f5fdaaa3710db407c9e08fa0b357dba1ed3db645c78a26e8.png b/_images/34f39e4f23c00bd7ec1af1dd735084b7bade02aec516acf60ef81331bc3400ba.png similarity index 98% rename from _images/492407c50a043f07f5fdaaa3710db407c9e08fa0b357dba1ed3db645c78a26e8.png rename to _images/34f39e4f23c00bd7ec1af1dd735084b7bade02aec516acf60ef81331bc3400ba.png index 6c283996..425c9cc8 100644 Binary files a/_images/492407c50a043f07f5fdaaa3710db407c9e08fa0b357dba1ed3db645c78a26e8.png and b/_images/34f39e4f23c00bd7ec1af1dd735084b7bade02aec516acf60ef81331bc3400ba.png differ diff --git a/_images/374432d8bb5129e6d4473e8c82f26787a28a70d0c63d135aba1b18f80481d962.png b/_images/374432d8bb5129e6d4473e8c82f26787a28a70d0c63d135aba1b18f80481d962.png new file mode 100644 index 00000000..ed279cc4 Binary files /dev/null and b/_images/374432d8bb5129e6d4473e8c82f26787a28a70d0c63d135aba1b18f80481d962.png differ diff --git a/_images/3a3ad0df99aac8e2de415c1b330fae0659d12c797485508578b98f9c9986b6e5.png b/_images/3a3ad0df99aac8e2de415c1b330fae0659d12c797485508578b98f9c9986b6e5.png new file mode 100644 index 00000000..84d1011d Binary files /dev/null and b/_images/3a3ad0df99aac8e2de415c1b330fae0659d12c797485508578b98f9c9986b6e5.png differ diff --git a/_images/c281c94298347983495757caf2e00aad3e3a6517676b6ac041e8d39d171aece6.png b/_images/3e37d1e3ec1685ed42a1c64d10533865b64d6a8a31c5127d2d5f94eba7c6c6d0.png similarity index 99% rename from _images/c281c94298347983495757caf2e00aad3e3a6517676b6ac041e8d39d171aece6.png rename to _images/3e37d1e3ec1685ed42a1c64d10533865b64d6a8a31c5127d2d5f94eba7c6c6d0.png index fea331d3..a9455800 100644 Binary files a/_images/c281c94298347983495757caf2e00aad3e3a6517676b6ac041e8d39d171aece6.png and b/_images/3e37d1e3ec1685ed42a1c64d10533865b64d6a8a31c5127d2d5f94eba7c6c6d0.png differ diff --git a/_images/401c87058d9d735f5cbf8160b9e469dc4423dfd6975762df89a9f14688c44107.png b/_images/401c87058d9d735f5cbf8160b9e469dc4423dfd6975762df89a9f14688c44107.png deleted file mode 100644 index 0b5c410a..00000000 Binary files a/_images/401c87058d9d735f5cbf8160b9e469dc4423dfd6975762df89a9f14688c44107.png and /dev/null differ diff --git a/_images/4079e1c464bb4d48cc9825973f64b6495a790e4230943e18b3045b3e8601677b.png b/_images/4079e1c464bb4d48cc9825973f64b6495a790e4230943e18b3045b3e8601677b.png deleted file mode 100644 index c1dfc56f..00000000 Binary files a/_images/4079e1c464bb4d48cc9825973f64b6495a790e4230943e18b3045b3e8601677b.png and /dev/null differ diff --git a/_images/3f70164bbe30f5b734cce4319c7c75ef465249e4544031aa2292d88396af948a.png b/_images/42edf4af7ef38bae819032697bd5f8f4ce452ad30bbc0fb4a85a43c8577ffaa8.png similarity index 99% rename from _images/3f70164bbe30f5b734cce4319c7c75ef465249e4544031aa2292d88396af948a.png rename to _images/42edf4af7ef38bae819032697bd5f8f4ce452ad30bbc0fb4a85a43c8577ffaa8.png index e76f2c46..d40a96fc 100644 Binary files a/_images/3f70164bbe30f5b734cce4319c7c75ef465249e4544031aa2292d88396af948a.png and b/_images/42edf4af7ef38bae819032697bd5f8f4ce452ad30bbc0fb4a85a43c8577ffaa8.png differ diff --git a/_images/45614df7d3a51750e46fb13554db081d8221e978ceb7e9613ba5a4751ea99f06.png b/_images/45614df7d3a51750e46fb13554db081d8221e978ceb7e9613ba5a4751ea99f06.png deleted file mode 100644 index c6ec2665..00000000 Binary files a/_images/45614df7d3a51750e46fb13554db081d8221e978ceb7e9613ba5a4751ea99f06.png and /dev/null differ diff --git a/_images/46bbe6a30190388838faadd8e52f3903d55bb6e9a478a52bdbc6d87aefe934b9.png b/_images/46bbe6a30190388838faadd8e52f3903d55bb6e9a478a52bdbc6d87aefe934b9.png new file mode 100644 index 00000000..a9edf3d8 Binary files /dev/null and b/_images/46bbe6a30190388838faadd8e52f3903d55bb6e9a478a52bdbc6d87aefe934b9.png differ diff --git a/_images/490b92bead87f97e6d149fbd076a2fa46785affb2f143fb9ee84a711e2c726ac.png b/_images/490b92bead87f97e6d149fbd076a2fa46785affb2f143fb9ee84a711e2c726ac.png new file mode 100644 index 00000000..b240f5dc Binary files /dev/null and b/_images/490b92bead87f97e6d149fbd076a2fa46785affb2f143fb9ee84a711e2c726ac.png differ diff --git a/_images/4c8c77ad0f8a891fcf6c38c1b3f7af1823052f3f7a10654e129bec57df3399d9.png b/_images/4c8c77ad0f8a891fcf6c38c1b3f7af1823052f3f7a10654e129bec57df3399d9.png new file mode 100644 index 00000000..431f85bb Binary files /dev/null and b/_images/4c8c77ad0f8a891fcf6c38c1b3f7af1823052f3f7a10654e129bec57df3399d9.png differ diff --git a/_images/4e90bb72f46e93d78fd5ef4e3911af39230413f91cfecf69ecec744f23745315.png b/_images/4e90bb72f46e93d78fd5ef4e3911af39230413f91cfecf69ecec744f23745315.png deleted file mode 100644 index c9e933a0..00000000 Binary files a/_images/4e90bb72f46e93d78fd5ef4e3911af39230413f91cfecf69ecec744f23745315.png and /dev/null differ diff --git a/_images/7477da020ff85f0a1e1a76516eec236376fd9c9c727d433bcf8ff053017e8761.png b/_images/4f1176f07dfaef2084cb09615143af14b2dedb12810d1f04c0bb322c7b3ea170.png similarity index 99% rename from _images/7477da020ff85f0a1e1a76516eec236376fd9c9c727d433bcf8ff053017e8761.png rename to _images/4f1176f07dfaef2084cb09615143af14b2dedb12810d1f04c0bb322c7b3ea170.png index 73923fb8..d055953a 100644 Binary files a/_images/7477da020ff85f0a1e1a76516eec236376fd9c9c727d433bcf8ff053017e8761.png and b/_images/4f1176f07dfaef2084cb09615143af14b2dedb12810d1f04c0bb322c7b3ea170.png differ diff --git a/_images/4fb6520ceec2d481e3717f36d88882d5bbc868886b6e281af30f404639e4f3d3.png b/_images/4fb6520ceec2d481e3717f36d88882d5bbc868886b6e281af30f404639e4f3d3.png deleted file mode 100644 index 257f25bd..00000000 Binary files a/_images/4fb6520ceec2d481e3717f36d88882d5bbc868886b6e281af30f404639e4f3d3.png and /dev/null differ diff --git a/_images/912852e897a0b9ead0b277d985aa56667a46b2ea188f8d6b7be26dad5f7d9bc5.png b/_images/52c5c0de6e0029cf5c89756bdee8ce1bd7e0373adda03522d3de93638161f5f3.png similarity index 99% rename from _images/912852e897a0b9ead0b277d985aa56667a46b2ea188f8d6b7be26dad5f7d9bc5.png rename to _images/52c5c0de6e0029cf5c89756bdee8ce1bd7e0373adda03522d3de93638161f5f3.png index 28a68f30..6cda7dca 100644 Binary files a/_images/912852e897a0b9ead0b277d985aa56667a46b2ea188f8d6b7be26dad5f7d9bc5.png and b/_images/52c5c0de6e0029cf5c89756bdee8ce1bd7e0373adda03522d3de93638161f5f3.png differ diff --git a/_images/53c6173fac7ea7e6227fdbd4823ba192e2e10e89df784436ff7bc100accb7324.png b/_images/53c6173fac7ea7e6227fdbd4823ba192e2e10e89df784436ff7bc100accb7324.png deleted file mode 100644 index 79717eec..00000000 Binary files a/_images/53c6173fac7ea7e6227fdbd4823ba192e2e10e89df784436ff7bc100accb7324.png and /dev/null differ diff --git a/_images/53ca183780171592178214565140a37b93410e4345b2f844a35fac693ef52d19.png b/_images/53ca183780171592178214565140a37b93410e4345b2f844a35fac693ef52d19.png new file mode 100644 index 00000000..471a4c4a Binary files /dev/null and b/_images/53ca183780171592178214565140a37b93410e4345b2f844a35fac693ef52d19.png differ diff --git a/_images/5c48e0cad1fc6ee6db1f255ff10b0d67102498e6bdb58a560843062936791be3.png b/_images/5c48e0cad1fc6ee6db1f255ff10b0d67102498e6bdb58a560843062936791be3.png new file mode 100644 index 00000000..4b29cafe Binary files /dev/null and b/_images/5c48e0cad1fc6ee6db1f255ff10b0d67102498e6bdb58a560843062936791be3.png differ diff --git a/_images/5f8185295d695cd446ed7809897728c7f514dce1736084ba73d7c1cf27f62c72.png b/_images/5f8185295d695cd446ed7809897728c7f514dce1736084ba73d7c1cf27f62c72.png new file mode 100644 index 00000000..819bd5b4 Binary files /dev/null and b/_images/5f8185295d695cd446ed7809897728c7f514dce1736084ba73d7c1cf27f62c72.png differ diff --git a/_images/61038dd319063c8346f88a71ce3356b74d209e7e413cce6d02c63fb5f2fa0bd8.png b/_images/61038dd319063c8346f88a71ce3356b74d209e7e413cce6d02c63fb5f2fa0bd8.png deleted file mode 100644 index e5e1f4de..00000000 Binary files a/_images/61038dd319063c8346f88a71ce3356b74d209e7e413cce6d02c63fb5f2fa0bd8.png and /dev/null differ diff --git a/_images/62ff5ce8a0e3b6a38ab4689790bb0be9b1a32800b0824ff8a5b4706ba4e03603.png b/_images/62ff5ce8a0e3b6a38ab4689790bb0be9b1a32800b0824ff8a5b4706ba4e03603.png deleted file mode 100644 index a383eee3..00000000 Binary files a/_images/62ff5ce8a0e3b6a38ab4689790bb0be9b1a32800b0824ff8a5b4706ba4e03603.png and /dev/null differ diff --git a/_images/641bd290fa1c3c4a57f89bc31ac6afab58e534d88ead21be50441ca6005c5746.png b/_images/641bd290fa1c3c4a57f89bc31ac6afab58e534d88ead21be50441ca6005c5746.png deleted file mode 100644 index 9f0e70eb..00000000 Binary files a/_images/641bd290fa1c3c4a57f89bc31ac6afab58e534d88ead21be50441ca6005c5746.png and /dev/null differ diff --git a/_images/6736638c00a4886688640c5993de08c84d4e1cdcbe9bfd9321ae92a5baf1bcf8.png b/_images/6736638c00a4886688640c5993de08c84d4e1cdcbe9bfd9321ae92a5baf1bcf8.png deleted file mode 100644 index 96e285ba..00000000 Binary files a/_images/6736638c00a4886688640c5993de08c84d4e1cdcbe9bfd9321ae92a5baf1bcf8.png and /dev/null differ diff --git a/_images/6ce5cbe503128a233aaa126b76d0ce557e120b5d7bd30ad3b9acfd5096eccbcf.png b/_images/6d28d58e9e1955e8f3b6fbaf9e18ca75ace34b35755be23288de6c7f701c4133.png similarity index 99% rename from _images/6ce5cbe503128a233aaa126b76d0ce557e120b5d7bd30ad3b9acfd5096eccbcf.png rename to _images/6d28d58e9e1955e8f3b6fbaf9e18ca75ace34b35755be23288de6c7f701c4133.png index a332ab1d..fb839621 100644 Binary files a/_images/6ce5cbe503128a233aaa126b76d0ce557e120b5d7bd30ad3b9acfd5096eccbcf.png and b/_images/6d28d58e9e1955e8f3b6fbaf9e18ca75ace34b35755be23288de6c7f701c4133.png differ diff --git a/_images/6d49cc06abcacd2269cee10abadfb8f78c17cc09e9246c2709fe78cb17780e3e.png b/_images/6d49cc06abcacd2269cee10abadfb8f78c17cc09e9246c2709fe78cb17780e3e.png deleted file mode 100644 index 302e405b..00000000 Binary files a/_images/6d49cc06abcacd2269cee10abadfb8f78c17cc09e9246c2709fe78cb17780e3e.png and /dev/null differ diff --git a/_images/3ac13913497b3f7174d7fee9e1ede4256a8627002d19c6495ab42357213673b6.png b/_images/6f75657f78396bd5265c5f5ed46aaeece4bca1c86b65b4531b24d1c8b6460a9f.png similarity index 99% rename from _images/3ac13913497b3f7174d7fee9e1ede4256a8627002d19c6495ab42357213673b6.png rename to _images/6f75657f78396bd5265c5f5ed46aaeece4bca1c86b65b4531b24d1c8b6460a9f.png index 73349363..c7807675 100644 Binary files a/_images/3ac13913497b3f7174d7fee9e1ede4256a8627002d19c6495ab42357213673b6.png and b/_images/6f75657f78396bd5265c5f5ed46aaeece4bca1c86b65b4531b24d1c8b6460a9f.png differ diff --git a/_images/70de64032b50e5070e43a2492c6a7535131ff5cda091f003e7357b80dada8278.png b/_images/70de64032b50e5070e43a2492c6a7535131ff5cda091f003e7357b80dada8278.png new file mode 100644 index 00000000..49e28d99 Binary files /dev/null and b/_images/70de64032b50e5070e43a2492c6a7535131ff5cda091f003e7357b80dada8278.png differ diff --git a/_images/7103a7b4190a3a7cfdd88bfdd9291e74f3033b0fb69bb07b3f5827e8cd9d44e1.png b/_images/7103a7b4190a3a7cfdd88bfdd9291e74f3033b0fb69bb07b3f5827e8cd9d44e1.png new file mode 100644 index 00000000..c8d1bccc Binary files /dev/null and b/_images/7103a7b4190a3a7cfdd88bfdd9291e74f3033b0fb69bb07b3f5827e8cd9d44e1.png differ diff --git a/_images/71d8033ad96101d35a66841c47cf23f9a2ef33d185324a416068537055678d13.png b/_images/71d8033ad96101d35a66841c47cf23f9a2ef33d185324a416068537055678d13.png new file mode 100644 index 00000000..bcd36e10 Binary files /dev/null and b/_images/71d8033ad96101d35a66841c47cf23f9a2ef33d185324a416068537055678d13.png differ diff --git a/_images/741d8d95406e5e30ad2053d8a4e0078ddb99b1e4198429bc401372e14baffe59.png b/_images/741d8d95406e5e30ad2053d8a4e0078ddb99b1e4198429bc401372e14baffe59.png deleted file mode 100644 index 820effdc..00000000 Binary files a/_images/741d8d95406e5e30ad2053d8a4e0078ddb99b1e4198429bc401372e14baffe59.png and /dev/null differ diff --git a/_images/7592e6e5e23f34f065465f223ee38095a809e8c66013b51b925373bb38ab407a.png b/_images/7592e6e5e23f34f065465f223ee38095a809e8c66013b51b925373bb38ab407a.png new file mode 100644 index 00000000..2c24532d Binary files /dev/null and b/_images/7592e6e5e23f34f065465f223ee38095a809e8c66013b51b925373bb38ab407a.png differ diff --git a/_images/77923aa40413b2450be3d251a91d128cc501d212b5700083d59167deccb96a3b.png b/_images/77923aa40413b2450be3d251a91d128cc501d212b5700083d59167deccb96a3b.png new file mode 100644 index 00000000..43aa8081 Binary files /dev/null and b/_images/77923aa40413b2450be3d251a91d128cc501d212b5700083d59167deccb96a3b.png differ diff --git a/_images/7ab4124e920b3d3d3c41093ecc64fac0bc5b2bcb256e770ffc1f1917e4f9f821.png b/_images/7ab4124e920b3d3d3c41093ecc64fac0bc5b2bcb256e770ffc1f1917e4f9f821.png new file mode 100644 index 00000000..be39f031 Binary files /dev/null and b/_images/7ab4124e920b3d3d3c41093ecc64fac0bc5b2bcb256e770ffc1f1917e4f9f821.png differ diff --git a/_images/6d982d6f5c887695bcbc872c1c6a1ca52a4230fb8a450a5d7691ef75cda702ff.png b/_images/7ad34baa6add7e5ea6ecaca3cb1f36061f110d791fa3a1106c88e4a17abd0292.png similarity index 99% rename from _images/6d982d6f5c887695bcbc872c1c6a1ca52a4230fb8a450a5d7691ef75cda702ff.png rename to _images/7ad34baa6add7e5ea6ecaca3cb1f36061f110d791fa3a1106c88e4a17abd0292.png index 12b79556..f0663a3b 100644 Binary files a/_images/6d982d6f5c887695bcbc872c1c6a1ca52a4230fb8a450a5d7691ef75cda702ff.png and b/_images/7ad34baa6add7e5ea6ecaca3cb1f36061f110d791fa3a1106c88e4a17abd0292.png differ diff --git a/_images/7b05874294268d417c2435cffbd61cac5f0e7b156bd2b8573ac51f7e817efacc.png b/_images/7b05874294268d417c2435cffbd61cac5f0e7b156bd2b8573ac51f7e817efacc.png deleted file mode 100644 index 86cb96f4..00000000 Binary files a/_images/7b05874294268d417c2435cffbd61cac5f0e7b156bd2b8573ac51f7e817efacc.png and /dev/null differ diff --git a/_images/dbe3de28f7bf1b76f4f0bda318d54276f57b8beed90336a58352ab612ba916dd.png b/_images/7bfc3841ca38ef9064be11bbd84bce0ccee40c2732617dcad016ba345e29c2d1.png similarity index 99% rename from _images/dbe3de28f7bf1b76f4f0bda318d54276f57b8beed90336a58352ab612ba916dd.png rename to _images/7bfc3841ca38ef9064be11bbd84bce0ccee40c2732617dcad016ba345e29c2d1.png index f68df293..1fc7a29a 100644 Binary files a/_images/dbe3de28f7bf1b76f4f0bda318d54276f57b8beed90336a58352ab612ba916dd.png and b/_images/7bfc3841ca38ef9064be11bbd84bce0ccee40c2732617dcad016ba345e29c2d1.png differ diff --git a/_images/7c2ce46cf79004e14b6e8ac2e851dd21e2fa357fb5981a03fc852eb014fb0a8a.png b/_images/7c2ce46cf79004e14b6e8ac2e851dd21e2fa357fb5981a03fc852eb014fb0a8a.png new file mode 100644 index 00000000..86a190ed Binary files /dev/null and b/_images/7c2ce46cf79004e14b6e8ac2e851dd21e2fa357fb5981a03fc852eb014fb0a8a.png differ diff --git a/_images/7d3e708083572e35800f99676d144ab22d1ce4afe9cee8ac907e27b320390584.png b/_images/7d3e708083572e35800f99676d144ab22d1ce4afe9cee8ac907e27b320390584.png new file mode 100644 index 00000000..a3de36d1 Binary files /dev/null and b/_images/7d3e708083572e35800f99676d144ab22d1ce4afe9cee8ac907e27b320390584.png differ diff --git a/_images/7dd828480463696e630c70d3a0f9f30ec43b44fb8e966201ed37e99d59164f25.png b/_images/7dd828480463696e630c70d3a0f9f30ec43b44fb8e966201ed37e99d59164f25.png new file mode 100644 index 00000000..6ff8ee25 Binary files /dev/null and b/_images/7dd828480463696e630c70d3a0f9f30ec43b44fb8e966201ed37e99d59164f25.png differ diff --git a/_images/7e48d7bf10309b40a4a8c5accae776521f69bc6067646e8e7988a9c8a2ee98e9.png b/_images/7e48d7bf10309b40a4a8c5accae776521f69bc6067646e8e7988a9c8a2ee98e9.png new file mode 100644 index 00000000..ee39339b Binary files /dev/null and b/_images/7e48d7bf10309b40a4a8c5accae776521f69bc6067646e8e7988a9c8a2ee98e9.png differ diff --git a/_images/8010ea799ccd6c3945b616f07cd65b982102ff49f25587484b606128fccfd821.png b/_images/8010ea799ccd6c3945b616f07cd65b982102ff49f25587484b606128fccfd821.png new file mode 100644 index 00000000..3814969b Binary files /dev/null and b/_images/8010ea799ccd6c3945b616f07cd65b982102ff49f25587484b606128fccfd821.png differ diff --git a/_images/806686be934d28b2a378817388a817c6898a1266d8be078707d810a99bc6033b.png b/_images/806686be934d28b2a378817388a817c6898a1266d8be078707d810a99bc6033b.png new file mode 100644 index 00000000..b9c52a05 Binary files /dev/null and b/_images/806686be934d28b2a378817388a817c6898a1266d8be078707d810a99bc6033b.png differ diff --git a/_images/810c3015fa8c55416bc822fabf71d294e480be029eb7693178ffcbb906f96368.png b/_images/810c3015fa8c55416bc822fabf71d294e480be029eb7693178ffcbb906f96368.png deleted file mode 100644 index b9d1c461..00000000 Binary files a/_images/810c3015fa8c55416bc822fabf71d294e480be029eb7693178ffcbb906f96368.png and /dev/null differ diff --git a/_images/65d1c236bad54446d77b40faf6fe2005b50f5922102d79ce9b639224019bacf5.png b/_images/815ac97b1e5dace7619bc289e773a7d95d79a3910864581eea8337ed19c580e8.png similarity index 95% rename from _images/65d1c236bad54446d77b40faf6fe2005b50f5922102d79ce9b639224019bacf5.png rename to _images/815ac97b1e5dace7619bc289e773a7d95d79a3910864581eea8337ed19c580e8.png index bbc9e71a..82cc357a 100644 Binary files a/_images/65d1c236bad54446d77b40faf6fe2005b50f5922102d79ce9b639224019bacf5.png and b/_images/815ac97b1e5dace7619bc289e773a7d95d79a3910864581eea8337ed19c580e8.png differ diff --git a/_images/819f182fd60e5a978b8b8983ef4957be68432d498f952e74f89e63cce3cff915.png b/_images/819f182fd60e5a978b8b8983ef4957be68432d498f952e74f89e63cce3cff915.png new file mode 100644 index 00000000..be8a0244 Binary files /dev/null and b/_images/819f182fd60e5a978b8b8983ef4957be68432d498f952e74f89e63cce3cff915.png differ diff --git a/_images/c61d00f28619c8b2b29fba2a88b38beaa6691444b04cf1b50149b26f235e2cdd.png b/_images/86ed52c3774b16b12bb37f4b045ba679fc04c2196b62ec5697a48bdec0c1bd12.png similarity index 99% rename from _images/c61d00f28619c8b2b29fba2a88b38beaa6691444b04cf1b50149b26f235e2cdd.png rename to _images/86ed52c3774b16b12bb37f4b045ba679fc04c2196b62ec5697a48bdec0c1bd12.png index 27d1d8b9..ecc7d785 100644 Binary files a/_images/c61d00f28619c8b2b29fba2a88b38beaa6691444b04cf1b50149b26f235e2cdd.png and b/_images/86ed52c3774b16b12bb37f4b045ba679fc04c2196b62ec5697a48bdec0c1bd12.png differ diff --git a/_images/87679168f59998b97966d391d7d9b42a64e6333ea71edbac874238a952acae2d.png b/_images/87679168f59998b97966d391d7d9b42a64e6333ea71edbac874238a952acae2d.png deleted file mode 100644 index f94ff81a..00000000 Binary files a/_images/87679168f59998b97966d391d7d9b42a64e6333ea71edbac874238a952acae2d.png and /dev/null differ diff --git a/_images/87c5f1dc4941f183b65338f3899b002a52251d62af4fab3b94c37a675351d1e3.png b/_images/87c5f1dc4941f183b65338f3899b002a52251d62af4fab3b94c37a675351d1e3.png deleted file mode 100644 index ba781beb..00000000 Binary files a/_images/87c5f1dc4941f183b65338f3899b002a52251d62af4fab3b94c37a675351d1e3.png and /dev/null differ diff --git a/_images/8a583d02a11bed40d60dd4af64e52ed7c01f54b31ff5d340708c92da03e7b8c5.png b/_images/8a583d02a11bed40d60dd4af64e52ed7c01f54b31ff5d340708c92da03e7b8c5.png new file mode 100644 index 00000000..49e0c93e Binary files /dev/null and b/_images/8a583d02a11bed40d60dd4af64e52ed7c01f54b31ff5d340708c92da03e7b8c5.png differ diff --git a/_images/1324d0fc23bec79d6f3234ffc4084f8777c9757706512855022aa292f18b546a.png b/_images/8aaaba325b045eefd2705614ddb1efcbc1ab0c7c096b491823e3f348e830eb46.png similarity index 98% rename from _images/1324d0fc23bec79d6f3234ffc4084f8777c9757706512855022aa292f18b546a.png rename to _images/8aaaba325b045eefd2705614ddb1efcbc1ab0c7c096b491823e3f348e830eb46.png index 59d02c4e..05fde766 100644 Binary files a/_images/1324d0fc23bec79d6f3234ffc4084f8777c9757706512855022aa292f18b546a.png and b/_images/8aaaba325b045eefd2705614ddb1efcbc1ab0c7c096b491823e3f348e830eb46.png differ diff --git a/_images/67846a2a1b2011cd8bec7a53fe48674e7cbcd441301b658d82222e24839c04d7.png b/_images/8c7e6e7ef80d7acc80200b6945ef4cf46da3d66c9d954f0cf94a2b9330c39f94.png similarity index 99% rename from _images/67846a2a1b2011cd8bec7a53fe48674e7cbcd441301b658d82222e24839c04d7.png rename to _images/8c7e6e7ef80d7acc80200b6945ef4cf46da3d66c9d954f0cf94a2b9330c39f94.png index 7e4b2bde..ce32c2dd 100644 Binary files a/_images/67846a2a1b2011cd8bec7a53fe48674e7cbcd441301b658d82222e24839c04d7.png and b/_images/8c7e6e7ef80d7acc80200b6945ef4cf46da3d66c9d954f0cf94a2b9330c39f94.png differ diff --git a/_images/9229ee12b64ada26acce669a8fd7b7b93a99e2623a32de2ec0aa5bdf151c551f.png b/_images/9229ee12b64ada26acce669a8fd7b7b93a99e2623a32de2ec0aa5bdf151c551f.png new file mode 100644 index 00000000..4bdb448b Binary files /dev/null and b/_images/9229ee12b64ada26acce669a8fd7b7b93a99e2623a32de2ec0aa5bdf151c551f.png differ diff --git a/_images/9243a4afd0cd3bcb47c90101ecfaa8dc46503c04e5604389a7688285e07405d4.png b/_images/9243a4afd0cd3bcb47c90101ecfaa8dc46503c04e5604389a7688285e07405d4.png deleted file mode 100644 index 1ae18280..00000000 Binary files a/_images/9243a4afd0cd3bcb47c90101ecfaa8dc46503c04e5604389a7688285e07405d4.png and /dev/null differ diff --git a/_images/933e73cb83c63211c4d8fb318f571a166ac37e6913bcd4031c88abf4823e3306.png b/_images/933e73cb83c63211c4d8fb318f571a166ac37e6913bcd4031c88abf4823e3306.png new file mode 100644 index 00000000..6f37684e Binary files /dev/null and b/_images/933e73cb83c63211c4d8fb318f571a166ac37e6913bcd4031c88abf4823e3306.png differ diff --git a/_images/682fac1121bbbdf55afb75661d1d582287594d9ca11c49e98b7c6a4e80254b9d.png b/_images/96613671de070b80889bac40d57aae9a32a36d87f7d699854dc9d018b721a4b8.png similarity index 99% rename from _images/682fac1121bbbdf55afb75661d1d582287594d9ca11c49e98b7c6a4e80254b9d.png rename to _images/96613671de070b80889bac40d57aae9a32a36d87f7d699854dc9d018b721a4b8.png index 72c5f200..f79ba3fe 100644 Binary files a/_images/682fac1121bbbdf55afb75661d1d582287594d9ca11c49e98b7c6a4e80254b9d.png and b/_images/96613671de070b80889bac40d57aae9a32a36d87f7d699854dc9d018b721a4b8.png differ diff --git a/_images/970e76a53ccfa31eb594f9bcb57af57855e0129a55425bc77d37f3a031b59db6.png b/_images/970e76a53ccfa31eb594f9bcb57af57855e0129a55425bc77d37f3a031b59db6.png new file mode 100644 index 00000000..00cc2b1e Binary files /dev/null and b/_images/970e76a53ccfa31eb594f9bcb57af57855e0129a55425bc77d37f3a031b59db6.png differ diff --git a/_images/9886d1d569cb4087b621e939732c3cd924e65c401dd20465ef919a414cf6f232.png b/_images/9886d1d569cb4087b621e939732c3cd924e65c401dd20465ef919a414cf6f232.png deleted file mode 100644 index a32acfb6..00000000 Binary files a/_images/9886d1d569cb4087b621e939732c3cd924e65c401dd20465ef919a414cf6f232.png and /dev/null differ diff --git a/_images/9b11fd92495b61221f2154967f34d2039b0fb158c9ab8c1ee3c888d7d8351192.png b/_images/9b11fd92495b61221f2154967f34d2039b0fb158c9ab8c1ee3c888d7d8351192.png new file mode 100644 index 00000000..d5fd5aea Binary files /dev/null and b/_images/9b11fd92495b61221f2154967f34d2039b0fb158c9ab8c1ee3c888d7d8351192.png differ diff --git a/_images/9d17f609352d6d90546e14cd41734c239e82ff3409f2e2dbb88166270c495943.png b/_images/9d17f609352d6d90546e14cd41734c239e82ff3409f2e2dbb88166270c495943.png new file mode 100644 index 00000000..189ecb21 Binary files /dev/null and b/_images/9d17f609352d6d90546e14cd41734c239e82ff3409f2e2dbb88166270c495943.png differ diff --git a/_images/a172683c1a2b377fd95e69f0272bb1b29fce4316ad640c24eebe839508ceed2c.png b/_images/a172683c1a2b377fd95e69f0272bb1b29fce4316ad640c24eebe839508ceed2c.png new file mode 100644 index 00000000..0c13bda1 Binary files /dev/null and b/_images/a172683c1a2b377fd95e69f0272bb1b29fce4316ad640c24eebe839508ceed2c.png differ diff --git a/_images/a36d8698a847e6d1987bde4d18aa4a0091e0a5ef2d402bf65c8283f81014e007.png b/_images/a36d8698a847e6d1987bde4d18aa4a0091e0a5ef2d402bf65c8283f81014e007.png deleted file mode 100644 index d506a689..00000000 Binary files a/_images/a36d8698a847e6d1987bde4d18aa4a0091e0a5ef2d402bf65c8283f81014e007.png and /dev/null differ diff --git a/_images/a515ef3eb02087057b1a3efb59c8fb875725bbec0d66d801aceed010c83d3ff7.png b/_images/a515ef3eb02087057b1a3efb59c8fb875725bbec0d66d801aceed010c83d3ff7.png deleted file mode 100644 index 15e88dae..00000000 Binary files a/_images/a515ef3eb02087057b1a3efb59c8fb875725bbec0d66d801aceed010c83d3ff7.png and /dev/null differ diff --git a/_images/a685db5f6c59f319118445c20ca61c71031f0c78f6750a99ca6e3367c01243a7.png b/_images/a685db5f6c59f319118445c20ca61c71031f0c78f6750a99ca6e3367c01243a7.png new file mode 100644 index 00000000..0f44c15a Binary files /dev/null and b/_images/a685db5f6c59f319118445c20ca61c71031f0c78f6750a99ca6e3367c01243a7.png differ diff --git a/_images/a6f4f98d7099b30142dc77dd3a47e14ea38b2f5761982dde2da2dd5c463baab5.png b/_images/a6f4f98d7099b30142dc77dd3a47e14ea38b2f5761982dde2da2dd5c463baab5.png new file mode 100644 index 00000000..e1da99ea Binary files /dev/null and b/_images/a6f4f98d7099b30142dc77dd3a47e14ea38b2f5761982dde2da2dd5c463baab5.png differ diff --git a/_images/a7321b712bd3dcbb9512e32954a48224b0c14ec7e948bd21befbc985749583a6.png b/_images/a7321b712bd3dcbb9512e32954a48224b0c14ec7e948bd21befbc985749583a6.png new file mode 100644 index 00000000..ced94b6a Binary files /dev/null and b/_images/a7321b712bd3dcbb9512e32954a48224b0c14ec7e948bd21befbc985749583a6.png differ diff --git a/_images/ea1bec3aa5b999dc7ad7d2622385a8af647c92fa0c2dc94312522c2f67949d2f.png b/_images/a9a2e6de380c1d530ad675223ff9bddbca3d10153e6871a11a49d0d0dbe6b1b8.png similarity index 99% rename from _images/ea1bec3aa5b999dc7ad7d2622385a8af647c92fa0c2dc94312522c2f67949d2f.png rename to _images/a9a2e6de380c1d530ad675223ff9bddbca3d10153e6871a11a49d0d0dbe6b1b8.png index fa997fd6..f9935ad0 100644 Binary files a/_images/ea1bec3aa5b999dc7ad7d2622385a8af647c92fa0c2dc94312522c2f67949d2f.png and b/_images/a9a2e6de380c1d530ad675223ff9bddbca3d10153e6871a11a49d0d0dbe6b1b8.png differ diff --git a/_images/b1b002fc8afa49c70272e55bc74f78879ea08724ada0edaa8a6a565c43b3e8a6.png b/_images/b1b002fc8afa49c70272e55bc74f78879ea08724ada0edaa8a6a565c43b3e8a6.png new file mode 100644 index 00000000..c028b28c Binary files /dev/null and b/_images/b1b002fc8afa49c70272e55bc74f78879ea08724ada0edaa8a6a565c43b3e8a6.png differ diff --git a/_images/b3ffdfea0941055f95a81661c37fb2c80e83eaca5ae51e7156c81cf079ce7a48.png b/_images/b3ffdfea0941055f95a81661c37fb2c80e83eaca5ae51e7156c81cf079ce7a48.png deleted file mode 100644 index 11e2fd0a..00000000 Binary files a/_images/b3ffdfea0941055f95a81661c37fb2c80e83eaca5ae51e7156c81cf079ce7a48.png and /dev/null differ diff --git a/_images/b41734fcecefdfb4e0c2f1602211e8d712889167913dc290532aae39ab27f3ab.png b/_images/b41734fcecefdfb4e0c2f1602211e8d712889167913dc290532aae39ab27f3ab.png deleted file mode 100644 index 587710fe..00000000 Binary files a/_images/b41734fcecefdfb4e0c2f1602211e8d712889167913dc290532aae39ab27f3ab.png and /dev/null differ diff --git a/_images/c08c82d4f615fd082be267a90e4d97e4e5943bf301b549872ae949a01ba2ac16.png b/_images/b43a0fd227715ee0a44b748fbcd9702cd05a8d942ac494e18f75964d6bc822eb.png similarity index 98% rename from _images/c08c82d4f615fd082be267a90e4d97e4e5943bf301b549872ae949a01ba2ac16.png rename to _images/b43a0fd227715ee0a44b748fbcd9702cd05a8d942ac494e18f75964d6bc822eb.png index ce3d7751..6e572edd 100644 Binary files a/_images/c08c82d4f615fd082be267a90e4d97e4e5943bf301b549872ae949a01ba2ac16.png and b/_images/b43a0fd227715ee0a44b748fbcd9702cd05a8d942ac494e18f75964d6bc822eb.png differ diff --git a/_images/b4d34496ee4f7b94e68556e0a315753c7eb3122b376e3bbaa6a24351f54d8965.png b/_images/b4d34496ee4f7b94e68556e0a315753c7eb3122b376e3bbaa6a24351f54d8965.png deleted file mode 100644 index 8b3fcf0b..00000000 Binary files a/_images/b4d34496ee4f7b94e68556e0a315753c7eb3122b376e3bbaa6a24351f54d8965.png and /dev/null differ diff --git a/_images/b56e9284b07eb409c764cd30401147116877835c48344d0f08f7bb96149684fb.png b/_images/b56e9284b07eb409c764cd30401147116877835c48344d0f08f7bb96149684fb.png deleted file mode 100644 index 8b9a479b..00000000 Binary files a/_images/b56e9284b07eb409c764cd30401147116877835c48344d0f08f7bb96149684fb.png and /dev/null differ diff --git a/_images/b9187d510324b9aee96d5c68f0258aaa3b8c0d896d0190a3d2334646abb396d0.png b/_images/b9187d510324b9aee96d5c68f0258aaa3b8c0d896d0190a3d2334646abb396d0.png new file mode 100644 index 00000000..fb889ea2 Binary files /dev/null and b/_images/b9187d510324b9aee96d5c68f0258aaa3b8c0d896d0190a3d2334646abb396d0.png differ diff --git a/_images/bae45fe7840e0109a08ef3ff8b44fed431bca57729b78ad565ad084e23359d11.png b/_images/bae45fe7840e0109a08ef3ff8b44fed431bca57729b78ad565ad084e23359d11.png new file mode 100644 index 00000000..acbd8f5a Binary files /dev/null and b/_images/bae45fe7840e0109a08ef3ff8b44fed431bca57729b78ad565ad084e23359d11.png differ diff --git a/_images/bc3ae37e62836a47d978db626ffbf29264fb3d63acc52244b548e4c0c169d19e.png b/_images/bc3ae37e62836a47d978db626ffbf29264fb3d63acc52244b548e4c0c169d19e.png new file mode 100644 index 00000000..c8bc185c Binary files /dev/null and b/_images/bc3ae37e62836a47d978db626ffbf29264fb3d63acc52244b548e4c0c169d19e.png differ diff --git a/_images/f576446ee5510e556a6b4afc7bb3f6986356ef863a6c5b0093fcff8fbaec8d6f.png b/_images/bda92d5a38e9ff72d108d249cff5ca19d354d26ac95dad9c037d49242cd3fc23.png similarity index 99% rename from _images/f576446ee5510e556a6b4afc7bb3f6986356ef863a6c5b0093fcff8fbaec8d6f.png rename to _images/bda92d5a38e9ff72d108d249cff5ca19d354d26ac95dad9c037d49242cd3fc23.png index c2994d11..d5c9412e 100644 Binary files a/_images/f576446ee5510e556a6b4afc7bb3f6986356ef863a6c5b0093fcff8fbaec8d6f.png and b/_images/bda92d5a38e9ff72d108d249cff5ca19d354d26ac95dad9c037d49242cd3fc23.png differ diff --git a/_images/bde792d66f7571528d9e6fc5504c268eded53930ed6f4468f80148d88267bbcc.png b/_images/bde792d66f7571528d9e6fc5504c268eded53930ed6f4468f80148d88267bbcc.png deleted file mode 100644 index 32f471bc..00000000 Binary files a/_images/bde792d66f7571528d9e6fc5504c268eded53930ed6f4468f80148d88267bbcc.png and /dev/null differ diff --git a/_images/be1994d6bb5556f22e7f1ae04f7822833bc586241af3fd2abadc7fecde9792b7.png b/_images/be1994d6bb5556f22e7f1ae04f7822833bc586241af3fd2abadc7fecde9792b7.png deleted file mode 100644 index c97689bf..00000000 Binary files a/_images/be1994d6bb5556f22e7f1ae04f7822833bc586241af3fd2abadc7fecde9792b7.png and /dev/null differ diff --git a/_images/c36f24a90277766ed2cddcc62df1302c29aac2a81843c83c2fc8707bbf7384bc.png b/_images/c36f24a90277766ed2cddcc62df1302c29aac2a81843c83c2fc8707bbf7384bc.png deleted file mode 100644 index 10b8533d..00000000 Binary files a/_images/c36f24a90277766ed2cddcc62df1302c29aac2a81843c83c2fc8707bbf7384bc.png and /dev/null differ diff --git a/_images/c4c0680c1c3b15e7f06f143cdebfecd97573342ebd06c0370dc89efeb3db6365.png b/_images/c4c0680c1c3b15e7f06f143cdebfecd97573342ebd06c0370dc89efeb3db6365.png deleted file mode 100644 index b040df7e..00000000 Binary files a/_images/c4c0680c1c3b15e7f06f143cdebfecd97573342ebd06c0370dc89efeb3db6365.png and /dev/null differ diff --git a/_images/c72e2c811ea7e87a4e347ab941e5dbc1415897d7849e3de66ed0cd413987f206.png b/_images/c72e2c811ea7e87a4e347ab941e5dbc1415897d7849e3de66ed0cd413987f206.png new file mode 100644 index 00000000..596a9175 Binary files /dev/null and b/_images/c72e2c811ea7e87a4e347ab941e5dbc1415897d7849e3de66ed0cd413987f206.png differ diff --git a/_images/c7620b5733080ff977e7c96778658063227ed4c78d6036684ad840a4c25ce787.png b/_images/c7620b5733080ff977e7c96778658063227ed4c78d6036684ad840a4c25ce787.png deleted file mode 100644 index 6e70f488..00000000 Binary files a/_images/c7620b5733080ff977e7c96778658063227ed4c78d6036684ad840a4c25ce787.png and /dev/null differ diff --git a/_images/c8a12062d5940256af01221218e562aee25523addf1b83668e475fce8ffca3c7.png b/_images/c8a12062d5940256af01221218e562aee25523addf1b83668e475fce8ffca3c7.png deleted file mode 100644 index 6053a9c9..00000000 Binary files a/_images/c8a12062d5940256af01221218e562aee25523addf1b83668e475fce8ffca3c7.png and /dev/null differ diff --git a/_images/c8a301f325c1decd6c9745dcfa2928b6bbde12290c347df0d66fe368a8453eab.png b/_images/c8a301f325c1decd6c9745dcfa2928b6bbde12290c347df0d66fe368a8453eab.png deleted file mode 100644 index 350e2b7d..00000000 Binary files a/_images/c8a301f325c1decd6c9745dcfa2928b6bbde12290c347df0d66fe368a8453eab.png and /dev/null differ diff --git a/_images/c8a58a3d31bd9cd80c2b6863590f947441b967cd83e9ff8a15acab9546cee072.png b/_images/c8a58a3d31bd9cd80c2b6863590f947441b967cd83e9ff8a15acab9546cee072.png new file mode 100644 index 00000000..820e8d08 Binary files /dev/null and b/_images/c8a58a3d31bd9cd80c2b6863590f947441b967cd83e9ff8a15acab9546cee072.png differ diff --git a/_images/c916001e035d38c34987480920e62b19b50e1ea6cbab7558789b91b73c26393b.png b/_images/c916001e035d38c34987480920e62b19b50e1ea6cbab7558789b91b73c26393b.png deleted file mode 100644 index 4687fdfc..00000000 Binary files a/_images/c916001e035d38c34987480920e62b19b50e1ea6cbab7558789b91b73c26393b.png and /dev/null differ diff --git a/_images/c9e1b46fcbc4444197f0c866ea818f52e2705a2433b80df8d69135ed767ff6c0.png b/_images/c9e1b46fcbc4444197f0c866ea818f52e2705a2433b80df8d69135ed767ff6c0.png new file mode 100644 index 00000000..b27d560e Binary files /dev/null and b/_images/c9e1b46fcbc4444197f0c866ea818f52e2705a2433b80df8d69135ed767ff6c0.png differ diff --git a/_images/d6982e9a6928a4436ef91acee31689113fbbc4da8ab088b285ebe102d77871ca.png b/_images/d6982e9a6928a4436ef91acee31689113fbbc4da8ab088b285ebe102d77871ca.png deleted file mode 100644 index 8b92c97e..00000000 Binary files a/_images/d6982e9a6928a4436ef91acee31689113fbbc4da8ab088b285ebe102d77871ca.png and /dev/null differ diff --git a/_images/2b372a3530a20540548c56bcdeb37da742f7d986d049840f5fcce2dc203a6831.png b/_images/d6f41f66f4e4d3bdd5ae2ae52154c40e80b660f22dc37025c5667cc892ff327c.png similarity index 99% rename from _images/2b372a3530a20540548c56bcdeb37da742f7d986d049840f5fcce2dc203a6831.png rename to _images/d6f41f66f4e4d3bdd5ae2ae52154c40e80b660f22dc37025c5667cc892ff327c.png index e7646479..53533739 100644 Binary files a/_images/2b372a3530a20540548c56bcdeb37da742f7d986d049840f5fcce2dc203a6831.png and b/_images/d6f41f66f4e4d3bdd5ae2ae52154c40e80b660f22dc37025c5667cc892ff327c.png differ diff --git a/_images/d9ea9f2af8268008b9853f66f767e86bd1783ca8fdbc0b8652186f32def1df9e.png b/_images/d9ea9f2af8268008b9853f66f767e86bd1783ca8fdbc0b8652186f32def1df9e.png deleted file mode 100644 index 3f02ab47..00000000 Binary files a/_images/d9ea9f2af8268008b9853f66f767e86bd1783ca8fdbc0b8652186f32def1df9e.png and /dev/null differ diff --git a/_images/da189c4feebbb0b77c5b82fef32c5ebaf3f4962c0c09e32afb13d2d0b71abef5.png b/_images/da189c4feebbb0b77c5b82fef32c5ebaf3f4962c0c09e32afb13d2d0b71abef5.png deleted file mode 100644 index d81643b0..00000000 Binary files a/_images/da189c4feebbb0b77c5b82fef32c5ebaf3f4962c0c09e32afb13d2d0b71abef5.png and /dev/null differ diff --git a/_images/db257ad302712f95318a55de883bf10f591ff560fabc800731bae99cd2e9ef08.png b/_images/db257ad302712f95318a55de883bf10f591ff560fabc800731bae99cd2e9ef08.png deleted file mode 100644 index bbd55c82..00000000 Binary files a/_images/db257ad302712f95318a55de883bf10f591ff560fabc800731bae99cd2e9ef08.png and /dev/null differ diff --git a/_images/ded363600851b407e6692777015d7cd4f6c00cc309f46e1b6966e90b40af2ecb.png b/_images/ded363600851b407e6692777015d7cd4f6c00cc309f46e1b6966e90b40af2ecb.png new file mode 100644 index 00000000..bec63cda Binary files /dev/null and b/_images/ded363600851b407e6692777015d7cd4f6c00cc309f46e1b6966e90b40af2ecb.png differ diff --git a/_images/e593aeb91ddfe42411e47bd8238d7986b99ad9fabbaf95855561cf8b56442464.png b/_images/dede9b437e9aa770e8eab5b313352914bfde6011585fcb6fff2ea8ecea916de0.png similarity index 99% rename from _images/e593aeb91ddfe42411e47bd8238d7986b99ad9fabbaf95855561cf8b56442464.png rename to _images/dede9b437e9aa770e8eab5b313352914bfde6011585fcb6fff2ea8ecea916de0.png index 1bfc840b..96d85fce 100644 Binary files a/_images/e593aeb91ddfe42411e47bd8238d7986b99ad9fabbaf95855561cf8b56442464.png and b/_images/dede9b437e9aa770e8eab5b313352914bfde6011585fcb6fff2ea8ecea916de0.png differ diff --git a/_images/e038b0b0ed820d3b301c88e8bd735241d9d7c2af5017a8721d3e37d481e4808b.png b/_images/e038b0b0ed820d3b301c88e8bd735241d9d7c2af5017a8721d3e37d481e4808b.png deleted file mode 100644 index 0b5ebf32..00000000 Binary files a/_images/e038b0b0ed820d3b301c88e8bd735241d9d7c2af5017a8721d3e37d481e4808b.png and /dev/null differ diff --git a/_images/e064b8f03f27870c0b14943e0a4fedf3fec84013e4052a38c33552c1b83febb4.png b/_images/e064b8f03f27870c0b14943e0a4fedf3fec84013e4052a38c33552c1b83febb4.png new file mode 100644 index 00000000..f27af071 Binary files /dev/null and b/_images/e064b8f03f27870c0b14943e0a4fedf3fec84013e4052a38c33552c1b83febb4.png differ diff --git a/_images/e0e81b518ea677400093a183d737b38a3a04291b1c8cb32f6bd970e776ccfa5b.png b/_images/e0e81b518ea677400093a183d737b38a3a04291b1c8cb32f6bd970e776ccfa5b.png deleted file mode 100644 index 652c2cf8..00000000 Binary files a/_images/e0e81b518ea677400093a183d737b38a3a04291b1c8cb32f6bd970e776ccfa5b.png and /dev/null differ diff --git a/_images/e4bd4fb7df7b45f941b04d49b9da8614231847cf64ca525e6329bcdf6f5adb09.png b/_images/e4bd4fb7df7b45f941b04d49b9da8614231847cf64ca525e6329bcdf6f5adb09.png deleted file mode 100644 index 049dc39f..00000000 Binary files a/_images/e4bd4fb7df7b45f941b04d49b9da8614231847cf64ca525e6329bcdf6f5adb09.png and /dev/null differ diff --git a/_images/18a32bc19a113a6bf4a55533662c9c6de8ed2d438e40f5e4d7f73b6fbe2b6b37.png b/_images/e5337d4960debadc5bcc09344e1d2320e9c80277987aef1848488af807d95b3b.png similarity index 99% rename from _images/18a32bc19a113a6bf4a55533662c9c6de8ed2d438e40f5e4d7f73b6fbe2b6b37.png rename to _images/e5337d4960debadc5bcc09344e1d2320e9c80277987aef1848488af807d95b3b.png index e4b77d5e..869668b9 100644 Binary files a/_images/18a32bc19a113a6bf4a55533662c9c6de8ed2d438e40f5e4d7f73b6fbe2b6b37.png and b/_images/e5337d4960debadc5bcc09344e1d2320e9c80277987aef1848488af807d95b3b.png differ diff --git a/_images/ee5602531af72f578f46a761bc67d9d38c238bf8b7a8c7782cc54a86fe270e75.png b/_images/ee5602531af72f578f46a761bc67d9d38c238bf8b7a8c7782cc54a86fe270e75.png new file mode 100644 index 00000000..ceb888de Binary files /dev/null and b/_images/ee5602531af72f578f46a761bc67d9d38c238bf8b7a8c7782cc54a86fe270e75.png differ diff --git a/_images/ee81a7f24342b83a4b9711ad80f84a7a0a1a466f4cf277df80f18936a66283e1.png b/_images/ee81a7f24342b83a4b9711ad80f84a7a0a1a466f4cf277df80f18936a66283e1.png new file mode 100644 index 00000000..305fe742 Binary files /dev/null and b/_images/ee81a7f24342b83a4b9711ad80f84a7a0a1a466f4cf277df80f18936a66283e1.png differ diff --git a/_images/f2605fe80947a3f37dc21d02345e891f27262d9f036ffe13bcf253dd1de6869f.png b/_images/f2605fe80947a3f37dc21d02345e891f27262d9f036ffe13bcf253dd1de6869f.png deleted file mode 100644 index c8488a00..00000000 Binary files a/_images/f2605fe80947a3f37dc21d02345e891f27262d9f036ffe13bcf253dd1de6869f.png and /dev/null differ diff --git a/_images/f2ac6132d80d5e444a1094e28e2b1326d0dafd56187e89e81492ef8fb4e5e611.png b/_images/f2ac6132d80d5e444a1094e28e2b1326d0dafd56187e89e81492ef8fb4e5e611.png deleted file mode 100644 index 6869905d..00000000 Binary files a/_images/f2ac6132d80d5e444a1094e28e2b1326d0dafd56187e89e81492ef8fb4e5e611.png and /dev/null differ diff --git a/_images/f3b864a3777ae4c8cbc53a8a2925d7c7310566599f3dfc7f26e371559e6bdda1.png b/_images/f3b864a3777ae4c8cbc53a8a2925d7c7310566599f3dfc7f26e371559e6bdda1.png deleted file mode 100644 index 9a1e275b..00000000 Binary files a/_images/f3b864a3777ae4c8cbc53a8a2925d7c7310566599f3dfc7f26e371559e6bdda1.png and /dev/null differ diff --git a/_images/f3cb567e19776821ecada2c710c6575900c47007d60d1111199d993dc54e4efe.png b/_images/f3cb567e19776821ecada2c710c6575900c47007d60d1111199d993dc54e4efe.png new file mode 100644 index 00000000..77826cc1 Binary files /dev/null and b/_images/f3cb567e19776821ecada2c710c6575900c47007d60d1111199d993dc54e4efe.png differ diff --git a/_images/f506e725dba3331da3ba63b88a4b7ccbd524a0e128f45ffa72a33c17eacc1403.png b/_images/f506e725dba3331da3ba63b88a4b7ccbd524a0e128f45ffa72a33c17eacc1403.png deleted file mode 100644 index 6f9176e4..00000000 Binary files a/_images/f506e725dba3331da3ba63b88a4b7ccbd524a0e128f45ffa72a33c17eacc1403.png and /dev/null differ diff --git a/_images/f618dbe3179e624aa4772bbe48f63939c5ef959145f4b3dca71c124bb50aeca0.png b/_images/f618dbe3179e624aa4772bbe48f63939c5ef959145f4b3dca71c124bb50aeca0.png deleted file mode 100644 index dd73ff5b..00000000 Binary files a/_images/f618dbe3179e624aa4772bbe48f63939c5ef959145f4b3dca71c124bb50aeca0.png and /dev/null differ diff --git a/_images/f96b7116e5059e858eb4b83b7d5ad72a5431f5f862831ad1334f412f15c92d02.png b/_images/f96b7116e5059e858eb4b83b7d5ad72a5431f5f862831ad1334f412f15c92d02.png new file mode 100644 index 00000000..2f60ff74 Binary files /dev/null and b/_images/f96b7116e5059e858eb4b83b7d5ad72a5431f5f862831ad1334f412f15c92d02.png differ diff --git a/_images/fa38ffbc85de5fb44fc81031b9561a80af26cd4f41a13e9feafb23d5f7535310.png b/_images/fa38ffbc85de5fb44fc81031b9561a80af26cd4f41a13e9feafb23d5f7535310.png new file mode 100644 index 00000000..ae4666b6 Binary files /dev/null and b/_images/fa38ffbc85de5fb44fc81031b9561a80af26cd4f41a13e9feafb23d5f7535310.png differ diff --git a/_images/fc41510d0cf7dace1201abc34c5ddeeb817125c524e9169e5f5d2abfe8bbc28b.png b/_images/fc41510d0cf7dace1201abc34c5ddeeb817125c524e9169e5f5d2abfe8bbc28b.png deleted file mode 100644 index bb918f32..00000000 Binary files a/_images/fc41510d0cf7dace1201abc34c5ddeeb817125c524e9169e5f5d2abfe8bbc28b.png and /dev/null differ diff --git a/_images/b993b0a6f4bff4cded2d6f5fdcac59bf735b66283c89e81ab78a8445753feb5e.png b/_images/ff0a571b9b0cae6c5ff97453f8478c9abddaa4dc90bce6f5eda3e9f7b7c5e44f.png similarity index 99% rename from _images/b993b0a6f4bff4cded2d6f5fdcac59bf735b66283c89e81ab78a8445753feb5e.png rename to _images/ff0a571b9b0cae6c5ff97453f8478c9abddaa4dc90bce6f5eda3e9f7b7c5e44f.png index d200e6f1..cd3e64dc 100644 Binary files a/_images/b993b0a6f4bff4cded2d6f5fdcac59bf735b66283c89e81ab78a8445753feb5e.png and b/_images/ff0a571b9b0cae6c5ff97453f8478c9abddaa4dc90bce6f5eda3e9f7b7c5e44f.png differ diff --git a/_images/fffd37981f4039dc29e9e4d9b81ad8eb07dd3f89d5943792c9c8eddd64cb35d0.png b/_images/fffd37981f4039dc29e9e4d9b81ad8eb07dd3f89d5943792c9c8eddd64cb35d0.png deleted file mode 100644 index 87445f16..00000000 Binary files a/_images/fffd37981f4039dc29e9e4d9b81ad8eb07dd3f89d5943792c9c8eddd64cb35d0.png and /dev/null differ diff --git a/_modules/dynamax/hidden_markov_model/models/arhmm.html b/_modules/dynamax/hidden_markov_model/models/arhmm.html index 6cb43d06..b567f577 100644 --- a/_modules/dynamax/hidden_markov_model/models/arhmm.html +++ b/_modules/dynamax/hidden_markov_model/models/arhmm.html @@ -324,7 +324,9 @@

Source code for dynamax.hidden_markov_model.models.arhmm

if method.lower() == "kmeans": assert emissions is not None, "Need emissions to initialize the model with K-Means!" from sklearn.cluster import KMeans - km = KMeans(self.num_states).fit(emissions.reshape(-1, self.emission_dim)) + key, subkey = jr.split(key) # Create a random seed for SKLearn. + sklearn_key = jr.randint(subkey, shape=(), minval=0, maxval=2147483647) # Max int32 value. + km = KMeans(self.num_states, random_state=int(sklearn_key)).fit(emissions.reshape(-1, self.emission_dim)) _emission_weights = jnp.zeros((self.num_states, self.emission_dim, self.emission_dim * self.num_lags)) _emission_biases = jnp.array(km.cluster_centers_) _emission_covs = jnp.tile(jnp.eye(self.emission_dim)[None, :, :], (self.num_states, 1, 1)) diff --git a/_modules/dynamax/hidden_markov_model/models/gamma_hmm.html b/_modules/dynamax/hidden_markov_model/models/gamma_hmm.html index 52f341a0..fbfa0126 100644 --- a/_modules/dynamax/hidden_markov_model/models/gamma_hmm.html +++ b/_modules/dynamax/hidden_markov_model/models/gamma_hmm.html @@ -321,7 +321,9 @@

Source code for dynamax.hidden_markov_model.models.gamma_hmm

if method.lower() == "kmeans": assert emissions is not None, "Need emissions to initialize the model with K-Means!" from sklearn.cluster import KMeans - km = KMeans(self.num_states).fit(emissions.reshape(-1, 1)) + key, subkey = jr.split(key) # Create a random seed for SKLearn. + sklearn_key = jr.randint(subkey, shape=(), minval=0, maxval=2147483647) # Max int32 value. + km = KMeans(self.num_states, random_state=int(sklearn_key)).fit(emissions.reshape(-1, 1)) _emission_concentrations = jnp.ones((self.num_states,)) _emission_rates = jnp.ravel(1.0 / km.cluster_centers_) diff --git a/_modules/dynamax/hidden_markov_model/models/gaussian_hmm.html b/_modules/dynamax/hidden_markov_model/models/gaussian_hmm.html index 44687ce8..3b2950da 100644 --- a/_modules/dynamax/hidden_markov_model/models/gaussian_hmm.html +++ b/_modules/dynamax/hidden_markov_model/models/gaussian_hmm.html @@ -353,7 +353,9 @@

Source code for dynamax.hidden_markov_model.models.gaussian_hmm

if method.lower() == "kmeans": assert emissions is not None, "Need emissions to initialize the model with K-Means!" from sklearn.cluster import KMeans - km = KMeans(self.num_states).fit(emissions.reshape(-1, self.emission_dim)) + key, subkey = jr.split(key) # Create a random seed for SKLearn. + sklearn_key = jr.randint(subkey, shape=(), minval=0, maxval=2147483647) # Max int32 value. + km = KMeans(self.num_states, random_state=int(sklearn_key)).fit(emissions.reshape(-1, self.emission_dim)) _emission_means = jnp.array(km.cluster_centers_) _emission_covs = jnp.tile(jnp.eye(self.emission_dim)[None, :, :], (self.num_states, 1, 1)) @@ -449,7 +451,9 @@

Source code for dynamax.hidden_markov_model.models.gaussian_hmm

if method.lower() == "kmeans": assert emissions is not None, "Need emissions to initialize the model with K-Means!" from sklearn.cluster import KMeans - km = KMeans(self.num_states).fit(emissions.reshape(-1, self.emission_dim)) + key, subkey = jr.split(key) # Create a random seed for SKLearn. + sklearn_key = jr.randint(subkey, shape=(), minval=0, maxval=2147483647) # Max int32 value. + km = KMeans(self.num_states, random_state=int(sklearn_key)).fit(emissions.reshape(-1, self.emission_dim)) _emission_means = jnp.array(km.cluster_centers_) _emission_scale_diags = jnp.ones((self.num_states, self.emission_dim)) @@ -568,7 +572,9 @@

Source code for dynamax.hidden_markov_model.models.gaussian_hmm

if method.lower() == "kmeans": assert emissions is not None, "Need emissions to initialize the model with K-Means!" from sklearn.cluster import KMeans - km = KMeans(self.num_states).fit(emissions.reshape(-1, self.emission_dim)) + key, subkey = jr.split(key) # Create a random seed for SKLearn. + sklearn_key = jr.randint(subkey, shape=(), minval=0, maxval=2147483647) # Max int32 value. + km = KMeans(self.num_states, random_state=int(sklearn_key)).fit(emissions.reshape(-1, self.emission_dim)) _emission_means = jnp.array(km.cluster_centers_) _emission_scales = jnp.ones((self.num_states,)) @@ -668,7 +674,9 @@

Source code for dynamax.hidden_markov_model.models.gaussian_hmm

if method.lower() == "kmeans": assert emissions is not None, "Need emissions to initialize the model with K-Means!" from sklearn.cluster import KMeans - km = KMeans(self.num_states).fit(emissions.reshape(-1, self.emission_dim)) + key, subkey = jr.split(key) # Create a random seed for SKLearn. + sklearn_key = jr.randint(subkey, shape=(), minval=0, maxval=2147483647) # Max int32 value. + km = KMeans(self.num_states, random_state=int(sklearn_key)).fit(emissions.reshape(-1, self.emission_dim)) _emission_means = jnp.array(km.cluster_centers_) _emission_cov = jnp.eye(self.emission_dim) @@ -788,7 +796,9 @@

Source code for dynamax.hidden_markov_model.models.gaussian_hmm

if method.lower() == "kmeans": assert emissions is not None, "Need emissions to initialize the model with K-Means!" from sklearn.cluster import KMeans - km = KMeans(self.num_states).fit(emissions.reshape(-1, self.emission_dim)) + key, subkey = jr.split(key) # Create a random seed for SKLearn. + sklearn_key = jr.randint(subkey, shape=(), minval=0, maxval=2147483647) # Max int32 value. + km = KMeans(self.num_states, random_state=int(sklearn_key)).fit(emissions.reshape(-1, self.emission_dim)) _emission_means = jnp.array(km.cluster_centers_) _emission_cov_diag_factors = jnp.ones((self.num_states, self.emission_dim)) _emission_cov_low_rank_factors = jnp.zeros((self.num_states, self.emission_dim, self.emission_rank)) diff --git a/_modules/dynamax/hidden_markov_model/models/gmm_hmm.html b/_modules/dynamax/hidden_markov_model/models/gmm_hmm.html index 5ddd6bfb..0f65c9cf 100644 --- a/_modules/dynamax/hidden_markov_model/models/gmm_hmm.html +++ b/_modules/dynamax/hidden_markov_model/models/gmm_hmm.html @@ -360,7 +360,9 @@

Source code for dynamax.hidden_markov_model.models.gmm_hmm

if method.lower() == "kmeans": assert emissions is not None, "Need emissions to initialize the model with K-Means!" from sklearn.cluster import KMeans - km = KMeans(self.num_states).fit(emissions.reshape(-1, self.emission_dim)) + key, subkey = jr.split(key) # Create a random seed for SKLearn. + sklearn_key = jr.randint(subkey, shape=(), minval=0, maxval=2147483647) # Max int32 value. + km = KMeans(self.num_states, random_state=int(sklearn_key)).fit(emissions.reshape(-1, self.emission_dim)) _emission_weights = jnp.ones((self.num_states, self.num_components)) / self.num_components _emission_means = jnp.tile(jnp.array(km.cluster_centers_)[:, None, :], (1, self.num_components, 1)) _emission_covs = jnp.tile(jnp.eye(self.emission_dim), (self.num_states, self.num_components, 1, 1)) @@ -580,7 +582,9 @@

Source code for dynamax.hidden_markov_model.models.gmm_hmm

if method.lower() == "kmeans": assert emissions is not None, "Need emissions to initialize the model with K-Means!" from sklearn.cluster import KMeans - km = KMeans(self.num_states).fit(emissions.reshape(-1, self.emission_dim)) + key, subkey = jr.split(key) # Create a random seed for SKLearn. + sklearn_key = jr.randint(subkey, shape=(), minval=0, maxval=2147483647) # Max int32 value. + km = KMeans(self.num_states, random_state=int(sklearn_key)).fit(emissions.reshape(-1, self.emission_dim)) _emission_weights = jnp.ones((self.num_states, self.num_components)) / self.num_components _emission_means = jnp.tile(jnp.array(km.cluster_centers_)[:, None, :], (1, self.num_components, 1)) _emission_scale_diags = jnp.ones((self.num_states, self.num_components, self.emission_dim)) diff --git a/_modules/dynamax/hidden_markov_model/models/linreg_hmm.html b/_modules/dynamax/hidden_markov_model/models/linreg_hmm.html index 450471c4..cd519942 100644 --- a/_modules/dynamax/hidden_markov_model/models/linreg_hmm.html +++ b/_modules/dynamax/hidden_markov_model/models/linreg_hmm.html @@ -341,7 +341,9 @@

Source code for dynamax.hidden_markov_model.models.linreg_hmm

if method.lower() == "kmeans": assert emissions is not None, "Need emissions to initialize the model with K-Means!" from sklearn.cluster import KMeans - km = KMeans(self.num_states).fit(emissions.reshape(-1, self.emission_dim)) + key, subkey = jr.split(key) # Create a random seed for SKLearn. + sklearn_key = jr.randint(subkey, shape=(), minval=0, maxval=2147483647) # Max int32 value. + km = KMeans(self.num_states, random_state=int(sklearn_key)).fit(emissions.reshape(-1, self.emission_dim)) _emission_weights = jnp.zeros((self.num_states, self.emission_dim, self.input_dim)) _emission_biases = jnp.array(km.cluster_centers_) _emission_covs = jnp.tile(jnp.eye(self.emission_dim)[None, :, :], (self.num_states, 1, 1)) diff --git a/_modules/dynamax/hidden_markov_model/models/logreg_hmm.html b/_modules/dynamax/hidden_markov_model/models/logreg_hmm.html index bc582d26..e8bf51f4 100644 --- a/_modules/dynamax/hidden_markov_model/models/logreg_hmm.html +++ b/_modules/dynamax/hidden_markov_model/models/logreg_hmm.html @@ -334,7 +334,9 @@

Source code for dynamax.hidden_markov_model.models.logreg_hmm

flat_emissions = emissions.reshape(-1,) flat_inputs = inputs.reshape(-1, self.input_dim) - km = KMeans(self.num_states).fit(flat_inputs) + key, subkey = jr.split(key) # Create a random seed for SKLearn. + sklearn_key = jr.randint(subkey, shape=(), minval=0, maxval=2147483647) # Max int32 value. + km = KMeans(self.num_states, random_state=int(sklearn_key)).fit(flat_inputs) _emission_weights = jnp.zeros((self.num_states, self.input_dim)) _emission_biases = jnp.array([tfb.Sigmoid().inverse(flat_emissions[km.labels_ == k].mean()) for k in range(self.num_states)]) diff --git a/_modules/dynamax/linear_gaussian_ssm/inference.html b/_modules/dynamax/linear_gaussian_ssm/inference.html index 4c0c7167..fda844fc 100644 --- a/_modules/dynamax/linear_gaussian_ssm/inference.html +++ b/_modules/dynamax/linear_gaussian_ssm/inference.html @@ -283,9 +283,13 @@

Source code for dynamax.linear_gaussian_ssm.inference

import jax.numpy as jnp import jax.random as jr from jax import lax -from tensorflow_probability.substrates.jax.distributions import MultivariateNormalFullCovariance as MVN from functools import wraps import inspect +import warnings + +from tensorflow_probability.substrates.jax.distributions import ( + MultivariateNormalDiagPlusLowRankCovariance as MVNLowRank, + MultivariateNormalFullCovariance as MVN) from jax.tree_util import tree_map from jaxtyping import Array, Float @@ -323,10 +327,22 @@

Source code for dynamax.linear_gaussian_ssm.inference

:param cov: dynamics covariance $Q$ """ - weights: Union[Float[Array, "state_dim state_dim"], Float[Array, "ntime state_dim state_dim"], ParameterProperties] - bias: Union[Float[Array, "state_dim"], Float[Array, "ntime state_dim"], ParameterProperties] - input_weights: Union[Float[Array, "state_dim input_dim"], Float[Array, "ntime state_dim input_dim"], ParameterProperties] - cov: Union[Float[Array, "state_dim state_dim"], Float[Array, "ntime state_dim state_dim"], Float[Array, "state_dim_triu"], ParameterProperties]
+ weights: Union[ParameterProperties, + Float[Array, "state_dim state_dim"], + Float[Array, "ntime state_dim state_dim"]] + + bias: Union[ParameterProperties, + Float[Array, "state_dim"], + Float[Array, "ntime state_dim"]] + + input_weights: Union[ParameterProperties, + Float[Array, "state_dim input_dim"], + Float[Array, "ntime state_dim input_dim"]] + + cov: Union[ParameterProperties, + Float[Array, "state_dim state_dim"], + Float[Array, "ntime state_dim state_dim"], + Float[Array, "state_dim_triu"]]
[docs]class ParamsLGSSMEmissions(NamedTuple): @@ -342,11 +358,24 @@

Source code for dynamax.linear_gaussian_ssm.inference

:param cov: emission covariance $R$ """ - weights: Union[Float[Array, "emission_dim state_dim"], Float[Array, "ntime emission_dim state_dim"], ParameterProperties] - bias: Union[Float[Array, "emission_dim"], Float[Array, "ntime emission_dim"], ParameterProperties] - input_weights: Union[Float[Array, "emission_dim input_dim"], Float[Array, "ntime emission_dim input_dim"], ParameterProperties] - cov: Union[Float[Array, "emission_dim emission_dim"], Float[Array, "ntime emission_dim emission_dim"], Float[Array, "emission_dim_triu"], ParameterProperties]
- + weights: Union[ParameterProperties, + Float[Array, "emission_dim state_dim"], + Float[Array, "ntime emission_dim state_dim"]] + + bias: Union[ParameterProperties, + Float[Array, "emission_dim"], + Float[Array, "ntime emission_dim"]] + + input_weights: Union[ParameterProperties, + Float[Array, "emission_dim input_dim"], + Float[Array, "ntime emission_dim input_dim"]] + + cov: Union[ParameterProperties, + Float[Array, "emission_dim emission_dim"], + Float[Array, "ntime emission_dim emission_dim"], + Float[Array, "emission_dim"], + Float[Array, "ntime emission_dim"], + Float[Array, "emission_dim_triu"]]
[docs]class ParamsLGSSM(NamedTuple): @@ -397,14 +426,46 @@

Source code for dynamax.linear_gaussian_ssm.inference

# Helper functions -# _get_params = lambda x, dim, t: x[t] if x.ndim == dim + 1 else x -def _get_params(x, dim, t): + +def _get_one_param(x, dim, t): + """Helper function to get one parameter at time t.""" if callable(x): return x(t) elif x.ndim == dim + 1: return x[t] else: return x + +def _get_params(params, num_timesteps, t): + """Helper function to get parameters at time t.""" + assert not callable(params.emissions.cov), "Emission covariance cannot be a callable." + + F = _get_one_param(params.dynamics.weights, 2, t) + B = _get_one_param(params.dynamics.input_weights, 2, t) + b = _get_one_param(params.dynamics.bias, 1, t) + Q = _get_one_param(params.dynamics.cov, 2, t) + H = _get_one_param(params.emissions.weights, 2, t) + D = _get_one_param(params.emissions.input_weights, 2, t) + d = _get_one_param(params.emissions.bias, 1, t) + + if len(params.emissions.cov.shape) == 1: + R = _get_one_param(params.emissions.cov, 1, t) + elif len(params.emissions.cov.shape) > 2: + R = _get_one_param(params.emissions.cov, 2, t) + elif params.emissions.cov.shape[0] != num_timesteps: + R = _get_one_param(params.emissions.cov, 2, t) + elif params.emissions.cov.shape[1] != num_timesteps: + R = _get_one_param(params.emissions.cov, 1, t) + else: + R = _get_one_param(params.emissions.cov, 2, t) + warnings.warn( + "Emission covariance has shape (N,N) where N is the number of timesteps. " + "The covariance will be interpreted as static and non-diagonal. To " + "specify a dynamic and diagonal covariance, pass it as a 3D array.") + + return F, B, b, Q, H, D, d, R + + _zeros_if_none = lambda x, shape: x if x is not None else jnp.zeros(shape) @@ -481,7 +542,6 @@

Source code for dynamax.linear_gaussian_ssm.inference

S = (R + H * P * H') K = P * H' * S^{-1} PP = P - K S K' = Sigma_cond - **Note! This can be done more efficiently when R is diagonal.** Args: m (D_hid,): prior mean. @@ -497,9 +557,25 @@

Source code for dynamax.linear_gaussian_ssm.inference

mu_pred (D_hid,): predicted mean. Sigma_pred (D_hid,D_hid): predicted covariance. """ - # Compute the Kalman gain - S = R + H @ P @ H.T - K = psd_solve(S, H @ P).T + if R.ndim == 2: + S = R + H @ P @ H.T + K = psd_solve(S, H @ P).T + else: + # Optimization using Woodbury identity with A=R, U=H@chol(P), V=U.T, C=I + # (see https://en.wikipedia.org/wiki/Woodbury_matrix_identity) + I = jnp.eye(P.shape[0]) + U = H @ jnp.linalg.cholesky(P) + X = U / R[:, None] + S_inv = jnp.diag(1.0 / R) - X @ psd_solve(I + U.T @ X, X.T) + """ + # Could alternatively use U=H and C=P + R_inv = jnp.diag(1.0 / R) + P_inv = psd_solve(P, jnp.eye(P.shape[0])) + S_inv = R_inv - R_inv @ H @ psd_solve(P_inv + H.T @ R_inv @ H, H.T @ R_inv) + """ + K = P @ H.T @ S_inv + S = jnp.diag(R) + H @ P @ H.T + Sigma_cond = P - K @ S @ K.T mu_cond = m + K @ (y - D @ u - d - H @ m) return mu_cond, symmetrize(Sigma_cond) @@ -567,6 +643,8 @@

Source code for dynamax.linear_gaussian_ssm.inference

return wrapper + + def lgssm_joint_sample( params: ParamsLGSSM, key: PRNGKey, @@ -584,7 +662,6 @@

Source code for dynamax.linear_gaussian_ssm.inference

latent states and emissions """ - params, inputs = preprocess_params_and_inputs(params, num_timesteps, inputs) def _sample_transition(key, F, B, b, Q, x_tm1, u): @@ -593,6 +670,7 @@

Source code for dynamax.linear_gaussian_ssm.inference

def _sample_emission(key, H, D, d, R, x, u): mean = H @ x + D @ u + d + R = jnp.diag(R) if R.ndim==1 else R return MVN(mean, R).sample(seed=key) def _sample_initial(key, params, inputs): @@ -600,10 +678,7 @@

Source code for dynamax.linear_gaussian_ssm.inference

initial_state = MVN(params.initial.mean, params.initial.cov).sample(seed=key1) - H0 = _get_params(params.emissions.weights, 2, 0) - D0 = _get_params(params.emissions.input_weights, 2, 0) - d0 = _get_params(params.emissions.bias, 1, 0) - R0 = _get_params(params.emissions.cov, 2, 0) + H0, D0, d0, R0 = _get_params(params, num_timesteps, 0)[4:] u0 = tree_map(lambda x: x[0], inputs) initial_emission = _sample_emission(key2, H0, D0, d0, R0, initial_state, u0) @@ -613,15 +688,8 @@

Source code for dynamax.linear_gaussian_ssm.inference

key, t, inpt = args key1, key2 = jr.split(key, 2) - # Shorthand: get parameters and inputs for time index t - F = _get_params(params.dynamics.weights, 2, t) - B = _get_params(params.dynamics.input_weights, 2, t) - b = _get_params(params.dynamics.bias, 1, t) - Q = _get_params(params.dynamics.cov, 2, t) - H = _get_params(params.emissions.weights, 2, t) - D = _get_params(params.emissions.input_weights, 2, t) - d = _get_params(params.emissions.bias, 1, t) - R = _get_params(params.emissions.cov, 2, t) + # Get parameters and inputs for time index t + F, B, b, Q, H, D, d, R = _get_params(params, num_timesteps, t) # Sample from transition and emission distributions state = _sample_transition(key1, F, B, b, Q, prev_state, inpt) @@ -668,23 +736,26 @@

Source code for dynamax.linear_gaussian_ssm.inference

num_timesteps = len(emissions) inputs = jnp.zeros((num_timesteps, 0)) if inputs is None else inputs + def _log_likelihood(pred_mean, pred_cov, H, D, d, R, u, y): + m = H @ pred_mean + D @ u + d + if R.ndim==2: + S = R + H @ pred_cov @ H.T + return MVN(m, S).log_prob(y) + else: + L = H @ jnp.linalg.cholesky(pred_cov) + return MVNLowRank(m, R, L).log_prob(y) + + def _step(carry, t): ll, pred_mean, pred_cov = carry # Shorthand: get parameters and inputs for time index t - F = _get_params(params.dynamics.weights, 2, t) - B = _get_params(params.dynamics.input_weights, 2, t) - b = _get_params(params.dynamics.bias, 1, t) - Q = _get_params(params.dynamics.cov, 2, t) - H = _get_params(params.emissions.weights, 2, t) - D = _get_params(params.emissions.input_weights, 2, t) - d = _get_params(params.emissions.bias, 1, t) - R = _get_params(params.emissions.cov, 2, t) + F, B, b, Q, H, D, d, R = _get_params(params, num_timesteps, t) u = inputs[t] y = emissions[t] # Update the log likelihood - ll += MVN(H @ pred_mean + D @ u + d, H @ pred_cov @ H.T + R).log_prob(y) + ll += _log_likelihood(pred_mean, pred_cov, H, D, d, R, u, y) # Condition on this emission filtered_mean, filtered_cov = _condition_on(pred_mean, pred_cov, H, D, d, R, u, y) @@ -732,11 +803,8 @@

Source code for dynamax.linear_gaussian_ssm.inference

smoothed_mean_next, smoothed_cov_next = carry t, filtered_mean, filtered_cov = args - # Shorthand: get parameters and inputs for time index t - F = _get_params(params.dynamics.weights, 2, t) - B = _get_params(params.dynamics.input_weights, 2, t) - b = _get_params(params.dynamics.bias, 1, t) - Q = _get_params(params.dynamics.cov, 2, t) + # Get parameters and inputs for time index t + F, B, b, Q = _get_params(params, num_timesteps, t)[:4] u = inputs[t] # This is like the Kalman gain but in reverse @@ -804,10 +872,7 @@

Source code for dynamax.linear_gaussian_ssm.inference

key, filtered_mean, filtered_cov, t = args # Shorthand: get parameters and inputs for time index t - F = _get_params(params.dynamics.weights, 2, t) - B = _get_params(params.dynamics.input_weights, 2, t) - b = _get_params(params.dynamics.bias, 1, t) - Q = _get_params(params.dynamics.cov, 2, t) + F, B, b, Q = _get_params(params, num_timesteps, t)[:4] u = inputs[t] # Condition on next state diff --git a/_modules/dynamax/utils/utils.html b/_modules/dynamax/utils/utils.html index f96ea7ef..ff3a69ec 100644 --- a/_modules/dynamax/utils/utils.html +++ b/_modules/dynamax/utils/utils.html @@ -291,6 +291,7 @@

Source code for dynamax.utils.utils

 from jaxtyping import Array, Int
 from scipy.optimize import linear_sum_assignment
 from typing import Optional
+from jax.scipy.linalg import cho_factor, cho_solve
 
 def has_tpu():
     try:
@@ -480,10 +481,12 @@ 

Source code for dynamax.utils.utils

     return perm
-def psd_solve(A,b): +def psd_solve(A, b, diagonal_boost=1e-9): """A wrapper for coordinating the linalg solvers used in the library for psd matrices.""" - A = A + 1e-6 - return jnp.linalg.solve(A,b) + A = symmetrize(A) + diagonal_boost * jnp.eye(A.shape[-1]) + L, lower = cho_factor(A, lower=True) + x = cho_solve((L, lower), b) + return x def symmetrize(A): """Symmetrize one or more matrices.""" diff --git a/_sources/notebooks/linear_gaussian_ssm/kf_linreg.ipynb b/_sources/notebooks/linear_gaussian_ssm/kf_linreg.ipynb index ea352631..ea705f19 100644 --- a/_sources/notebooks/linear_gaussian_ssm/kf_linreg.ipynb +++ b/_sources/notebooks/linear_gaussian_ssm/kf_linreg.ipynb @@ -10,7 +10,7 @@ "\n", "We perform sequential (recursive) Bayesian inference for the parameters of a linear regression model\n", "using the Kalman filter. (This algorithm is also known as recursive least squares.)\n", - "To do this, we treat the parameers of the model as the unknown hidden states.\n", + "To do this, we treat the parameters of the model as the unknown hidden states.\n", "We assume that these are constant over time.\n", "The graphical model is shown below.\n", "\n", diff --git a/api.html b/api.html index bd4cf4af..cea3bb0e 100644 --- a/api.html +++ b/api.html @@ -3281,10 +3281,10 @@

Types#
Parameters:
    -
  • weights (Union[Float[Array, 'state_dim state_dim'], Float[Array, 'ntime state_dim state_dim'], ParameterProperties]) – dynamics weights \(F\)

  • -
  • bias (Union[Float[Array, 'state_dim'], Float[Array, 'ntime state_dim'], ParameterProperties]) – dynamics bias \(b\)

  • -
  • input_weights (Union[Float[Array, 'state_dim input_dim'], Float[Array, 'ntime state_dim input_dim'], ParameterProperties]) – dynamics input weights \(B\)

  • -
  • cov (Union[Float[Array, 'state_dim state_dim'], Float[Array, 'ntime state_dim state_dim'], Float[Array, 'state_dim_triu'], ParameterProperties]) – dynamics covariance \(Q\)

  • +
  • weights (Union[ParameterProperties, Float[Array, 'state_dim state_dim'], Float[Array, 'ntime state_dim state_dim']]) – dynamics weights \(F\)

  • +
  • bias (Union[ParameterProperties, Float[Array, 'state_dim'], Float[Array, 'ntime state_dim']]) – dynamics bias \(b\)

  • +
  • input_weights (Union[ParameterProperties, Float[Array, 'state_dim input_dim'], Float[Array, 'ntime state_dim input_dim']]) – dynamics input weights \(B\)

  • +
  • cov (Union[ParameterProperties, Float[Array, 'state_dim state_dim'], Float[Array, 'ntime state_dim state_dim'], Float[Array, 'state_dim_triu']]) – dynamics covariance \(Q\)

@@ -3301,10 +3301,10 @@

Types#
Parameters:
    -
  • weights (Union[Float[Array, 'emission_dim state_dim'], Float[Array, 'ntime emission_dim state_dim'], ParameterProperties]) – emission weights \(H\)

  • -
  • bias (Union[Float[Array, 'emission_dim'], Float[Array, 'ntime emission_dim'], ParameterProperties]) – emission bias \(d\)

  • -
  • input_weights (Union[Float[Array, 'emission_dim input_dim'], Float[Array, 'ntime emission_dim input_dim'], ParameterProperties]) – emission input weights \(D\)

  • -
  • cov (Union[Float[Array, 'emission_dim emission_dim'], Float[Array, 'ntime emission_dim emission_dim'], Float[Array, 'emission_dim_triu'], ParameterProperties]) – emission covariance \(R\)

  • +
  • weights (Union[ParameterProperties, Float[Array, 'emission_dim state_dim'], Float[Array, 'ntime emission_dim state_dim']]) – emission weights \(H\)

  • +
  • bias (Union[ParameterProperties, Float[Array, 'emission_dim'], Float[Array, 'ntime emission_dim']]) – emission bias \(d\)

  • +
  • input_weights (Union[ParameterProperties, Float[Array, 'emission_dim input_dim'], Float[Array, 'ntime emission_dim input_dim']]) – emission input weights \(D\)

  • +
  • cov (Union[ParameterProperties, Float[Array, 'emission_dim emission_dim'], Float[Array, 'ntime emission_dim emission_dim'], Float[Array, 'emission_dim'], Float[Array, 'ntime emission_dim'], Float[Array, 'emission_dim_triu']]) – emission covariance \(R\)

diff --git a/notebooks/generalized_gaussian_ssm/cmgf_logistic_regression_demo.html b/notebooks/generalized_gaussian_ssm/cmgf_logistic_regression_demo.html index c7a7e4b2..0f52e69e 100644 --- a/notebooks/generalized_gaussian_ssm/cmgf_logistic_regression_demo.html +++ b/notebooks/generalized_gaussian_ssm/cmgf_logistic_regression_demo.html @@ -460,7 +460,7 @@

Simulation and Plotting

@@ -699,10 +699,10 @@

EKF#

-../../_images/e12d61c1fd0f9c3e885b48759488571088f050813912e9dbdad64041c2d36dc1.png -../../_images/641bd290fa1c3c4a57f89bc31ac6afab58e534d88ead21be50441ca6005c5746.png -../../_images/87c5f1dc4941f183b65338f3899b002a52251d62af4fab3b94c37a675351d1e3.png -../../_images/b41734fcecefdfb4e0c2f1602211e8d712889167913dc290532aae39ab27f3ab.png +../../_images/33f11bf82640bbd15bad15a77ca736574dfc9a61baec9d5c11ba72d30512f681.png +../../_images/933e73cb83c63211c4d8fb318f571a166ac37e6913bcd4031c88abf4823e3306.png +../../_images/1f6af34808c383447d5792b76b341648fa0eae69e094108643aa7f46b33bb428.png +../../_images/a685db5f6c59f319118445c20ca61c71031f0c78f6750a99ca6e3367c01243a7.png
@@ -727,10 +727,10 @@

UKF#

-../../_images/912852e897a0b9ead0b277d985aa56667a46b2ea188f8d6b7be26dad5f7d9bc5.png -../../_images/0adf22464d7f435620598aea06069f4344d96ebb7c20e1ab45fbc2eb6d5d00c7.png -../../_images/87679168f59998b97966d391d7d9b42a64e6333ea71edbac874238a952acae2d.png -../../_images/f618dbe3179e624aa4772bbe48f63939c5ef959145f4b3dca71c124bb50aeca0.png +../../_images/52c5c0de6e0029cf5c89756bdee8ce1bd7e0373adda03522d3de93638161f5f3.png +../../_images/490b92bead87f97e6d149fbd076a2fa46785affb2f143fb9ee84a711e2c726ac.png +../../_images/819f182fd60e5a978b8b8983ef4957be68432d498f952e74f89e63cce3cff915.png +../../_images/9229ee12b64ada26acce669a8fd7b7b93a99e2623a32de2ec0aa5bdf151c551f.png
@@ -756,10 +756,10 @@

GHKF#

-../../_images/65d1c236bad54446d77b40faf6fe2005b50f5922102d79ce9b639224019bacf5.png -../../_images/0b46e049fa3cf8be995407500af2212fbb9580f32acc08ac7efc9871b8a01383.png -../../_images/e4bd4fb7df7b45f941b04d49b9da8614231847cf64ca525e6329bcdf6f5adb09.png -../../_images/da189c4feebbb0b77c5b82fef32c5ebaf3f4962c0c09e32afb13d2d0b71abef5.png +../../_images/815ac97b1e5dace7619bc289e773a7d95d79a3910864581eea8337ed19c580e8.png +../../_images/b1b002fc8afa49c70272e55bc74f78879ea08724ada0edaa8a6a565c43b3e8a6.png +../../_images/5f8185295d695cd446ed7809897728c7f514dce1736084ba73d7c1cf27f62c72.png +../../_images/9b11fd92495b61221f2154967f34d2039b0fb158c9ab8c1ee3c888d7d8351192.png
diff --git a/notebooks/generalized_gaussian_ssm/cmgf_mlp_classification_demo.html b/notebooks/generalized_gaussian_ssm/cmgf_mlp_classification_demo.html index 8f7011b5..65c4bba9 100644 --- a/notebooks/generalized_gaussian_ssm/cmgf_mlp_classification_demo.html +++ b/notebooks/generalized_gaussian_ssm/cmgf_mlp_classification_demo.html @@ -492,7 +492,7 @@

Create data -../../_images/e77985327dbba218c44ffd7d5aef34dd145fd334bf06cb48afaba84166fb2326.png +../../_images/2e58d28b7e191a47ef0a87e26a3488aee8d65b3eb43377df9a32a79c68d9aa04.png

@@ -622,7 +622,7 @@

Online Training Using CMGF-EKF -../../_images/f2ac6132d80d5e444a1094e28e2b1326d0dafd56187e89e81492ef8fb4e5e611.png +../../_images/b9187d510324b9aee96d5c68f0258aaa3b8c0d896d0190a3d2334646abb396d0.png

Next, we visualize the training procedure by evaluating the intermediate steps.

@@ -639,7 +639,7 @@

Online Training Using CMGF-EKF -../../_images/f506e725dba3331da3ba63b88a4b7ccbd524a0e128f45ffa72a33c17eacc1403.png +../../_images/f96b7116e5059e858eb4b83b7d5ad72a5431f5f862831ad1334f412f15c92d02.png

Finally, we generate a video of the MLP-Classifier being trained.

diff --git a/notebooks/generalized_gaussian_ssm/cmgf_poisson_demo.html b/notebooks/generalized_gaussian_ssm/cmgf_poisson_demo.html index 3c923c5a..f6a98b17 100644 --- a/notebooks/generalized_gaussian_ssm/cmgf_poisson_demo.html +++ b/notebooks/generalized_gaussian_ssm/cmgf_poisson_demo.html @@ -631,7 +631,7 @@

Model#

-../../_images/d5b209a73506fdacdb16962e3da5bf260743fcea6510e4ac29c15d897cdef276.png +../../_images/33976f0f40bd39e97a64bf4f0dcbbe79fef5d16e67821cadc0309ea9c51ca56c.png
@@ -653,7 +653,7 @@

CMGF-EKF Inference -../../_images/741d8d95406e5e30ad2053d8a4e0078ddb99b1e4198429bc401372e14baffe59.png +../../_images/ded363600851b407e6692777015d7cd4f6c00cc309f46e1b6966e90b40af2ecb.png

diff --git a/notebooks/hmm/autoregressive_hmm.html b/notebooks/hmm/autoregressive_hmm.html index 8cf315c7..bc582b6a 100644 --- a/notebooks/hmm/autoregressive_hmm.html +++ b/notebooks/hmm/autoregressive_hmm.html @@ -464,10 +464,10 @@

Manually construct an ARHMM -
<matplotlib.colorbar.Colorbar at 0x7f837ca09880>
+
<matplotlib.colorbar.Colorbar at 0x7f5bf015efd0>
 
-../../_images/f576446ee5510e556a6b4afc7bb3f6986356ef863a6c5b0093fcff8fbaec8d6f.png +../../_images/bda92d5a38e9ff72d108d249cff5ca19d354d26ac95dad9c037d49242cd3fc23.png
-../../_images/b993b0a6f4bff4cded2d6f5fdcac59bf735b66283c89e81ab78a8445753feb5e.png +../../_images/ff0a571b9b0cae6c5ff97453f8478c9abddaa4dc90bce6f5eda3e9f7b7c5e44f.png

@@ -566,7 +566,7 @@

Sample emissions from the ARHMM
Text(0, 0.5, '$x_2$')
 
-../../_images/6ce5cbe503128a233aaa126b76d0ce557e120b5d7bd30ad3b9acfd5096eccbcf.png +../../_images/6d28d58e9e1955e8f3b6fbaf9e18ca75ace34b35755be23288de6c7f701c4133.png

Below, we visualize each component of of the observation variable as a time series. The colors correspond to the latent state. The dotted lines represent the stationary point of the the corresponding AR state while the solid lines are the actual observations sampled from the HMM.

@@ -598,7 +598,7 @@

Sample emissions from the ARHMM -../../_images/18a32bc19a113a6bf4a55533662c9c6de8ed2d438e40f5e4d7f73b6fbe2b6b37.png +../../_images/e5337d4960debadc5bcc09344e1d2320e9c80277987aef1848488af807d95b3b.png @@ -620,8 +620,8 @@

Fit an ARHMM - @@ -737,7 +737,7 @@

Plot the true and inferred discrete states -../../_images/bde792d66f7571528d9e6fc5504c268eded53930ed6f4468f80148d88267bbcc.png +../../_images/a6f4f98d7099b30142dc77dd3a47e14ea38b2f5761982dde2da2dd5c463baab5.png @@ -767,7 +767,7 @@

Sample new data from the fitted model -../../_images/06479e2da8e6176990942193a044d57fb03186fcac352c58b09325d6a319025e.png +../../_images/17908d569fb701f26a4a6599f6d64d9911fe1ea5e9c5060c368cb51ae5f3a35b.png diff --git a/notebooks/hmm/casino_hmm_inference.html b/notebooks/hmm/casino_hmm_inference.html index b04f5061..9761f94e 100644 --- a/notebooks/hmm/casino_hmm_inference.html +++ b/notebooks/hmm/casino_hmm_inference.html @@ -413,8 +413,8 @@

Setup#

Make a Categorical HMM#

First, we’ll construct a categorical hidden Markov model (HMM). The model has discrete latent states \(z_t \in \{1,2\}\) to specify which of the two dice is used on the \(t\)-th roll. You observe the outcomes, or “emissions,” \(y_t \in \{1,\ldots,6\}\). The categorical HMM specifies a joint distribution over the latent states and emissions,

-
-(1)#\[\begin{align} +
+(1)#\[\begin{align} p(y_{1:T}, z_{1:T} \mid \theta) &= \mathrm{Cat}(z_1 \mid \pi) \prod_{t=2}^T \mathrm{Cat}(z_t \mid A_{z_{t-1}}) @@ -591,7 +591,7 @@

Vectorizing computation

-../../_images/3f70164bbe30f5b734cce4319c7c75ef465249e4544031aa2292d88396af948a.png +../../_images/42edf4af7ef38bae819032697bd5f8f4ce452ad30bbc0fb4a85a43c8577ffaa8.png

The difference in outcomes is borne out in the empirical frequencies of seeing a six in each state.

@@ -618,8 +618,8 @@

Vectorizing computation

Filtering (forwards algorithm)#

In an HMM, filtering means computing the probabilities of the latent state at time \(t\) given emissions up to and including time \(t\). Mathematically, the filtering distributions are,

-
-(2)#\[\begin{align} +
+(2)#\[\begin{align} p(z_t \mid y_{1:t}, \theta) &\propto \sum_{z_1} \cdots \sum_{z_{t-1}} p(z_{1:t}, y_{1:t} \mid \theta) \end{align}\]

The forward filtering algorithm (Murphy, 2023; Ch 8.2.2) computes these probabilities for all timesteps \(t\) in recursive fashion. It also returns an estimate of the marginal likelihood, \(p(y_{1:T} \mid \theta)\), which is useful for model comparison and fitting.

@@ -669,7 +669,7 @@

Plot the filtering distribution -../../_images/c61d00f28619c8b2b29fba2a88b38beaa6691444b04cf1b50149b26f235e2cdd.png +../../_images/86ed52c3774b16b12bb37f4b045ba679fc04c2196b62ec5697a48bdec0c1bd12.png

@@ -677,8 +677,8 @@

Plot the filtering distribution

Smoothing (forwards-backwards algorithm)#

Smoothing means computing the probabilities of the latent state at time \(t\) given all emissions, including those that come after. Mathematically, the smoothing distributions are,

-
-(3)#\[\begin{align} +
+(3)#\[\begin{align} p(z_t \mid y_{1:T}, \theta) &\propto \sum_{z_1} \cdots \sum_{z_{t-1}} \sum_{z_{t+1}} \cdots \sum_{z_T} p(z_{1:T}, y_{1:T} \mid \theta). \end{align}\]

The forward-backward algorithm (Murphy, 2023; Ch 8.2.4) computes these probabilities for all timesteps \(t\) in recursive fashion.

@@ -704,7 +704,7 @@

Smoothing (forwards-backwards algorithm) -../../_images/c281c94298347983495757caf2e00aad3e3a6517676b6ac041e8d39d171aece6.png +../../_images/3e37d1e3ec1685ed42a1c64d10533865b64d6a8a31c5127d2d5f94eba7c6c6d0.png

Compare the smoothed probabilities to the filtered ones. See how the sharp rises in probability (e.g. around time step 235) are attenuated in the smoothing distribution? That’s because the filtering distribution is sensitive to when the die comes up six, thinking it might indicate a switch to the loaded die. The smoothing distributions benefit from future outcomes, which suggest that the six was just a chance event.

@@ -712,8 +712,8 @@

Smoothing (forwards-backwards algorithm)

Most likely state sequence (Viterbi algorithm)#

Finally, we can compute the most likely state sequence (aka maximum a posteriori or “MAP” sequence) using the Viterbi algorithm (Murphy, 2023; Ch 8.2.7). This dynamic programming algorithm solves for

-
-(4)#\[\begin{align} +
+(4)#\[\begin{align} z_{1:T}^\star &= \text{arg max}_{z_{1:T}} \; p(z_{1:T}, y_{1:T} \mid \theta). \end{align}\]

You can compute the MAP sequence with the following code.

@@ -746,7 +746,7 @@

Most likely state sequence (Viterbi algorithm) -../../_images/6d982d6f5c887695bcbc872c1c6a1ca52a4230fb8a450a5d7691ef75cda702ff.png +../../_images/7ad34baa6add7e5ea6ecaca3cb1f36061f110d791fa3a1106c88e4a17abd0292.png

diff --git a/notebooks/hmm/casino_hmm_learning.html b/notebooks/hmm/casino_hmm_learning.html index ca244555..967c00bf 100644 --- a/notebooks/hmm/casino_hmm_learning.html +++ b/notebooks/hmm/casino_hmm_learning.html @@ -605,7 +605,7 @@

Stochastic Gradient Descent with Mini-Batches -../../_images/67846a2a1b2011cd8bec7a53fe48674e7cbcd441301b658d82222e24839c04d7.png +../../_images/8c7e6e7ef80d7acc80200b6945ef4cf46da3d66c9d954f0cf94a2b9330c39f94.png

As you can see, stochastic gradient descent converges much more quickly that full-batch gradient descent in this example. Intuitively, that’s because SGD takes multiple steps per epoch (i.e. each complete sweep through the dataset), whereas full-batch gradient descent takes only one.

@@ -723,7 +723,7 @@

Compare the learning curves -../../_images/364817e02926ed6c030c2913a3741c219ee3f75b8981d800f6d46cb9295df95d.png +../../_images/347df011cfab6dfe9e40d06883172d0c54690724a220847f222bc21133c47a2c.png

Not only does EM converge much faster on this example (here, in only a handful of iterations), it also converges to a better estimate of the parameters. Indeed, it essentially matches the loss obtained by the parameters that truly generated the data. We see that its parameter estimates are nearly the same as the true parameters, up to label switching.

diff --git a/notebooks/hmm/gaussian_hmm.html b/notebooks/hmm/gaussian_hmm.html index a57c7a54..11f686a9 100644 --- a/notebooks/hmm/gaussian_hmm.html +++ b/notebooks/hmm/gaussian_hmm.html @@ -356,8 +356,8 @@

Contents

Gaussian HMM: Cross-validation and Model Selection#

A Gaussian HMM has emissions of the form,

-
-(1)#\[\begin{align} +
+(1)#\[\begin{align} p(y_t \mid z_t, \theta) &= \mathcal{N}(y_t \mid \mu_{z_t}, \Sigma_{z_t}) \end{align}\]

where the emission parameters \(\theta = \{(\mu_k, \Sigma_k)\}_{k=1}^K\) include the means and covariances for each of the \(K\) discrete states.

@@ -522,7 +522,7 @@

Generate sample data

-../../_images/3ac13913497b3f7174d7fee9e1ede4256a8627002d19c6495ab42357213673b6.png +../../_images/6f75657f78396bd5265c5f5ed46aaeece4bca1c86b65b4531b24d1c8b6460a9f.png
-../../_images/492407c50a043f07f5fdaaa3710db407c9e08fa0b357dba1ed3db645c78a26e8.png +../../_images/34f39e4f23c00bd7ec1af1dd735084b7bade02aec516acf60ef81331bc3400ba.png
@@ -588,57 +588,57 @@

Write a helper function to perform leave-one-out cross-validation
fitting model with 2 states
 
-
/opt/hostedtoolcache/Python/3.9.17/x64/lib/python3.9/site-packages/sklearn/cluster/_kmeans.py:870: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning
-  warnings.warn(
+
/opt/hostedtoolcache/Python/3.9.17/x64/lib/python3.9/site-packages/sklearn/cluster/_kmeans.py:1412: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning
+  super()._check_params_vs_input(X, default_n_init=10)
 
fitting model with 3 states
 
-
/opt/hostedtoolcache/Python/3.9.17/x64/lib/python3.9/site-packages/sklearn/cluster/_kmeans.py:870: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning
-  warnings.warn(
+
/opt/hostedtoolcache/Python/3.9.17/x64/lib/python3.9/site-packages/sklearn/cluster/_kmeans.py:1412: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning
+  super()._check_params_vs_input(X, default_n_init=10)
 
fitting model with 4 states
 
-
/opt/hostedtoolcache/Python/3.9.17/x64/lib/python3.9/site-packages/sklearn/cluster/_kmeans.py:870: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning
-  warnings.warn(
+
/opt/hostedtoolcache/Python/3.9.17/x64/lib/python3.9/site-packages/sklearn/cluster/_kmeans.py:1412: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning
+  super()._check_params_vs_input(X, default_n_init=10)
 
fitting model with 5 states
 
-
/opt/hostedtoolcache/Python/3.9.17/x64/lib/python3.9/site-packages/sklearn/cluster/_kmeans.py:870: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning
-  warnings.warn(
+
/opt/hostedtoolcache/Python/3.9.17/x64/lib/python3.9/site-packages/sklearn/cluster/_kmeans.py:1412: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning
+  super()._check_params_vs_input(X, default_n_init=10)
 
fitting model with 6 states
 
-
/opt/hostedtoolcache/Python/3.9.17/x64/lib/python3.9/site-packages/sklearn/cluster/_kmeans.py:870: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning
-  warnings.warn(
+
/opt/hostedtoolcache/Python/3.9.17/x64/lib/python3.9/site-packages/sklearn/cluster/_kmeans.py:1412: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning
+  super()._check_params_vs_input(X, default_n_init=10)
 
fitting model with 7 states
 
-
/opt/hostedtoolcache/Python/3.9.17/x64/lib/python3.9/site-packages/sklearn/cluster/_kmeans.py:870: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning
-  warnings.warn(
+
/opt/hostedtoolcache/Python/3.9.17/x64/lib/python3.9/site-packages/sklearn/cluster/_kmeans.py:1412: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning
+  super()._check_params_vs_input(X, default_n_init=10)
 
fitting model with 8 states
 
-
/opt/hostedtoolcache/Python/3.9.17/x64/lib/python3.9/site-packages/sklearn/cluster/_kmeans.py:870: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning
-  warnings.warn(
+
/opt/hostedtoolcache/Python/3.9.17/x64/lib/python3.9/site-packages/sklearn/cluster/_kmeans.py:1412: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning
+  super()._check_params_vs_input(X, default_n_init=10)
 
fitting model with 9 states
 
-
/opt/hostedtoolcache/Python/3.9.17/x64/lib/python3.9/site-packages/sklearn/cluster/_kmeans.py:870: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning
-  warnings.warn(
+
/opt/hostedtoolcache/Python/3.9.17/x64/lib/python3.9/site-packages/sklearn/cluster/_kmeans.py:1412: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning
+  super()._check_params_vs_input(X, default_n_init=10)
 
@@ -659,7 +659,7 @@

Plot the individual and average validation log likelihods as a function of n
Text(0, 0.5, 'avg. validation log prob.')
 
-../../_images/4079e1c464bb4d48cc9825973f64b6495a790e4230943e18b3045b3e8601677b.png +../../_images/ee5602531af72f578f46a761bc67d9d38c238bf8b7a8c7782cc54a86fe270e75.png

There’s no right answer for how to choose the number of states, but reasonable heuristics include:

@@ -696,8 +696,8 @@

Now fit a model to all the training data using the chosen number of states

-
-
/opt/hostedtoolcache/Python/3.9.17/x64/lib/python3.9/site-packages/sklearn/cluster/_kmeans.py:870: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning
-  warnings.warn(
+
/opt/hostedtoolcache/Python/3.9.17/x64/lib/python3.9/site-packages/sklearn/cluster/_kmeans.py:1412: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning
+  super()._check_params_vs_input(X, default_n_init=10)
 
-
/opt/hostedtoolcache/Python/3.9.17/x64/lib/python3.9/site-packages/sklearn/cluster/_kmeans.py:870: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning
-  warnings.warn(
+
/opt/hostedtoolcache/Python/3.9.17/x64/lib/python3.9/site-packages/sklearn/cluster/_kmeans.py:1412: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning
+  super()._check_params_vs_input(X, default_n_init=10)
 
-
/opt/hostedtoolcache/Python/3.9.17/x64/lib/python3.9/site-packages/sklearn/cluster/_kmeans.py:870: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning
-  warnings.warn(
+
/opt/hostedtoolcache/Python/3.9.17/x64/lib/python3.9/site-packages/sklearn/cluster/_kmeans.py:1412: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning
+  super()._check_params_vs_input(X, default_n_init=10)
 
-
/opt/hostedtoolcache/Python/3.9.17/x64/lib/python3.9/site-packages/sklearn/cluster/_kmeans.py:870: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning
-  warnings.warn(
+
/opt/hostedtoolcache/Python/3.9.17/x64/lib/python3.9/site-packages/sklearn/cluster/_kmeans.py:1412: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning
+  super()._check_params_vs_input(X, default_n_init=10)
 
Marginal log probabilities of test data:
                    GaussianHMM:  106.9
            DiagonalGaussianHMM:  117.0
-          SphericalGaussianHMM:  112.8
+          SphericalGaussianHMM:  112.7
    SharedCovarianceGaussianHMM:  111.6
                     True Model:  114.9
 
diff --git a/notebooks/linear_gaussian_ssm/kf_linreg.html b/notebooks/linear_gaussian_ssm/kf_linreg.html index cdfd1b17..80e2f928 100644 --- a/notebooks/linear_gaussian_ssm/kf_linreg.html +++ b/notebooks/linear_gaussian_ssm/kf_linreg.html @@ -352,7 +352,7 @@

Contents

Online linear regression using Kalman filtering#

We perform sequential (recursive) Bayesian inference for the parameters of a linear regression model using the Kalman filter. (This algorithm is also known as recursive least squares.) -To do this, we treat the parameers of the model as the unknown hidden states. +To do this, we treat the parameters of the model as the unknown hidden states. We assume that these are constant over time. The graphical model is shown below.

RLS

@@ -505,10 +505,10 @@

Plot results -
<matplotlib.legend.Legend at 0x7fd1e0e35700>
+
<matplotlib.legend.Legend at 0x7f314c7997f0>
 
-../../_images/4e90bb72f46e93d78fd5ef4e3911af39230413f91cfecf69ecec744f23745315.png +../../_images/c8a58a3d31bd9cd80c2b6863590f947441b967cd83e9ff8a15acab9546cee072.png
diff --git a/notebooks/linear_gaussian_ssm/kf_tracking.html b/notebooks/linear_gaussian_ssm/kf_tracking.html index 4e9c02b9..2f3873fd 100644 --- a/notebooks/linear_gaussian_ssm/kf_tracking.html +++ b/notebooks/linear_gaussian_ssm/kf_tracking.html @@ -496,10 +496,10 @@

Sample some data from the model -
<matplotlib.legend.Legend at 0x7f2154749dc0>
+
<matplotlib.legend.Legend at 0x7f85a07c3250>
 
-../../_images/2b372a3530a20540548c56bcdeb37da742f7d986d049840f5fcce2dc203a6831.png +../../_images/d6f41f66f4e4d3bdd5ae2ae52154c40e80b660f22dc37025c5667cc892ff327c.png
@@ -593,7 +593,7 @@

Perform online filtering
<Axes: >
 

-../../_images/f2605fe80947a3f37dc21d02345e891f27262d9f036ffe13bcf253dd1de6869f.png +../../_images/f3cb567e19776821ecada2c710c6575900c47007d60d1111199d993dc54e4efe.png
@@ -627,7 +627,7 @@

Perform offline smoothing
<Axes: >
 

-../../_images/17e27b8b0c858725bd87f6eec19aa846180651b64e6487aac6dc1f728e9bbe8e.png +../../_images/252c662a9ae585c3ec8b3b6d7de7b7309a51519a2176a017faa4f02a62a0549c.png
@@ -732,9 +732,9 @@

Tracking multiple objects in parallel -../../_images/1324d0fc23bec79d6f3234ffc4084f8777c9757706512855022aa292f18b546a.png -../../_images/62ff5ce8a0e3b6a38ab4689790bb0be9b1a32800b0824ff8a5b4706ba4e03603.png -../../_images/00abd4c88733301bc8e9588389ce97efd14d1e2a53e3699c662ad6c5b558b087.png +../../_images/8aaaba325b045eefd2705614ddb1efcbc1ab0c7c096b491823e3f348e830eb46.png +../../_images/2551d105b38eb2f9de1dd4be0b542c5e1281686d967ed2b1b134a342c8bdfbaf.png +../../_images/5c48e0cad1fc6ee6db1f255ff10b0d67102498e6bdb58a560843062936791be3.png

diff --git a/notebooks/linear_gaussian_ssm/lgssm_hmc.html b/notebooks/linear_gaussian_ssm/lgssm_hmc.html index c6eee535..b20c7fe9 100644 --- a/notebooks/linear_gaussian_ssm/lgssm_hmc.html +++ b/notebooks/linear_gaussian_ssm/lgssm_hmc.html @@ -451,7 +451,7 @@

Generate synthetic training data -../../_images/e593aeb91ddfe42411e47bd8238d7986b99ad9fabbaf95855561cf8b56442464.png +../../_images/dede9b437e9aa770e8eab5b313352914bfde6011585fcb6fff2ea8ecea916de0.png

@@ -514,7 +514,7 @@

Baseline method: use EM to compute MLE
[(100, 10), (100, 10), (100, 10)]
 

-../../_images/6d49cc06abcacd2269cee10abadfb8f78c17cc09e9246c2709fe78cb17780e3e.png +../../_images/2ec04df7a5ddde84220c553f3a6380194e5f4e400f9c580a8e165a002bc3e38c.png
@@ -641,7 +641,7 @@

Call HMC
- 100.00% [500/500 00:39<00:00] + 100.00% [500/500 00:35<00:00]

@@ -657,7 +657,7 @@

Call HMC
Text(0.5, 0, 'log probability')
 

-../../_images/9886d1d569cb4087b621e939732c3cd924e65c401dd20465ef919a414cf6f232.png +../../_images/71d8033ad96101d35a66841c47cf23f9a2ef33d185324a416068537055678d13.png
@@ -777,12 +777,12 @@

Use HMC to infer posterior over a subset of the parameters
- 100.00% [500/500 00:34<00:00] + 100.00% [500/500 00:31<00:00]

-../../_images/b56e9284b07eb409c764cd30401147116877835c48344d0f08f7bb96149684fb.png +../../_images/9d17f609352d6d90546e14cd41734c239e82ff3409f2e2dbb88166270c495943.png
diff --git a/notebooks/linear_gaussian_ssm/lgssm_learning.html b/notebooks/linear_gaussian_ssm/lgssm_learning.html index 8e022065..d6c48e2e 100644 --- a/notebooks/linear_gaussian_ssm/lgssm_learning.html +++ b/notebooks/linear_gaussian_ssm/lgssm_learning.html @@ -415,7 +415,7 @@

Data#
(0.0, 99.0)
 
-../../_images/d8df222a447dec631ae9ba39991e65eb76e7e91a94321c955ff5b6121d1a01ed.png +../../_images/103e44c8aec7e17eb94eab0e39fab5105c35177bdc27d01a1789800db4e352d1.png @@ -476,7 +476,7 @@

Plot results -../../_images/53c6173fac7ea7e6227fdbd4823ba192e2e10e89df784436ff7bc100accb7324.png +../../_images/c72e2c811ea7e87a4e347ab941e5dbc1415897d7849e3de66ed0cd413987f206.png @@ -514,7 +514,7 @@

Fit with EM
- 100.00% [100/100 00:04<00:00] + 100.00% [100/100 00:03<00:00]
@@ -526,8 +526,8 @@

Fit with EM -../../_images/e038b0b0ed820d3b301c88e8bd735241d9d7c2af5017a8721d3e37d481e4808b.png -../../_images/a36d8698a847e6d1987bde4d18aa4a0091e0a5ef2d402bf65c8283f81014e007.png +../../_images/7ab4124e920b3d3d3c41093ecc64fac0bc5b2bcb256e770ffc1f1917e4f9f821.png +../../_images/7c2ce46cf79004e14b6e8ac2e851dd21e2fa357fb5981a03fc852eb014fb0a8a.png @@ -554,8 +554,8 @@

Fit with SGD -../../_images/30379c9df19083f2902969a8281c4ca2742c800b09977a0170301110f342f2e0.png -../../_images/6736638c00a4886688640c5993de08c84d4e1cdcbe9bfd9321ae92a5baf1bcf8.png +../../_images/7103a7b4190a3a7cfdd88bfdd9291e74f3033b0fb69bb07b3f5827e8cd9d44e1.png +../../_images/53ca183780171592178214565140a37b93410e4345b2f844a35fac693ef52d19.png diff --git a/notebooks/linear_gaussian_ssm/lgssm_parallel_inference.html b/notebooks/linear_gaussian_ssm/lgssm_parallel_inference.html index 77f46855..bbb5f32f 100644 --- a/notebooks/linear_gaussian_ssm/lgssm_parallel_inference.html +++ b/notebooks/linear_gaussian_ssm/lgssm_parallel_inference.html @@ -496,7 +496,7 @@

Test parallel inference on a single sequence -../../_images/18da6051c9c8466e2c4761b3b3c44768a3f531aeef432d98cc44fe1edd4794cf.png +../../_images/bae45fe7840e0109a08ef3ff8b44fed431bca57729b78ad565ad084e23359d11.png @@ -557,22 +557,22 @@

Timing comparison -
Num timesteps=100, 	 time serial = 0.5955722332000732
+
Num timesteps=100, 	 time serial = 0.49035167694091797
 
-
Num timesteps=100, 	 time parallel = 0.5052673816680908
+
Num timesteps=100, 	 time parallel = 0.48937320709228516
 
-
-
<matplotlib.legend.Legend at 0x7fae4c60e1c0>
+
<matplotlib.legend.Legend at 0x7f6ff049e5e0>
 
-../../_images/080c758320419216e19cda8ab9325e2fa3d85994e23f9ffc6b5b2ba6b5c465b7.png +../../_images/3a3ad0df99aac8e2de415c1b330fae0659d12c797485508578b98f9c9986b6e5.png
-
<matplotlib.legend.Legend at 0x7fae4c302400>
+
<matplotlib.legend.Legend at 0x7f6ff02a1e20>
 
-../../_images/9243a4afd0cd3bcb47c90101ecfaa8dc46503c04e5604389a7688285e07405d4.png +../../_images/135c33916d94cea32601a68e4c6ff010ef9963e2816acc58008e26607cbcd6e8.png
diff --git a/searchindex.js b/searchindex.js index 1afea45b..e0c04cb9 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["README", "api", "index", "notebooks/generalized_gaussian_ssm/cmgf_logistic_regression_demo", "notebooks/generalized_gaussian_ssm/cmgf_mlp_classification_demo", "notebooks/generalized_gaussian_ssm/cmgf_poisson_demo", "notebooks/hmm/autoregressive_hmm", "notebooks/hmm/casino_hmm_inference", "notebooks/hmm/casino_hmm_learning", "notebooks/hmm/gaussian_hmm", "notebooks/linear_gaussian_ssm/kf_linreg", "notebooks/linear_gaussian_ssm/kf_tracking", "notebooks/linear_gaussian_ssm/lgssm_hmc", "notebooks/linear_gaussian_ssm/lgssm_learning", "notebooks/linear_gaussian_ssm/lgssm_parallel_inference", "notebooks/nonlinear_gaussian_ssm/ekf_mlp", "notebooks/nonlinear_gaussian_ssm/ekf_ukf_pendulum", "notebooks/nonlinear_gaussian_ssm/ekf_ukf_spiral", "types"], "filenames": ["README.md", "api.rst", "index.rst", "notebooks/generalized_gaussian_ssm/cmgf_logistic_regression_demo.ipynb", "notebooks/generalized_gaussian_ssm/cmgf_mlp_classification_demo.ipynb", "notebooks/generalized_gaussian_ssm/cmgf_poisson_demo.ipynb", "notebooks/hmm/autoregressive_hmm.ipynb", "notebooks/hmm/casino_hmm_inference.ipynb", "notebooks/hmm/casino_hmm_learning.ipynb", "notebooks/hmm/gaussian_hmm.ipynb", "notebooks/linear_gaussian_ssm/kf_linreg.ipynb", "notebooks/linear_gaussian_ssm/kf_tracking.ipynb", "notebooks/linear_gaussian_ssm/lgssm_hmc.ipynb", "notebooks/linear_gaussian_ssm/lgssm_learning.ipynb", "notebooks/linear_gaussian_ssm/lgssm_parallel_inference.ipynb", "notebooks/nonlinear_gaussian_ssm/ekf_mlp.ipynb", "notebooks/nonlinear_gaussian_ssm/ekf_ukf_pendulum.ipynb", "notebooks/nonlinear_gaussian_ssm/ekf_ukf_spiral.ipynb", "types.md"], "titles": ["Documentation", "State Space Model (Base class)", "Welcome to DYNAMAX!", "Online Logistic Regression using conditional moments Gaussian filter", "Online learning of an MLP Classifier using conditional moments Gaussian filter", "Fitting an LDS with Poisson Likelihood using conditional moments Gaussian filter", "Autoregressive (AR) HMM Demo", "Casino HMM: Inference (state estimation)", "Casino HMM: Learning (parameter estimation)", "Gaussian HMM: Cross-validation and Model Selection", "Online linear regression using Kalman filtering", "Tracking an object using the Kalman filter", "Bayesian parameter estimation for an LG-SSM using HMC", "MAP parameter estimation for an LG-SSM using EM and SGD", "Parallel filtering and smoothing in an LG-SSM", "Online learning for an MLP using extended Kalman filtering", "Tracking a 1d pendulum using Extended / Unscented Kalman filter/ smoother", "Tracking a spiraling object using the extended / unscented Kalman filter", "Terminology for types"], "terms": {"To": [0, 2, 3, 4, 7, 8, 10, 15], "build": [0, 12], "sphinx": 0, "run": [0, 1, 2, 3, 4, 7, 8, 9, 11, 12, 15, 18], "cd": [0, 2], "doc": 0, "make": [0, 2, 6, 8, 9, 11, 12], "html": [0, 2, 4], "thi": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18], "find": [0, 1, 7, 8], "all": [0, 1, 2, 3, 7, 8, 10, 12, 18], "jupyt": 0, "notebook": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "them": [0, 1, 7, 8, 9], "collect": [0, 1, 9], "output": [0, 1, 3, 4], "incorpor": 0, "sourc": 1, "A": [1, 2, 6, 7, 8, 9], "Such": 1, "consist": [1, 2, 7, 9], "which": [1, 2, 3, 4, 7, 8, 9, 11, 12, 17], "we": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18], "mai": [1, 2, 7, 8, 18], "learn": [1, 2, 3, 12], "well": [1, 2, 9], "hyperparamet": [1, 8], "specifi": [1, 7, 8, 9], "static": 1, "properti": [1, 7, 8], "allow": [1, 2, 7, 8, 9], "indic": [1, 4, 7, 15], "standard": [1, 2, 3, 4, 7, 9, 16], "wai": [1, 2, 7, 8, 18], "so": [1, 7, 8, 9, 11, 12, 14, 17, 18], "thei": [1, 7, 8, 9], "can": [1, 2, 3, 6, 7, 8, 9, 11, 14, 16, 18], "easili": [1, 2], "convert": 1, "from": [1, 2, 3, 4, 5, 9, 10, 12, 13, 14, 15, 16], "unconstrain": 1, "form": [1, 2, 3, 4, 8, 9, 10, 15], "optim": [1, 3, 8], "method": [1, 2, 3, 6, 9], "inherit": 1, "must": [1, 5, 8], "implement": [1, 7, 8, 9], "few": [1, 7, 8, 18], "kei": [1, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 17], "function": [1, 2, 3, 4, 7, 8, 11, 15], "initial_distribut": [1, 2], "return": [1, 3, 4, 5, 7, 8, 9, 11, 12, 15, 16, 17], "distribut": [1, 2, 3, 4, 5, 6, 8, 9, 15], "over": [1, 2, 3, 4, 7, 8, 9, 10, 15], "initi": [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "given": [1, 7, 8, 10, 15], "transition_distribut": [1, 2], "condit": [1, 2], "next": [1, 3, 4, 5, 6, 7, 8, 9, 12], "current": [1, 6, 9, 18], "emission_distribut": [1, 2, 9], "emiss": [1, 2, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17], "log_prior": [1, 2, 3, 8, 9, 12, 13], "option": [1, 2, 15], "log": [1, 2, 3, 5, 8, 12, 14, 17], "prior": [1, 8, 9], "probabl": [1, 3, 4, 6, 7, 8, 9, 12, 13], "emission_shap": [1, 2, 12], "tupl": [1, 9], "specif": [1, 2, 7], "shape": [1, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 16, 18], "inputs_shap": [1, 2, 12], "input": [1, 2, 3, 4, 6, 10, 12, 15], "none": [1, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 15, 16, 17], "ar": [1, 3, 4, 7, 8, 9, 10, 12, 15, 18], "The": [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16], "requir": 1, "properli": 1, "handl": 1, "batch": [1, 2, 3, 5, 10, 12], "data": [1, 2, 3], "sampl": [1, 2, 3, 5, 12, 13, 14, 15], "comput": [1, 2, 3, 4, 6, 8, 9, 10, 16], "onc": [1, 7], "have": [1, 2, 5, 7, 8, 9, 11, 12, 14, 18], "been": [1, 9, 14], "subclass": 1, "abil": [1, 6], "joint": [1, 2, 7, 13], "draw": [1, 7], "log_prob": [1, 2, 8, 9, 12], "mani": [1, 2, 7, 8], "expos": 1, "basic": 1, "perform": [1, 3, 4, 7, 8, 10, 15], "marginal_log_prob": [1, 2, 6, 8, 9, 12, 13], "margin": [1, 2, 7, 8, 9, 12, 13, 17], "sum": [1, 3, 6, 8, 9, 12, 16], "latent": [1, 5, 6, 7, 8, 11], "filter": [1, 2, 12], "posterior": [1, 2, 3, 4, 6, 7, 8, 10, 11], "smoother": [1, 2, 6, 7, 11, 12], "smooth": [1, 2, 6, 12, 13, 16], "likewis": [1, 7], "support": [1, 6, 8], "expect": [1, 2, 7, 9], "maxim": [1, 2, 9], "em": [1, 2, 6, 8, 9], "stochast": [1, 2], "gradient": [1, 2], "descent": [1, 2], "sgd": [1, 2, 8], "For": [1, 2, 3, 4, 6, 7, 8, 9, 15, 16, 18], "e": [1, 2, 3, 7, 8, 9, 12, 18], "m": [1, 8, 9, 10, 15, 16, 17], "step": [1, 3, 4, 7, 8, 10, 11, 15, 16, 17], "e_step": [1, 2], "suffici": 1, "statist": 1, "sequenc": [1, 4, 8, 9, 15], "m_step": [1, 2], "new": [1, 2, 7, 8], "fit": [1, 2, 7, 12], "fit_em": [1, 2, 6, 8, 9, 12, 13], "likelihood": [1, 2, 7, 8, 9, 12, 17], "ani": [1, 18], "fit_sgd": [1, 2, 8, 13], "minim": [1, 3, 8], "neg": [1, 8], "param": [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17], "an": [1, 2, 7, 8, 9, 17, 18], "parameterset": [1, 2], "theta": [1, 4, 5, 6, 7, 8, 9, 12], "float": [1, 6, 8, 15, 16, 18], "arrai": [1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 14, 16, 17, 18], "input_dim": [1, 3, 4, 10, 14, 15], "u_t": [1, 2, 11, 17], "p": [1, 2, 6, 7, 8, 9, 12], "z_1": [1, 2, 5, 7, 16], "mid": [1, 2, 6, 7, 8, 9], "state_dim": [1, 3, 4, 5, 10, 11, 12, 13, 15, 16, 17], "z_t": [1, 2, 6, 7, 9, 11, 16, 17], "z_": [1, 2, 5, 6, 7, 8, 11, 16, 17], "t": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17], "1": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "y_t": [1, 2, 3, 4, 6, 7, 9, 10, 11, 15, 16, 17], "lp": [1, 6, 9, 12], "scalar": [1, 18], "int": [1, 3, 4, 5, 15, 16, 18], "pytre": [1, 12, 18], "match": [1, 8, 9, 18], "singl": [1, 12], "time": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18], "": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 14, 16, 18], "exampl": [1, 2, 7, 8, 9, 14, 16, 18], "gaussianhmm": [1, 2, 9], "d": [1, 5, 6, 9, 10, 11, 12, 16], "dimension": [1, 12], "would": [1, 7, 9], "num_timestep": [1, 2, 5, 7, 8, 9, 11, 12, 13, 14, 17], "y_": [1, 2, 6, 7, 8, 9, 11], "u_": [1, 2, 11], "union": [1, 18], "prngkeyarrai": 1, "random": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17], "number": [1, 3, 7, 8, 15, 18], "timestep": [1, 3, 7, 10, 14], "emission_dim": [1, 2, 4, 5, 6, 9, 10, 11, 12, 13, 15, 16], "observ": [1, 2, 3, 4, 6, 7, 8, 11, 12, 13, 14, 15, 16, 17], "sum_": [1, 7], "ntime": [1, 12], "ldot": [1, 7, 8, 9], "under": [1, 9], "suffstatsssm": 1, "prop": [1, 2, 6, 9, 12], "batch_stat": [1, 7, 8], "m_step_stat": 1, "star": [1, 7, 8], "mathrm": [1, 6, 7, 8, 9], "argmax": [1, 9], "_": [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16], "mathbb": [1, 8], "big": 1, "propertyset": [1, 2], "should": [1, 6, 8, 9, 10, 14, 18], "each": [1, 3, 4, 5, 6, 7, 8, 9, 11, 17], "num_it": [1, 2, 8, 9, 12, 13], "50": [1, 3, 4, 6], "verbos": [1, 9, 12], "true": [1, 3, 4, 5, 9, 11, 12, 13, 14, 15, 16, 17], "mle": 1, "map": [1, 2, 3, 7, 8, 12], "estim": [1, 2, 16, 17], "us": [1, 2, 7, 8, 18], "aim": 1, "It": [1, 2, 7, 9], "doe": [1, 8], "iter": [1, 2, 6, 8, 12, 13], "lower": [1, 6], "bound": 1, "note": [1, 2, 9, 15], "either": [1, 2, 8, 18], "num_batch": [1, 7, 8], "one": [1, 4, 6, 7, 8], "more": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "correspond": [1, 2, 3, 5, 6, 7, 8], "bool": [1, 18], "whether": 1, "show": [1, 5, 6, 7, 8, 9, 11, 12, 13, 14, 16, 17], "progress": 1, "bar": 1, "cours": [1, 9], "gradienttransformationextraarg": 1, "init": [1, 4, 5, 12, 15], "chain": 1, "local": [1, 8], "init_fn": 1, "updat": [1, 8], "update_fn": 1, "batch_siz": [1, 8], "num_epoch": [1, 8, 13], "shuffl": [1, 3, 4, 15], "fals": [1, 3, 4, 6, 8, 9, 12, 14, 15, 16, 17], "0": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "dtype": [1, 7, 18], "uint32": 1, "_negative_": 1, "quantiti": 1, "On": [1, 8], "algorithm": [1, 2, 8, 10, 12, 17], "grab": 1, "minibatch": [1, 8], "take": [1, 7, 8], "One": [1, 4, 8], "pass": [1, 4, 5, 6, 11, 14, 18], "through": [1, 2, 8, 15], "entir": [1, 8], "set": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "i": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "call": [1, 2, 7, 8, 11], "epoch": [1, 8, 9], "gradienttransform": 1, "optax": [1, 2, 8], "per": [1, 8, 14], "select": [1, 2, 11], "loss": [1, 8], "scale": [1, 8], "prob": [1, 2, 7, 8, 9], "niter": 1, "associ": [1, 8], "store": 1, "jax": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "devicearrai": 1, "dynamax": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "parameterproperti": [1, 2], "respect": 1, "bundl": 1, "togeth": 1, "simpli": [1, 11], "alias": 1, "immut": [1, 7], "datastructur": 1, "our": [1, 3, 5, 8, 18], "case": [1, 2, 9], "namedtupl": [1, 7, 16], "arg": [1, 7, 8, 11, 15], "kwarg": [1, 5, 11], "leaf": 1, "node": [1, 8], "trainabl": [1, 8, 12], "constrain": 1, "contain": [1, 16], "metadata": 1, "aux_data": 1, "chang": [1, 6, 8, 9, 14], "trigger": 1, "recompil": 1, "reli": 1, "flag": [1, 8], "adjust": 1, "tfb": 1, "bijector": 1, "hmm": 1, "num_stat": [1, 2, 6, 7, 8, 9], "initial_compon": 1, "transition_compon": 1, "emission_compon": 1, "defin": [1, 3, 5, 15, 16], "follow": [1, 2, 3, 4, 6, 7, 10, 11, 15, 16, 17, 18], "u_1": [1, 2], "sim": [1, 3, 4, 6, 8, 10, 11, 15, 16, 17], "cat": [1, 7], "pi_0": 1, "theta_": [1, 3, 4, 10, 15], "mathsf": 1, "pi": [1, 4, 5, 6, 7, 8, 9, 16], "tran": 1, "emi": 1, "where": [1, 2, 3, 4, 8, 9, 10, 11, 15, 16, 17], "k": [1, 2, 3, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 17], "discret": [1, 2, 7, 8, 9, 11, 16, 17], "There": [1, 8, 9], "transit": [1, 2, 6, 7, 8, 12, 18], "assum": [1, 2, 3, 4, 7, 8, 9, 10, 11, 15, 16, 17], "fix": [1, 8], "simpl": [1, 7, 8, 11, 14, 16, 17], "matrix": [1, 5, 6, 7, 8, 10, 11, 18], "pi_": 1, "z_k": 1, "pi_k": 1, "hmmparameterset": [1, 2], "object": [1, 2, 5, 7, 8], "variou": [1, 17], "hmminitialst": [1, 2], "encapsul": 1, "hmmtransit": [1, 2], "hmmemiss": [1, 2], "In": [1, 2, 6, 7, 8, 9, 18], "itself": 1, "initialize_m_step_st": 1, "might": [1, 7, 9], "includ": [1, 2, 7, 9], "adam": 1, "m_step_optim": 1, "m_step_num_it": 1, "prngkei": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17], "str": 1, "collect_suff_stat": 1, "hmmposterior": [1, 2], "how": [1, 6, 7, 8, 9, 11, 12, 14, 16, 17], "below": [1, 2, 3, 4, 6, 7, 8, 10, 15, 16], "cover": 1, "common": 1, "exponenti": [1, 8], "famili": [1, 8, 9], "close": [1, 8], "outsid": 1, "non": [1, 2, 3, 4, 10], "default": [1, 6, 8, 9, 15, 16, 17], "unless": 1, "otherwis": 1, "conjug": [1, 8, 9], "bayesian": [1, 2, 3, 4, 10, 14, 15, 16], "pi_1": 1, "dir": [1, 8], "alpha": [1, 5, 6, 7, 8, 9, 10, 12, 13, 15, 16, 17], "1_k": [1, 8], "concentr": 1, "a_": [1, 6, 7], "prod_": [1, 2, 7, 8], "a_k": [1, 8], "beta": [1, 8, 16, 17], "kappa": [1, 8, 16, 17], "e_k": [1, 8], "row": [1, 7], "sticki": [1, 8], "bias": [1, 6], "toward": 1, "matric": [1, 9, 12], "larger": 1, "valu": [1, 3, 4, 6, 7, 8, 9, 12], "along": [1, 2, 9], "diagon": [1, 9], "These": [1, 6, 18], "constructor": [1, 8], "weak": 1, "without": [1, 2, 11], "bernoullihmm": [1, 2], "initial_probs_concentr": 1, "transition_matrix_concentr": 1, "transition_matrix_sticki": [1, 8, 9], "emission_prior_concentration0": 1, "emission_prior_concentration1": 1, "condition": [1, 7], "independ": [1, 3, 7], "bernoulli": 1, "let": [1, 3, 4, 5, 6, 7, 8, 11, 16, 17], "n": [1, 3, 4, 6, 9, 10, 11, 15, 16, 17], "denot": [1, 6, 7, 8], "binari": [1, 3, 4], "vector": [1, 2, 4, 5, 8, 11], "bern": 1, "tn": 1, "gamma_0": 1, "gamma_1": 1, "pseudocount": 1, "boost": 1, "initial_prob": [1, 6, 7, 8, 9], "transition_matrix": [1, 6, 7, 8, 9], "emission_prob": [1, 7, 8], "you": [1, 2, 7, 8, 9, 14], "manual": [1, 11], "via": [1, 8, 18], "keyword": [1, 8, 11], "argument": [1, 8, 11, 18], "automat": [1, 8], "If": [1, 2, 7, 8, 14, 16, 18], "suppli": [1, 8], "futur": [1, 2, 3, 6, 7, 11, 17], "scheme": 1, "like": [1, 2, 8, 9, 14], "mean": [1, 3, 4, 6, 7, 9, 11, 12, 15], "unspecifi": 1, "jr": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17], "onli": [1, 7, 8, 9, 12], "categoricalhmm": [1, 2, 7, 8], "num_class": [1, 7, 8], "emission_prior_concentr": 1, "categor": [1, 8, 9], "c": [1, 2, 3, 4, 7, 8, 11, 12, 16], "gamma": [1, 8], "1_c": [1, 8], "delta_c": 1, "multinomi": 1, "gammahmm": [1, 2], "whose": 1, "come": [1, 7], "r": [1, 4, 5, 7, 8, 10, 11, 14, 16, 17], "ga": 1, "alpha_": 1, "beta_": 1, "alpha_k": 1, "rate": 1, "beta_k": 1, "emission_concentr": 1, "emission_r": 1, "both": [1, 2, 3, 8, 9], "kmean": [1, 2, 6, 9], "hmmpropertyset": [1, 2], "emission_prior_mean": 1, "0001": 1, "emission_prior_scal": 1, "emission_prior_extra_df": 1, "multivari": [1, 6, 9], "normal": [1, 3, 4, 5, 9, 15], "mathcal": [1, 6, 8, 9], "mu_": [1, 9], "sigma_": [1, 9], "mu_k": [1, 9], "sigma_k": [1, 9], "covari": [1, 2, 6, 10, 11, 12], "ha": [1, 2, 3, 4, 6, 7, 8, 9, 10, 15], "invers": [1, 9], "wishart": [1, 9], "mu_0": 1, "kappa_0": 1, "iw": 1, "nu_0": 1, "psi_0": 1, "extra": [1, 9], "degre": 1, "freedom": 1, "abov": [1, 7, 8, 9], "beyond": 1, "minimum": [1, 9], "emission_mean": [1, 9], "emission_covari": [1, 6, 9, 10, 11, 14, 15, 16, 17], "diagonalgaussianhmm": [1, 2, 9], "emission_prior_mean_concentr": 1, "2": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "equival": [1, 8], "diag": [1, 5, 9], "varianc": [1, 12, 15], "dimens": [1, 5, 7, 11, 12, 15, 18], "complet": [1, 8, 9], "iga": 1, "alpha_0": 1, "beta_0": 1, "emission_scale_diag": 1, "deviat": [1, 16], "sphericalgaussianhmm": [1, 2, 9], "emission_prior_mean_covari": 1, "emission_var_concentr": 1, "emission_var_r": 1, "same": [1, 7, 8, 9, 10, 16, 18], "spheric": [1, 9], "factor": [1, 2], "sigma_0": 1, "version": [1, 2, 6, 11, 17], "emission_scal": 1, "sqrt": [1, 3, 4, 5, 10, 12, 16], "sharedcovariancegaussianhmm": [1, 2, 9], "share": [1, 9], "sigma": [1, 3, 4, 5, 9, 10, 15], "lowrankgaussianhmm": [1, 2], "emission_rank": 1, "emission_diag_factor_concentr": 1, "emission_diag_factor_r": 1, "rank": 1, "plu": 1, "u_k": 1, "top": [1, 2, 9], "d_k": 1, "instead": [1, 7, 8], "place": 1, "propto": [1, 7], "d_": 1, "emission_cov_diag_factor": 1, "emission_cov_low_rank_factor": 1, "multinomialhmm": [1, 2], "num_trial": [1, 5], "count": [1, 5, 7, 12], "mult": 1, "trial": 1, "poissonhmm": [1, 2], "emission_prior_r": 1, "poisson": [1, 2], "po": 1, "gaussianmixturehmm": [1, 2], "num_compon": 1, "emission_weights_concentr": 1, "mixtur": 1, "w_": [1, 3], "w_k": 1, "disret": 1, "compon": [1, 6], "weight": [1, 3, 4, 5, 6, 7, 10, 12], "emission_weight": [1, 6, 10, 11, 12, 14], "diagonalgaussianmixturehmm": [1, 2], "emission_prior_shap": 1, "linearregressionhmm": [1, 2], "regress": [1, 2], "depend": [1, 2, 9], "also": [1, 2, 3, 6, 7, 8, 9, 10, 11], "known": [1, 7, 8, 10], "switch": [1, 6, 7, 8], "b_": [1, 6, 7], "b_k": [1, 8], "succeq": 1, "do": [1, 3, 4, 7, 8, 10, 11, 15, 17], "add": [1, 3, 4, 7, 8, 9, 15, 17], "see": [1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 14, 15, 16], "pg": 1, "576": 1, "emission_bias": [1, 6], "logisticregressionhmm": [1, 2], "emission_matrices_scal": 1, "100000000": 1, "logist": [1, 2], "l_2": 1, "regular": [1, 8], "thought": 1, "varsigma": 1, "categoricalregressionhmm": [1, 2], "multiclass": 1, "softmax": 1, "linearautoregressivehmm": [1, 2, 6], "num_lag": [1, 6], "autoregress": [1, 2, 9], "previou": 1, "ell": 1, "l": [1, 11], "lag": [1, 6], "emission_dim_times_num_lag": 1, "cdot": [1, 7], "prev_emiss": 1, "preced": [1, 8, 9], "zero": [1, 3, 4, 5, 6, 7, 9, 10, 16], "compute_input": [1, 6], "helper": [1, 4], "marginal_loglik": [1, 7, 11, 17], "filtered_prob": [1, 7], "predicted_prob": 1, "smoothed_prob": [1, 2, 6, 7], "trans_prob": 1, "wrapper": 1, "2d": [1, 3, 4], "3d": 1, "vari": [1, 18], "present": 1, "here": [1, 2, 7, 8, 9], "conveni": [1, 18], "hmmposteriorfilt": [1, 2], "hmm_filter": [1, 2], "log_likelihood": [1, 3], "transition_fn": 1, "forward": [1, 8, 14], "altern": [1, 8], "index": [1, 2, 7], "callabl": [1, 15, 16], "integ": 1, "hmm_smoother": [1, 2], "compute_trans_prob": 1, "analog": 1, "rt": 1, "hmm_two_filter_smooth": [1, 2], "two": [1, 7, 8, 11, 17], "backward": [1, 8], "hmm_fixed_lag_smooth": [1, 2], "window_s": 1, "hmm_posterior_mod": [1, 2], "most": 1, "viterbi": 1, "hmm_posterior_sampl": [1, 2], "rng": [1, 16], "parallel_hmm_filt": [1, 2], "parallel": [1, 2, 7, 9], "lax": [1, 16], "associative_scan": 1, "nonstationari": 1, "releas": [1, 3], "parallel_hmm_smooth": [1, 2], "differenti": [1, 8, 16], "rather": 1, "than": [1, 7, 8], "explicit": 1, "messag": 1, "lineargaussianssm": [1, 2, 10, 11, 12, 14], "has_dynamics_bia": 1, "has_emissions_bia": 1, "f_t": 1, "b_t": 1, "q_t": [1, 3, 4, 11, 15, 16, 17], "h_t": [1, 10], "d_t": 1, "r_t": [1, 10, 11, 15, 16, 17], "size": [1, 4, 8, 11, 13, 15, 16, 18], "f": [1, 3, 4, 7, 8, 9, 10, 11, 14, 15, 16, 17], "dynam": [1, 2, 5, 7, 11, 12, 15, 17], "b": [1, 6, 7, 8, 10], "bia": [1, 3, 5, 12], "q": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "system": [1, 2, 5, 11], "nois": [1, 11, 16, 17], "h": [1, 2, 4, 11, 14, 15, 16, 17], "paramslgssm": [1, 2], "creat": [1, 5, 7, 16], "offset": [1, 9], "term": [1, 3, 16], "initial_mean": [1, 3, 4, 5, 10, 11, 14, 15, 16, 17], "initial_covari": [1, 3, 4, 5, 10, 11, 14, 15, 16, 17], "dynamics_weight": [1, 5, 10, 11, 12, 14], "dynamics_bia": [1, 5, 12], "dynamics_input_weight": 1, "dynamics_covari": [1, 3, 4, 5, 10, 11, 14, 15, 16, 17], "emission_bia": [1, 12], "emission_input_weight": 1, "posteriorgssmfilt": [1, 2], "posteriorgssmsmooth": [1, 2], "posterior_predict": [1, 13], "predict": [1, 2, 3, 4, 5, 12, 13, 15], "std": [1, 4, 12, 16], "suffstatslgssm": 1, "lgssm_filter": [1, 2, 11], "kalman": [1, 2, 3, 4, 12], "produc": [1, 6], "lgssm_smoother": [1, 2, 11, 14], "technic": [1, 7], "rauch": 1, "tung": 1, "striebel": 1, "lgssmparam": 1, "instanc": 1, "field": [1, 17], "lgssm_posterior_sampl": [1, 2], "jitter": 1, "inptu": 1, "pad": 1, "befor": [1, 8], "paramslgssminiti": [1, 2], "paramslgssmdynam": [1, 2], "paramslgssmemiss": [1, 2], "cov": [1, 3, 12], "mu_1": 1, "q_1": 1, "doubl": 1, "state_dim_triu": 1, "input_weight": 1, "emission_dim_triu": 1, "filtered_mean": [1, 3, 4, 10, 11, 14, 15, 16, 17], "filtered_covari": [1, 3, 4, 10, 11, 14, 15, 17], "predicted_mean": 1, "predicted_covari": 1, "smoothed_mean": [1, 5, 11, 12, 14, 16], "smoothed_covari": [1, 5, 11, 12, 14], "smoothed_cross_covari": 1, "ntime_minus1": 1, "cross": [1, 2, 8], "product": 1, "nonlineargaussianssm": [1, 2, 17], "variabl": [1, 6, 11, 17], "separ": 1, "paramsnlgssm": [1, 2, 15, 16, 17], "extended_kalman_filt": [1, 2, 15, 17], "output_field": [1, 17], "extend": [1, 2, 3, 4, 6], "around": [1, 7, 8], "list": [1, 9, 15], "post": [1, 2, 5], "iterated_extended_kalman_filt": [1, 2], "extended_kalman_smooth": [1, 2, 16], "filtered_posterior": [1, 11], "iterated_extended_kalman_smooth": [1, 2], "iek": 1, "unscented_kalman_filt": [1, 2, 17], "hyperparam": [1, 17], "unscent": [1, 2, 3], "ukfhyperparam": [1, 16, 17], "hyper": [1, 16], "unscented_kalman_smooth": [1, 2, 16], "hyperperam": 1, "nlgssm_posterior": 1, "dynamics_funct": [1, 3, 4, 5, 15, 16, 17], "emission_funct": [1, 15, 16, 17], "nlgssm": [1, 17], "emissions_funct": 1, "emissions_covari": 1, "generalizedgaussianssm": [1, 2, 5], "paramsggssm": [1, 2, 3, 4, 5], "usag": 1, "probml": [1, 2, 10, 15], "conditional_moments_gaussian_filt": [1, 2, 3, 4], "model_param": 1, "inf_param": 1, "moment": [1, 2], "ekfintegr": [1, 3, 4, 5], "ukfintegr": [1, 3], "ghkfintegr": [1, 3], "optopn": 1, "iterated_conditional_moments_gaussian_filt": [1, 2], "conditional_moments_gaussian_smooth": [1, 2, 5], "iterated_conditional_moments_gaussian_smooth": [1, 2], "emission_mean_funct": [1, 3, 4, 5], "emission_cov_funct": [1, 3, 4, 5], "emission_dist": [1, 5], "lambda": [1, 3, 4, 5, 8, 11, 15, 16, 17], "differ": [1, 3, 6, 7, 8, 18], "signatur": [1, 4], "z": [1, 3, 4, 5, 7, 12, 14, 16, 17], "u": [1, 3, 4, 5, 11, 15, 17], "y": [1, 3, 4, 6, 10, 11, 12, 15, 16], "tfp": 1, "dist": 1, "find_permut": [1, 2, 8], "z1": 1, "z2": 1, "permut": [1, 3, 4, 9, 15], "label": [1, 3, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "best": [1, 8, 9], "align": [1, 3, 4, 6, 7, 8, 9, 10, 11, 15, 16, 17], "first": [1, 2, 4, 5, 7, 8, 11], "second": 1, "jnp": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "perm": 1, "thu": [1, 8, 11, 16, 17], "len": [1, 3, 5, 6, 9, 10, 11, 13, 15, 16], "min": [1, 3, 4, 5, 15], "max": [1, 3, 4, 5, 6, 7, 8, 9, 15], "probabilist": [2, 3, 4, 7, 15], "written": 2, "code": [2, 7, 8, 11, 14, 16], "infer": [2, 4, 8], "paramet": [2, 3, 4, 5, 6, 7, 9, 10, 11, 15, 16], "varieti": [2, 8, 9], "hidden": [2, 3, 4, 5, 6, 7, 10, 11, 15, 17], "markov": [2, 6, 7], "aka": [2, 6, 7], "core": 2, "pure": 2, "low": 2, "level": [2, 3, 4], "class": [2, 4, 7, 15, 16], "provid": [2, 6, 9, 18], "user": 2, "friendli": 2, "orient": 2, "interfac": 2, "compat": 2, "other": [2, 8, 9, 18], "ecosystem": 2, "blackjax": [2, 12], "hamiltonian": 2, "mont": 2, "carlo": 2, "hmc": 2, "sequenti": [2, 3, 4, 10, 15], "smc": 2, "latest": 2, "releast": 2, "pypi": 2, "pip": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "demo": [2, 5, 10], "develop": 2, "branch": 2, "git": 2, "http": [2, 4, 10, 15], "github": [2, 4, 10, 15], "com": [2, 4, 10, 15], "final": [2, 3, 4, 5, 7, 8, 10], "re": [2, 7, 8], "clone": 2, "dev": 2, "pytest": 2, "inference_test": 2, "py": [2, 3, 6, 9], "lgssm": [2, 10, 11, 12, 14], "name": [2, 18], "partial": [2, 4, 7, 8, 9, 12, 15], "evolv": [2, 11], "accord": 2, "process": [2, 6, 11, 16, 17], "possibli": [2, 11, 17], "extern": 2, "control": [2, 15], "illustr": [2, 7, 8], "graphic": [2, 3, 4, 8, 10, 15], "restrict": 2, "attent": 2, "furthermor": 2, "auto": [2, 5, 6, 7, 9], "write": [2, 8, 11, 16], "want": [2, 8, 11, 17], "onlin": 2, "offlin": [2, 3], "interest": 2, "forecast": [2, 11, 17], "horizon": 2, "repres": [2, 6, 11, 17], "past": 2, "infinit": 2, "memori": [2, 9], "unlik": 2, "done": 2, "effici": 2, "moreov": 2, "discuss": [2, 8], "inform": [2, 8], "found": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "book": [2, 7], "machin": [2, 3, 4, 15], "advanc": [2, 3, 4, 15], "topic": [2, 3, 4, 15], "murphi": [2, 7], "mit": 2, "press": 2, "2023": [2, 7], "avail": 2, "io": 2, "pml": 2, "book2": 2, "s\u00e4rkk\u00e4": [2, 14, 16], "cambridg": 2, "univers": 2, "2013": [2, 14, 16], "aalto": 2, "fi": 2, "ssarkka": 2, "pub": 2, "cup_book_online_20131111": 2, "pdf": 2, "kind": 2, "simul": [2, 6, 9, 12, 16], "high": [2, 9], "runnabl": 2, "import": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "numpi": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "matplotlib": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "pyplot": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "plt": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "hidden_markov_model": [2, 6, 7, 8, 9], "key1": [2, 3, 4, 5, 6], "key2": [2, 3, 4, 5, 6], "key3": [2, 4], "split": [2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16], "3": [2, 3, 4, 5, 6, 9, 10, 12, 13, 14, 15, 16, 17], "1000": [2, 3, 6], "true_param": [2, 6, 9, 12, 13], "true_stat": [2, 6, 7, 9, 12, 13], "ll": [2, 7, 8, 9], "20": [2, 3, 5, 10, 13, 15], "plot": [2, 8, 11, 12, 14, 17], "across": [2, 9], "xlabel": [2, 5, 6, 7, 8, 9, 12, 13, 14, 16], "ylabel": [2, 5, 6, 7, 8, 9, 12, 13, 14, 16], "print": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "oper": 2, "vmap": [2, 5, 7, 8, 9, 11, 12, 15], "shown": [2, 3, 4, 10, 15, 16], "functool": [2, 4, 7, 8, 9, 12, 15], "num_seq": 2, "200": [2, 4, 5, 6, 14, 15], "batch_true_st": 2, "batch_emiss": [2, 7, 8, 12], "g": [2, 5, 7, 8, 9, 12, 16, 18], "directli": [2, 7, 8, 11], "construct": [2, 5, 7, 8], "introduc": 2, "recommend": 2, "start": [2, 7, 9, 12, 14], "work": [2, 8, 14], "your": 2, "casino": 2, "valid": [2, 8], "track": [2, 14], "lg": [2, 10, 11], "spiral": [2, 4], "1d": 2, "pendulum": 2, "mlp": 2, "classifi": 2, "ld": 2, "terminologi": 2, "type": [2, 4, 7, 8, 9, 15, 16], "base": [2, 9, 16], "abstract": 2, "gssm": 2, "util": [2, 6, 9, 11, 12, 13, 17], "distrax_hmm": 2, "replac": 2, "filterpi": 2, "hmmlearn": 2, "linderman": 2, "numba": 2, "autograd": 2, "mattjj": 2, "pyhsmm": 2, "cython": 2, "pyld": 2, "pgm": 2, "graph": 2, "jsl": 2, "pykalman": 2, "sarkka": [2, 16], "scan": [2, 16], "tfp_hmm": 2, "tf2": 2, "tfp_lgssm": 2, "search": 2, "page": 2, "train": [3, 15], "cmgf": 3, "recurs": [3, 4, 7, 10, 15], "treat": [3, 4, 10, 15], "unknown": [3, 4, 10, 15], "state": [3, 4, 5, 8, 10, 11, 13, 15, 16, 17], "approxim": [3, 4, 15], "constant": [3, 4, 10, 15, 18], "small": [3, 4, 14, 15], "amount": [3, 4, 9, 15], "drift": [3, 4, 10, 15], "numer": [3, 4, 15], "stabil": [3, 4, 15], "begin": [3, 4, 6, 7, 8, 9, 10, 11, 15, 16, 17], "theta_t": [3, 4, 10, 15], "01": [3, 4, 6, 9, 12, 15], "ber": [3, 4], "x_t": [3, 4, 10, 15], "end": [3, 4, 6, 7, 8, 9, 10, 11, 14, 15, 16, 17], "gener": [3, 4, 5, 6, 7, 8, 11, 15, 16], "ssm": [3, 4, 5, 6, 10, 11, 15, 16, 17], "inferec": [3, 4], "relev": [3, 4, 11], "integr": [3, 4], "linear": [3, 4, 5, 6, 11], "point": [3, 4, 6, 7, 11, 17], "gauss": 3, "hermit": 3, "order": [3, 6, 9], "5": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17], "compar": [3, 7], "result": [3, 4, 9, 16], "converg": [3, 8], "fastest": 3, "solut": [3, 8], "slower": 3, "detail": [3, 4, 7, 8, 15], "sec": [3, 4, 15], "8": [3, 4, 5, 6, 7, 9, 11, 13, 16, 17], "7": [3, 4, 7, 9, 16], "captur": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "try": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "except": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "modulenotfounderror": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "instal": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "generalized_gaussian_ssm": [3, 4, 5], "No": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "gpu": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "tpu": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "fall": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "back": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "cpu": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "tf_cpp_min_log_level": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "rerun": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "info": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "seaborn": [3, 6], "sn": [3, 6], "scipi": 3, "reason": [3, 9], "classif": [3, 4], "def": [3, 4, 5, 7, 8, 9, 11, 12, 13, 15, 16, 17], "generate_dataset": 3, "num_point": 3, "isinst": [3, 4, 5, 15, 16], "key0": 3, "noisi": [3, 11, 15, 17], "num_zero_point": 3, "zero_input": [3, 4], "num_one_point": 3, "one_input": [3, 4], "stack": [3, 4, 9], "concaten": [3, 4, 9], "input_with_bia": 3, "ones": [3, 4, 6, 7, 8, 9, 10, 15], "axi": [3, 4, 5, 6, 9, 11, 12, 15, 17], "idx": [3, 4], "arang": [3, 4, 5, 6, 7, 9, 10, 12, 13, 15, 16], "opt": [3, 6, 9], "hostedtoolcach": [3, 6, 9], "python": [3, 6, 7, 9], "9": [3, 4, 6, 7, 9, 10, 12, 16], "17": [3, 6, 9, 15], "x64": [3, 6, 9], "lib": [3, 6, 9], "python3": [3, 6, 9], "site": [3, 6, 9], "packag": [3, 6, 9], "_src": 3, "458": 3, "futurewarn": [3, 6, 9], "deprec": 3, "remov": 3, "warn": [3, 6, 9], "msg": 3, "visual": [3, 4, 5, 6], "plot_posterior_predict": [3, 4], "ax": [3, 4, 5, 6, 9, 10, 11, 13, 15, 17], "x": [3, 4, 5, 6, 7, 8, 10, 11, 15, 16], "titl": [3, 4, 5, 6, 7, 8, 9, 17], "color": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "xspace": [3, 4], "zspace": [3, 4], "cmap": [3, 4, 6, 7, 9], "viridi": 3, "contourf": [3, 4], "off": [3, 4], "scatter": [3, 4], "edgecolor": [3, 4, 11, 15, 16, 17], "grai": [3, 7, 15], "set_titl": [3, 4, 5, 9, 11, 15, 17], "tight_layout": [3, 4, 5, 6, 9, 14], "plot_boundari": 3, "w": [3, 4, 16], "look": [3, 6, 8], "fig": [3, 4, 5, 6, 9, 10, 11, 13, 15, 17], "subplot": [3, 4, 5, 6, 9, 10, 11, 13, 15, 17], "black": [3, 4, 10], "els": [3, 4, 5, 9, 12, 13, 14], "red": [3, 4, 5, 6, 10, 11], "grid": [3, 4, 9, 14, 15, 16], "limit": [3, 4], "xmin": [3, 4, 10], "ymin": [3, 4], "xmax": [3, 4, 10], "ymax": [3, 4], "input_grid": [3, 4], "mgrid": [3, 4], "nx": 3, "ny": 3, "input_with_bias_grid": 3, "posterior_predictive_grid": [3, 4], "n_sampl": 3, "5000": [3, 8], "multivariate_norm": [3, 15, 16], "nn": [3, 4, 7, 15], "sigmoid": [3, 4, 15], "einsum": 3, "mij": 3, "sm": 3, "sij": 3, "plot_cmgf_post_laplac": 3, "mean_hist": 3, "cov_hist": 3, "w_map": 3, "lcolor": 3, "filter_typ": 3, "legend_font_s": 3, "14": [3, 10, 16], "bb1": 3, "bb2": 3, "bb3": 3, "tau_hist": 3, "rang": [3, 5, 6, 9, 11, 12, 13, 14], "element": 3, "n_datapoint": 3, "wk": 3, "pk": 3, "wk_fix": 3, "enumer": [3, 6], "zip": [3, 4, 9], "fig_weight_k": 3, "errorbar": [3, 10], "axhlin": [3, 8, 9, 13], "linestyl": [3, 8, 9, 10, 13], "dot": [3, 5, 6, 11], "linewidth": [3, 11, 15, 16, 17], "set_xlim": [3, 5, 13, 15], "set_xlabel": [3, 5, 6, 9, 10, 13], "fontsiz": [3, 11], "15": [3, 4, 5, 9, 11], "set_ylabel": [3, 5, 6, 9, 10, 13], "tick_param": 3, "major": 3, "labels": 3, "despin": 3, "legend": [3, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "frameon": 3, "loc": [3, 5, 6, 11, 15, 16], "upper": [3, 5, 11], "right": [3, 5, 6, 9], "bbox_to_anchor": 3, "elif": 3, "log_posterior": 3, "prior_var": 3, "laplace_infer": 3, "guess": 3, "w0": 3, "ey": [3, 4, 5, 6, 9, 10, 11, 14, 15, 16, 17], "energi": 3, "w_laplac": 3, "bfg": 3, "cov_laplac": 3, "hessian": 3, "fig_adf": 3, "z_laplac": 3, "sigmoid_fn": [3, 4], "1e": [3, 4, 8, 13, 14, 15], "cmgf_param": 3, "extract": [3, 4, 11, 12], "ekf_post": [3, 15, 17], "ekf_mean": [3, 17], "ekf_cov": [3, 17], "w_ekf": 3, "cov_ekf": 3, "z_ekf": 3, "tab": [3, 10, 11], "blue": [3, 4, 5, 6], "100": [3, 6, 8, 9, 12, 13, 14, 15, 17], "ukf_post": [3, 17], "ukf_mean": [3, 17], "ukf_cov": [3, 17], "w_ukf": 3, "cov_ukf": 3, "z_ukf": 3, "ghkf_post": 3, "ghkf_mean": 3, "ghkf_cov": 3, "w_ghkf": 3, "cov_ghkf": 3, "z_ghkf": 3, "multilay": 4, "perceptron": [4, 15], "model": [4, 12, 13, 15, 16], "video": [4, 15], "gist": 4, "petergchang": 4, "9441b853b889e0b47d0622da8f7fe2f6": 4, "flax": [4, 15], "linen": [4, 15], "qq": [4, 12], "cm": 4, "flatten_util": [4, 15], "ravel_pytre": [4, 15], "rainbow": 4, "dataset": [4, 5, 8], "adapt": [4, 5, 12], "45deg": 4, "e731d9e7f478de134def5668324c44c5": 4, "generate_spiral_dataset": 4, "num_per_class": 4, "250": 4, "zero_var": 4, "one_var": 4, "key4": 4, "4": [4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17], "uniform": [4, 5], "generate_data": 4, "co": [4, 5, 6, 9, 15, 17], "sin": [4, 5, 6, 9, 15, 16, 17], "zero_output": 4, "one_output": 4, "figsiz": [4, 5, 6, 12, 13, 14, 17], "6": [4, 5, 6, 7, 8, 9, 10, 14, 15, 16], "x_grid": [4, 5, 15], "y_grid": [4, 5], "meshgrid": [4, 5, 6, 9], "round": 4, "appli": [4, 15], "inferred_fn": 4, "fn_vec": 4, "rint": 4, "activ": 4, "modul": [4, 15], "featur": [4, 10, 15], "compact": [4, 15], "__call__": [4, 15], "self": [4, 15], "feat": [4, 15], "relu": 4, "dens": [4, 15], "get_mlp_flattened_param": [4, 15], "model_dim": [4, 15], "dummy_input": [4, 15], "dummi": [4, 5, 15], "flat_param": [4, 15], "unflatten_fn": [4, 15], "atleast_1d": [4, 15], "apply_fn": [4, 15], "architectur": 4, "hidden_dim": [4, 15], "output_dim": [4, 15], "some": [4, 7, 8, 9, 14, 16, 18], "funciton": 4, "cmgf_ekf_param": 4, "cmgf_ekf_post": 4, "histori": 4, "w_mean": [4, 15], "w_cov": [4, 15], "evalu": [4, 9], "procedur": 4, "intermedi": 4, "intermediate_step": [4, 15], "49": 4, "99": [4, 13], "199": 4, "299": 4, "399": 4, "10": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17], "flatten": [4, 15], "zi": 4, "being": 4, "anim": 4, "ipython": 4, "displai": 4, "cla": 4, "w_curr": 4, "500": [4, 8, 12, 14], "funcanim": 4, "frame": 4, "interv": 4, "save": 4, "cmgf_mlp_classifi": 4, "mp4": [4, 15], "dpi": 4, "bitrat": 4, "fp": 4, "24": 4, "to_html5_video": 4, "fom": 5, "lindermanlab": 5, "gridspec": 5, "tensorflow_prob": 5, "substrat": 5, "poi": 5, "plot_dynamics_2d": 5, "dynamics_matrix": 5, "bias_vector": 5, "40": [5, 16], "npt": 5, "assert": [5, 11, 13, 14], "length": [5, 7, 14], "linspac": [5, 6, 9, 10, 15], "xy_grid": 5, "column_stack": [5, 6, 9, 10], "ravel": [5, 6, 9], "dx": 5, "quiver": [5, 6], "gca": [5, 6, 9, 16], "set_aspect": [5, 6, 9, 16, 17], "plot_stat": 5, "num_step": [5, 12, 16], "latent_dim": [5, 14], "lim": [5, 6, 9], "ab": [5, 6, 9], "set_ytick": [5, 6], "set_yticklabel": 5, "format": [5, 6, 7, 8, 9, 16], "set_xtick": [5, 6], "plot_emissions_poisson": 5, "emissions_dim": 5, "figur": [5, 6, 7, 8, 9, 12, 13, 14, 16], "height_ratio": 5, "continu": [5, 7, 8, 9, 11, 16], "ytick": [5, 6, 7, 16], "xtick": [5, 14, 16], "xlim": [5, 6, 8, 9, 12, 13, 16], "imshow": [5, 6, 7, 9], "aspect": [5, 6, 7, 9, 17], "interpol": [5, 6, 7, 9], "tick": 5, "bin": 5, "colorbar": [5, 6], "compare_dynam": 5, "ex": 5, "lw": [5, 6, 9], "markers": [5, 6, 11], "z_2": [5, 16], "compare_smoothened_predict": 5, "ei": [5, 6], "ey_tru": 5, "covi": 5, "data_dim": 5, "fill_between": [5, 10, 12, 13], "25": [5, 6, 7, 9, 12, 13], "neuron": 5, "trace": 5, "rotat": [5, 6], "functionto": 5, "random_rot": [5, 6], "dim": 5, "slow": 5, "rot": 5, "out": [5, 7], "linalg": [5, 6, 10], "qr": 5, "poisson_weight": 5, "Then": 5, "sample_poisson": 5, "_sampl": 5, "batch_kei": 5, "001": [5, 6, 11, 17], "exp": [5, 9], "mu": 5, "log_rat": 5, "all_stat": 5, "all_emiss": 5, "demonstr": [6, 16], "left": [6, 11], "q_": [6, 16], "higher": 6, "gradient_cmap": 6, "set_styl": 6, "white": [6, 7, 16], "set_context": 6, "talk": 6, "color_nam": 6, "window": [6, 12], "amber": 6, "fade": 6, "green": [6, 11], "dusti": 6, "purpl": 6, "orang": 6, "brown": 6, "pink": 6, "xkcd_palett": 6, "transition_prob": 6, "astyp": 6, "roll": [6, 7, 8, 9], "vmin": [6, 9], "vmax": [6, 9], "grei": [6, 7], "0x7f837ca09880": 6, "angl": [6, 16], "endpoint": 6, "frequenc": [6, 7], "tile": [6, 9], "stationari": [6, 10], "stationary_point": 6, "solv": [6, 7, 8, 10], "xy": 6, "dxydt_m": 6, "x_1": 6, "x_2": 6, "equal": [6, 7, 8, 11, 17, 18], "true_arhmm": 6, "time_bin": 6, "10000": 6, "o": [6, 8, 9, 10, 11, 14], "75": [6, 7], "text": [6, 7, 8, 9, 12], "seri": [6, 12], "line": 6, "while": [6, 7], "solid": 6, "actual": [6, 7, 9], "plot_slic": 6, "05": [6, 7, 8, 9, 17], "extent": [6, 7, 9], "now": [6, 7, 8, 11, 17], "test_num_st": 6, "fitted_param": [6, 12], "sklearn": [6, 9], "cluster": [6, 9], "_kmean": [6, 9], "870": [6, 9], "n_init": [6, 9], "explicitli": [6, 9], "suppress": [6, 9], "00": [6, 8, 9, 12, 13], "lt": [6, 8, 9, 12, 13], "true_lp": [6, 9], "most_likely_st": [6, 7, 9], "j": 6, "211": 6, "212": 6, "good": [6, 8], "difficult": 6, "test": [6, 9], "its": [6, 7, 8, 9, 11, 15, 17], "real": 6, "what": [6, 9], "sampled_st": 6, "sampled_emiss": 6, "complex": 6, "between": [6, 8], "regim": 6, "could": [6, 7], "imagin": [6, 7], "nonlinear": [6, 15, 16, 17], "perhap": [6, 7, 8, 9], "launchpad": 6, "occasion": [7, 8], "dishonest": [7, 8], "biolog": 7, "analysi": 7, "protein": 7, "nucleic": 7, "acid": 7, "durbin": 7, "eddi": 7, "krogh": 7, "mitchison": 7, "1998": 7, "plai": 7, "dice": [7, 8], "shadi": 7, "old": 7, "west": 7, "saloon": 7, "suspect": 7, "player": 7, "cheat": 7, "die": [7, 8], "six": [7, 8], "face": [7, 8], "everi": [7, 17], "often": [7, 8], "secretli": 7, "up": [7, 8, 18], "half": 7, "avoid": [7, 11, 17], "get": [7, 8, 14, 16], "caught": 7, "don": 7, "veri": [7, 8], "tend": [7, 8], "keep": [7, 8, 9], "formal": 7, "game": 7, "fair": [7, 8], "95": [7, 8], "load": [7, 8], "basi": 7, "outcom": [7, 8], "alon": 7, "one_hot": 7, "th": [7, 8], "becaus": [7, 8, 9], "notat": 7, "know": [7, 9], "instanti": 7, "90": [7, 8], "situat": 7, "lead": 7, "littl": [7, 8], "confus": [7, 11, 17], "go": 7, "scenario": 7, "multipl": [7, 8, 9], "simultan": 7, "possibl": 7, "structur": [7, 12], "combin": [7, 11, 12, 17, 18], "need": [7, 8], "downstream": 7, "sinc": [7, 8, 10], "arbitrari": [7, 9, 18], "again": 7, "think": [7, 8], "reshap": [7, 8, 9, 10], "num_emiss": [7, 8], "struct": [7, 8], "organ": 7, "aren": 7, "realli": [7, 8], "meant": 7, "human": 7, "consumpt": 7, "paramscategoricalhmm": 7, "paramsstandardhmminitialst": 7, "float32": 7, "paramsstandardhmmtransit": 7, "paramscategoricalhmmemiss": 7, "16666667": 7, "edit": 7, "design": [7, 10], "prefer": 7, "datatyp": 7, "pleas": 7, "desir": 7, "attribut": 7, "thing": [7, 8], "latter": [7, 9], "necesari": 7, "won": 7, "ve": 7, "pseudorandom": [7, 8], "300": 7, "42": [7, 8, 13], "last": [7, 9], "emis": 7, "offer": 7, "power": 7, "tool": 7, "just": [7, 8, 9, 11, 18], "v": [7, 9, 11, 17], "As": [7, 8, 9], "much": [7, 8], "plot_sequ": 7, "born": 7, "empir": 7, "fraction": 7, "rememb": 7, "p0": 7, "p1": 7, "14970061": 7, "46616542": 7, "mathemat": 7, "ch": 7, "fashion": 7, "comparison": [7, 8, 16], "2f": [7, 16], "517": 7, "plot_posterior_prob": 7, "ylim": [7, 16], "those": [7, 8, 9], "after": [7, 8], "sharp": 7, "rise": [7, 16], "235": 7, "attenu": 7, "That": [7, 8], "sensit": [7, 16], "when": [7, 8], "benefit": 7, "suggest": 7, "wa": 7, "chanc": 7, "event": 7, "maximum": [7, 8], "posteriori": [7, 8], "program": 7, "plot_map_sequ": 7, "howev": [7, 8, 9, 18], "exactli": 7, "knew": 8, "goal": 8, "fill": 8, "unfil": 8, "dirichlet": 8, "categori": 8, "quad": 8, "full": [8, 9], "describ": 8, "digest": 8, "print_param": 8, "set_printopt": [8, 16], "formatt": [8, 16], "3f": 8, "950": 8, "050": 8, "900": 8, "167": [8, 10], "simplest": 8, "ascent": 8, "typic": 8, "formul": [8, 16], "problem": [8, 16], "direct": 8, "steepest": 8, "even": 8, "though": 8, "straightforward": 8, "randomli": 8, "prng": 8, "persist": 8, "paramt": 8, "hot": 8, "posit": [8, 11, 12, 17], "fbgd_param": 8, "fbgd_prop": 8, "793": 8, "207": 8, "978": 8, "022": 8, "252": 8, "748": 8, "145": [8, 10], "115": 8, "024": 8, "136": 8, "187": 8, "393": 8, "010": 8, "119": 8, "416": 8, "325": 8, "068": 8, "061": 8, "notic": 8, "among": [8, 9], "certain": 8, "parmet": 8, "contrast": 8, "why": 8, "sometim": 8, "larg": 8, "quickli": 8, "fbgd_kei": 8, "fbgd_loss": 8, "learning_r": 8, "momentum": 8, "400": [8, 16], "sgd_param": 8, "sgd_param_prop": 8, "sgd_kei": 8, "sgd_loss": 8, "gd": 8, "intuit": 8, "sweep": 8, "wherea": 8, "appear": 8, "correct": 8, "961": 8, "039": 8, "292": 8, "708": 8, "162": 8, "142": 8, "131": 8, "306": 8, "013": 8, "170": 8, "406": 8, "249": 8, "093": 8, "070": 8, "964": 8, "036": 8, "344": 8, "656": 8, "165": 8, "143": 8, "124": 8, "130": 8, "150": 8, "287": 8, "014": 8, "229": 8, "315": 8, "258": 8, "110": 8, "074": 8, "ok": [8, 15, 16, 17], "perfect": 8, "tradit": 8, "essenti": 8, "By": 8, "henc": 8, "practic": 8, "quicker": 8, "especi": 8, "nice": 8, "em_param": 8, "em_param_prop": 8, "02": 8, "negat": 8, "divid": 8, "total": 8, "librari": [8, 12, 18], "em_loss": 8, "true_loss": 8, "Not": 8, "faster": 8, "hand": 8, "better": 8, "inde": 8, "obtain": 8, "truli": 8, "nearli": 8, "refer": [8, 18], "fact": [8, 9], "symmetr": 8, "mode": 8, "628": 8, "372": 8, "909": 8, "091": 8, "053": [8, 10], "947": 8, "106": [8, 9], "101": 8, "105": 8, "468": 8, "171": 8, "173": 8, "164": 8, "157": 8, "exact": 8, "gloss": 8, "prone": 8, "stuck": 8, "optima": 8, "heurist": [8, 9], "intellig": 8, "anoth": 8, "achiev": 8, "did": 8, "address": 8, "question": 8, "determin": [8, 9], "purpos": [8, 18], "far": 8, "focus": 8, "gaussian": [8, 11, 15, 17], "concern": 8, "ti": 9, "niw": 9, "choos": 9, "held": 9, "white_to_color_cmap": 9, "plot_gaussian_hmm": 9, "xx": 9, "yy": 9, "contour": 9, "mfc": 9, "mec": 9, "y_1": 9, "y_2": 9, "plot_gaussian_hmm_data": 9, "superimpos": 9, "sharex": 9, "slight": 9, "wrinkl": 9, "num_train_batch": 9, "num_test_batch": 9, "underli": 9, "true_num_st": 9, "80": 9, "emission_cov": 9, "train_kei": 9, "val_kei": 9, "test_kei": 9, "train_true_st": 9, "train_emiss": 9, "test_true_st": 9, "test_emiss": 9, "plane": 9, "background": 9, "fold": 9, "cross_validate_model": 9, "ineffici": 9, "highlight": 9, "_fit_fold": 9, "y_train": 9, "y_val": 9, "fit_param": 9, "train_lp": 9, "val_ll": 9, "all_num_st": 9, "test_hmm": 9, "append": [9, 12, 14], "avg_val_l": 9, "all_val_l": 9, "ko": 9, "per_fold_val_l": 9, "ones_lik": [9, 10, 12], "num": [9, 10, 14], "avg": 9, "answer": 9, "pick": 9, "highest": 9, "stop": [9, 11], "increas": 9, "hypothesi": 9, "best_num_st": 9, "num_iter": 9, "0x7f352f542190": 9, "invari": 9, "relabel": 9, "section": 9, "assign": 9, "usual": 9, "simplic": 9, "fit_model": 9, "test_lp": 9, "true_test_lp": 9, "__class__": 9, "__name__": 9, "30": [9, 12, 15], "1f": 9, "117": 9, "112": 9, "111": 9, "114": 9, "almost": 9, "underperform": 9, "overfit": 9, "flexibl": 9, "were": 9, "bit": 9, "surpris": 9, "win": 9, "mind": 9, "particular": 9, "seed": 9, "applic": 9, "error": 9, "analys": 9, "seen": 9, "pattern": 9, "document": [9, 18], "least": 10, "squar": 10, "linear_gaussian_ssm": [10, 11, 12, 13, 14], "pmtk3": 10, "blob": [10, 15], "master": 10, "linregonlinedemokalman": 10, "n_ob": 10, "21": 10, "486": 10, "303": 10, "336": 10, "174": 10, "604": 10, "507": 10, "326": 10, "638": 10, "233": 10, "986": 10, "028": 10, "264": 10, "451": 10, "652": 10, "268": 10, "34": [10, 12], "626": 10, "784": 10, "obs_var": 10, "mu0": 10, "sigma0": 10, "encod": 10, "lgssm_posterior": [10, 11], "kf_result": 10, "bay": 10, "rule": 10, "give": [10, 16], "posterior_prec": 10, "inv": 10, "posterior_mean": 10, "batch_result": 10, "unpack": [10, 16], "post_weights_kf": 10, "post_sigma_kf": 10, "w0_kf_hist": 10, "w1_kf_hist": 10, "w0_kf_err": 10, "w1_kf_err": 10, "post_weights_batch": 10, "post_prec_batch": 10, "w0_post_batch": 10, "w1_post_batch": 10, "sigma_post_batch": 10, "w0_std_batch": 10, "w1_std_batch": 10, "fmt": 10, "w_0": 10, "fillstyl": [10, 15, 16, 17], "w_1": 10, "hline": 10, "0x7fd1e0e35700": 10, "consid": [11, 17], "move": [11, 17], "locat": [11, 17], "motion": [11, 17], "veloc": [11, 16], "pmatrix": [11, 16, 17], "_t": 11, "v_t": [11, 17], "coordin": [11, 15, 17], "delta": [11, 16], "underbrac": 11, "v_": 11, "suppos": 11, "corrupt": [11, 17], "becom": [11, 17], "part": 11, "plot_uncertainty_ellips": [11, 17], "chosen": 11, "310": 11, "observation_marker_kwarg": 11, "marker": 11, "markerfacecolor": 11, "markeredgewidth": 11, "fig1": 11, "ax1": 11, "c0": 11, "0x7f2154749dc0": 11, "plot_lgssm_posterior": 11, "post_mean": 11, "post_cov": 11, "ellipse_kwarg": 11, "legend_kwarg": 11, "patch": 11, "ellips": [11, 17], "weird": 11, "behaviour": 11, "empti": 11, "wouldn": 11, "reset": 11, "dictionari": 11, "dict": 11, "space": 11, "trajectori": [11, 17], "43": 11, "13846": 11, "fig2": 11, "ax2": 11, "darkgrei": 11, "fig3": 11, "ax3": 11, "smoothed_posterior": 11, "allclos": [11, 14], "num_sampl": [11, 12, 15], "plot_kf_parallel": 11, "dict_figur": 11, "missiles_lat": 11, "filt_mean": 11, "filt_cov": 11, "missiles_filt": 11, "missiles_smooth": 11, "librai": 12, "int_": 12, "jit": 12, "itertool": 12, "log_det_jac_constrain": 12, "rcparam": 12, "16": 12, "true_model": [12, 13], "plot_result": 12, "smoothed_emiss": [12, 13], "smoothed_emissions_std": [12, 13], "spc": [12, 13], "ln": [12, 13], "get_color": [12, 13], "fake": 12, "initil": 12, "test_model": [12, 13], "initial_param": 12, "param_prop": [12, 13], "marginal_l": [12, 13], "fitted_c": 12, "fitted_d": 12, "fitted_r": 12, "smoothed_emissions_mean": 12, "smoothed_emissions_cov": 12, "to_unconstrain": 12, "from_unconstrain": 12, "pytree_stack": 12, "ensure_array_has_batch_dim": 12, "fastprogress": 12, "progress_bar": 12, "fit_hmc": 12, "warmup_step": 12, "num_integration_step": 12, "sure": 12, "batch_input": 12, "initial_unc_param": 12, "_logprob": 12, "unc_param": 12, "batch_ll": 12, "sampler": 12, "window_adapt": 12, "warmup": 12, "init_kei": 12, "hmc_initial_st": 12, "hmc_kernel": 12, "hmc_step": 12, "hmc_state": 12, "step_kei": 12, "next_hmc_stat": 12, "pbar": 12, "potential_energi": 12, "sample_s": 12, "param_sampl": 12, "39": 12, "smooth_emiss": 12, "freez": 12, "st": 12, "test_param": [12, 13], "test_param_prop": 12, "mark": 12, "frozen": 12, "lineargaussianconjugatessm": 13, "monotonically_increas": 13, "key_root": 13, "plot_learning_curv": 13, "nstep": 13, "true_logjoint": 13, "plot_predict": 13, "untrain": 13, "atol": [13, 14], "rtol": 13, "04": 13, "neg_marginal_l": 13, "reduc": 14, "cost": 14, "devic": 14, "borrow": 14, "heavili": 14, "adrien": 14, "correnflo": 14, "made": 14, "abl": 14, "speedup": 14, "curv": 14, "block_until_readi": 14, "parallel_lgssm_smooth": 14, "platform": 14, "cpu_mod": 14, "cpudevic": 14, "id": 14, "dt": [14, 16], "kron": 14, "\u03bc0": 14, "\u03c30": 14, "observation_dim": 14, "subkei": 14, "ssm_posterior": 14, "parallel_posterior": 14, "c2": 14, "serial": 14, "c3": 14, "num_repeat": 14, "1_000": 14, "10_000": 14, "100_000": 14, "serial_smoothing_dur": 14, "parallel_smoothing_dur": 14, "compil": 14, "mean_tim": 14, "5955722332000732": 14, "5052673816680908": 14, "5928356647491455": 14, "5826148986816406": 14, "6162593364715576": 14, "6767008304595947": 14, "loglog": 14, "seq": 14, "multi": 15, "layer": 15, "nlg": 15, "action": 15, "main": 15, "ekf_mlp_demo": 15, "nonlinear_gaussian_ssm": [15, 16, 17], "sample_observ": 15, "x_min": 15, "x_max": 15, "x_var": 15, "y_var": 15, "num_ob": 15, "x_nois": 15, "y_nois": 15, "shuffled_idx": 15, "view": 15, "unflatten": 15, "fn": 15, "ident": 15, "ekf_param": [15, 16, 17], "ekf": [15, 16, 17], "plot_mlp_predict": 15, "ob": [15, 16], "x_lim": 15, "y_lim": 15, "uncertainti": [15, 17], "w_sampl": 15, "y_sampl": 15, "in_ax": 15, "07": [15, 16], "y_mean": 15, "set_ylim": 15, "borderpad": [15, 16, 17], "handlelength": [15, 16, 17], "fancybox": [15, 16, 17], "all_figur": 15, "inputs_grid": 15, "ntrain": 15, "ekf_mlp_step_": 15, "taken": 16, "p45": 16, "repo": 16, "physic": 16, "rel": 16, "vertic": 16, "ad": 16, "angular": 16, "acceler": 16, "equat": 16, "frac": 16, "spectral": 16, "densiti": 16, "alpha_t": 16, "inlin": 16, "jaxtyp": [16, 18], "pretti": 16, "ndarrai": 16, "float_kind": 16, "0125": 16, "q_c": 16, "lightweight": 16, "pendulumparam": 16, "initial_st": 16, "simulate_pendulum": 16, "_step": 16, "carri": 16, "rng1": 16, "rng2": 16, "next_stat": 16, "plot_pendulum": 16, "time_grid": 16, "x_tr": 16, "x_ob": 16, "x_est": 16, "est_typ": [16, 17], "darkgrai": 16, "measur": 16, "x_": 16, "rmse": 16, "compute_rms": 16, "y_est": 16, "compute_and_print_rmse_comparison": 16, "rmse_est": 16, "pendulum_param": 16, "ekf_posterior": 16, "m_ekf": 16, "55": 16, "ek": 16, "09": 16, "ukf_param": [16, 17], "ukf_hyperparam": 16, "ukf_posterior": 16, "m_ukf": 16, "ukf": [16, 17], "m_uk": 16, "uk": 16, "extens": 17, "At": 17, "obs_dim": 17, "plot_infer": 17, "show_stat": 17, "oberv": 17, "center": 17, "make_inference_arg": 17, "fourth": 17, "0x7fae4c60e1c0": 17, "0x7fae4c302400": 17, "declar": 18, "check": 18, "beartyp": 18, "typeguard": 18, "disabl": 18, "diffrax": 18, "api": 18, "shorthand": 18, "addit": 18, "annot": 18, "dim1": 18, "dim2": 18, "boolean": 18, "And": 18}, "objects": {"dynamax.generalized_gaussian_ssm": [[1, 0, 1, "", "GeneralizedGaussianSSM"], [1, 0, 1, "", "ParamsGGSSM"], [1, 3, 1, "", "conditional_moments_gaussian_filter"], [1, 3, 1, "", "conditional_moments_gaussian_smoother"], [1, 3, 1, "", "iterated_conditional_moments_gaussian_filter"], [1, 3, 1, "", "iterated_conditional_moments_gaussian_smoother"]], "dynamax.generalized_gaussian_ssm.GeneralizedGaussianSSM": [[1, 1, 1, "", "emission_distribution"], [1, 2, 1, "", "emission_shape"], [1, 1, 1, "", "initial_distribution"], [1, 1, 1, "", "transition_distribution"]], "dynamax.hidden_markov_model": [[1, 0, 1, "", "BernoulliHMM"], [1, 0, 1, "", "CategoricalHMM"], [1, 0, 1, "", "CategoricalRegressionHMM"], [1, 0, 1, "", "DiagonalGaussianHMM"], [1, 0, 1, "", "DiagonalGaussianMixtureHMM"], [1, 0, 1, "", "GammaHMM"], [1, 0, 1, "", "GaussianHMM"], [1, 0, 1, "", "GaussianMixtureHMM"], [1, 0, 1, "", "HMM"], [1, 0, 1, "", "HMMEmissions"], [1, 0, 1, "", "HMMInitialState"], [1, 0, 1, "", "HMMParameterSet"], [1, 0, 1, "", "HMMPosterior"], [1, 0, 1, "", "HMMPosteriorFiltered"], [1, 0, 1, "", "HMMPropertySet"], [1, 0, 1, "", "HMMTransitions"], [1, 0, 1, "", "LinearAutoregressiveHMM"], [1, 0, 1, "", "LinearRegressionHMM"], [1, 0, 1, "", "LogisticRegressionHMM"], [1, 0, 1, "", "LowRankGaussianHMM"], [1, 0, 1, "", "MultinomialHMM"], [1, 0, 1, "", "PoissonHMM"], [1, 0, 1, "", "SharedCovarianceGaussianHMM"], [1, 0, 1, "", "SphericalGaussianHMM"], [1, 3, 1, "", "hmm_filter"], [1, 3, 1, "", "hmm_fixed_lag_smoother"], [1, 3, 1, "", "hmm_posterior_mode"], [1, 3, 1, "", "hmm_posterior_sample"], [1, 3, 1, "", "hmm_smoother"], [1, 3, 1, "", "hmm_two_filter_smoother"], [1, 3, 1, "", "parallel_hmm_filter"], [1, 3, 1, "", "parallel_hmm_smoother"]], "dynamax.hidden_markov_model.BernoulliHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.CategoricalHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.CategoricalRegressionHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.DiagonalGaussianHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.DiagonalGaussianMixtureHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.GammaHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.GaussianHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.GaussianMixtureHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.HMM": [[1, 1, 1, "", "e_step"], [1, 1, 1, "", "emission_distribution"], [1, 2, 1, "", "emission_shape"], [1, 1, 1, "", "filter"], [1, 1, 1, "", "initial_distribution"], [1, 1, 1, "", "initialize_m_step_state"], [1, 1, 1, "", "log_prior"], [1, 1, 1, "", "m_step"], [1, 1, 1, "", "marginal_log_prob"], [1, 1, 1, "", "smoother"], [1, 1, 1, "", "transition_distribution"]], "dynamax.hidden_markov_model.HMMEmissions": [[1, 1, 1, "", "collect_suff_stats"], [1, 1, 1, "", "distribution"], [1, 2, 1, "", "emission_shape"], [1, 1, 1, "", "initialize"], [1, 1, 1, "", "initialize_m_step_state"], [1, 1, 1, "", "log_prior"], [1, 1, 1, "", "m_step"]], "dynamax.hidden_markov_model.HMMInitialState": [[1, 1, 1, "", "collect_suff_stats"], [1, 1, 1, "", "distribution"], [1, 1, 1, "", "initialize"], [1, 1, 1, "", "initialize_m_step_state"], [1, 1, 1, "", "log_prior"], [1, 1, 1, "", "m_step"]], "dynamax.hidden_markov_model.HMMTransitions": [[1, 1, 1, "", "collect_suff_stats"], [1, 1, 1, "", "distribution"], [1, 1, 1, "", "initialize"], [1, 1, 1, "", "initialize_m_step_state"], [1, 1, 1, "", "log_prior"], [1, 1, 1, "", "m_step"]], "dynamax.hidden_markov_model.LinearAutoregressiveHMM": [[1, 1, 1, "", "compute_inputs"], [1, 1, 1, "", "initialize"], [1, 1, 1, "", "sample"]], "dynamax.hidden_markov_model.LinearRegressionHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.LogisticRegressionHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.LowRankGaussianHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.MultinomialHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.PoissonHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.SharedCovarianceGaussianHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.SphericalGaussianHMM": [[1, 1, 1, "", "initialize"]], "dynamax.linear_gaussian_ssm": [[1, 0, 1, "", "LinearGaussianSSM"], [1, 0, 1, "", "ParamsLGSSM"], [1, 0, 1, "", "ParamsLGSSMDynamics"], [1, 0, 1, "", "ParamsLGSSMEmissions"], [1, 0, 1, "", "ParamsLGSSMInitial"], [1, 0, 1, "", "PosteriorGSSMFiltered"], [1, 0, 1, "", "PosteriorGSSMSmoothed"], [1, 3, 1, "", "lgssm_filter"], [1, 3, 1, "", "lgssm_posterior_sample"], [1, 3, 1, "", "lgssm_smoother"]], "dynamax.linear_gaussian_ssm.LinearGaussianSSM": [[1, 1, 1, "", "e_step"], [1, 1, 1, "", "emission_distribution"], [1, 2, 1, "", "emission_shape"], [1, 1, 1, "", "filter"], [1, 1, 1, "", "initial_distribution"], [1, 1, 1, "", "initialize"], [1, 2, 1, "", "inputs_shape"], [1, 1, 1, "", "m_step"], [1, 1, 1, "", "marginal_log_prob"], [1, 1, 1, "", "posterior_predictive"], [1, 1, 1, "", "smoother"], [1, 1, 1, "", "transition_distribution"]], "dynamax.nonlinear_gaussian_ssm": [[1, 0, 1, "", "NonlinearGaussianSSM"], [1, 0, 1, "", "ParamsNLGSSM"], [1, 3, 1, "", "extended_kalman_filter"], [1, 3, 1, "", "extended_kalman_smoother"], [1, 3, 1, "", "iterated_extended_kalman_filter"], [1, 3, 1, "", "iterated_extended_kalman_smoother"], [1, 3, 1, "", "unscented_kalman_filter"], [1, 3, 1, "", "unscented_kalman_smoother"]], "dynamax.nonlinear_gaussian_ssm.NonlinearGaussianSSM": [[1, 1, 1, "", "emission_distribution"], [1, 2, 1, "", "emission_shape"], [1, 1, 1, "", "initial_distribution"], [1, 2, 1, "", "inputs_shape"], [1, 1, 1, "", "transition_distribution"]], "dynamax.parameters": [[1, 0, 1, "", "ParameterProperties"], [1, 0, 1, "", "ParameterSet"], [1, 0, 1, "", "PropertySet"]], "dynamax.ssm": [[1, 0, 1, "", "SSM"]], "dynamax.ssm.SSM": [[1, 1, 1, "", "e_step"], [1, 1, 1, "", "emission_distribution"], [1, 2, 1, "", "emission_shape"], [1, 1, 1, "", "filter"], [1, 1, 1, "", "fit_em"], [1, 1, 1, "", "fit_sgd"], [1, 1, 1, "", "initial_distribution"], [1, 2, 1, "", "inputs_shape"], [1, 1, 1, "", "log_prior"], [1, 1, 1, "", "log_prob"], [1, 1, 1, "", "m_step"], [1, 1, 1, "", "marginal_log_prob"], [1, 1, 1, "", "sample"], [1, 1, 1, "", "smoother"], [1, 1, 1, "", "transition_distribution"]], "dynamax.utils.utils": [[1, 3, 1, "", "find_permutation"]]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:property", "3": "py:function"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "property", "Python property"], "3": ["py", "function", "Python function"]}, "titleterms": {"document": [0, 2], "state": [1, 2, 6, 7, 9], "space": [1, 2], "model": [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 14, 17], "base": 1, "class": 1, "paramet": [1, 8, 12, 13], "hidden": 1, "markov": 1, "abstract": 1, "high": 1, "level": [1, 11], "low": [1, 11], "infer": [1, 3, 5, 6, 7, 10, 11, 12, 14, 15], "type": [1, 18], "linear": [1, 2, 10], "gaussian": [1, 2, 3, 4, 5, 9], "ssm": [1, 2, 12, 13, 14], "nonlinear": [1, 2], "gssm": 1, "gener": [1, 2, 9, 12], "util": 1, "welcom": 2, "dynamax": 2, "instal": 2, "test": [2, 14], "what": 2, "ar": [2, 6], "quickstart": 2, "tutori": 2, "hmm": [2, 6, 7, 8, 9], "api": 2, "relat": 2, "librari": 2, "indic": 2, "tabl": 2, "onlin": [3, 4, 10, 11, 15], "logist": 3, "regress": [3, 10], "us": [3, 4, 5, 9, 10, 11, 12, 13, 15, 16, 17], "condit": [3, 4, 5], "moment": [3, 4, 5], "filter": [3, 4, 5, 7, 10, 11, 14, 15, 16, 17], "import": [3, 5], "simul": 3, "plot": [3, 4, 5, 6, 7, 9, 10, 13, 15, 16], "laplac": 3, "estim": [3, 7, 8, 12, 13], "dynam": [3, 6], "ekf": [3, 4, 5], "ukf": 3, "ghkf": 3, "learn": [4, 8, 15], "an": [4, 5, 6, 11, 12, 13, 14, 15], "mlp": [4, 15], "classifi": 4, "setup": [4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "creat": [4, 11, 17], "data": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17], "code": 4, "defin": 4, "train": [4, 9, 12], "cmgf": [4, 5], "fit": [5, 6, 9, 13], "ld": 5, "poisson": 5, "likelihood": [5, 6], "function": [5, 6, 9], "helper": [5, 6, 9], "make": [5, 7], "autoregress": 6, "demo": 6, "manual": 6, "construct": 6, "arhmm": 6, "sampl": [6, 7, 8, 9, 11, 16, 17], "emiss": 6, "from": [6, 7, 8, 11, 17], "log": [6, 9], "against": 6, "true": [6, 8], "comparison": [6, 14], "find": 6, "most": [6, 7], "like": [6, 7], "discret": 6, "new": 6, "conclus": [6, 7, 8, 9], "casino": [7, 8], "categor": 7, "vector": 7, "comput": [7, 12], "forward": 7, "algorithm": [7, 11], "distribut": 7, "smooth": [7, 11, 14], "backward": 7, "sequenc": [7, 14], "viterbi": 7, "gradient": 8, "descent": 8, "i": 8, "special": 8, "case": 8, "stochast": 8, "mini": 8, "batch": 8, "expect": 8, "maxim": 8, "compar": [8, 9], "curv": 8, "cross": 9, "valid": 9, "select": 9, "write": 9, "perform": [9, 11], "leav": 9, "one": 9, "out": 9, "individu": 9, "averag": 9, "likelihod": 9, "number": 9, "now": 9, "all": 9, "chosen": 9, "visual": 9, "differ": 9, "constraint": 9, "covari": 9, "kalman": [10, 11, 15, 16, 17], "offlin": [10, 11], "inferenec": 10, "result": [10, 13, 15], "track": [11, 16, 17], "object": [11, 17], "some": [11, 17], "interfac": 11, "underli": 11, "multipl": 11, "parallel": [11, 14], "bayesian": 12, "lg": [12, 13, 14], "hmc": 12, "synthet": 12, "baselin": 12, "method": 12, "em": [12, 13], "mle": 12, "implement": 12, "wrapper": 12, "call": 12, "posterior": 12, "over": 12, "subset": 12, "map": 13, "sgd": 13, "singl": 14, "time": 14, "extend": [15, 16, 17], "neural": 15, "network": 15, "1d": 16, "pendulum": 16, "unscent": [16, 17], "smoother": 16, "spiral": 17, "terminologi": 18}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"Documentation": [[0, "documentation"]], "State Space Model (Base class)": [[1, "state-space-model-base-class"]], "Parameters": [[1, "parameters"]], "Hidden Markov Model": [[1, "hidden-markov-model"]], "Abstract classes": [[1, "abstract-classes"]], "High-level models": [[1, "high-level-models"]], "Low-level inference": [[1, "low-level-inference"], [1, "id4"], [1, "id7"], [1, "id10"]], "Types": [[1, "types"], [1, "id5"], [1, "id8"], [1, "id11"]], "Linear Gaussian SSM": [[1, "linear-gaussian-ssm"]], "High-level class": [[1, "high-level-class"], [1, "id6"], [1, "id9"]], "Nonlinear Gaussian GSSM": [[1, "nonlinear-gaussian-gssm"]], "Generalized Gaussian GSSM": [[1, "generalized-gaussian-gssm"]], "Utilities": [[1, "utilities"]], "Welcome to DYNAMAX!": [[2, "welcome-to-dynamax"]], "Installation and Testing": [[2, "installation-and-testing"]], "What are state space models?": [[2, "what-are-state-space-models"]], "Quickstart": [[2, "quickstart"]], "Tutorials": [[2, "tutorials"]], "HMMs": [[2, null]], "Linear Gaussian SSMs": [[2, null]], "Nonlinear Gaussian SSMs": [[2, null]], "Generalized Gaussian SSMs": [[2, null]], "API documentation": [[2, "api-documentation"]], "API Documentation": [[2, null]], "Related Libraries": [[2, "related-libraries"]], "Indices and tables": [[2, "indices-and-tables"]], "Online Logistic Regression using conditional moments Gaussian filter": [[3, "online-logistic-regression-using-conditional-moments-gaussian-filter"]], "Imports": [[3, "imports"]], "Simulation and Plotting": [[3, "simulation-and-plotting"]], "Laplace Estimate": [[3, "laplace-estimate"]], "Dynamical model": [[3, "dynamical-model"]], "Online inference": [[3, "online-inference"], [10, "online-inference"], [15, "online-inference"]], "EKF": [[3, "ekf"]], "UKF": [[3, "ukf"]], "GHKF": [[3, "ghkf"]], "Online learning of an MLP Classifier using conditional moments Gaussian filter": [[4, "online-learning-of-an-mlp-classifier-using-conditional-moments-gaussian-filter"]], "Setup": [[4, "setup"], [6, "setup"], [7, "setup"], [8, "setup"], [9, "setup"], [10, "setup"], [11, "setup"], [12, "setup"], [13, "setup"], [14, "setup"], [15, "setup"], [16, "setup"], [17, "setup"]], "Create data": [[4, "create-data"]], "Plotting code": [[4, "plotting-code"]], "Define MLP": [[4, "define-mlp"]], "Online Training Using CMGF-EKF": [[4, "online-training-using-cmgf-ekf"]], "Fitting an LDS with Poisson Likelihood using conditional moments Gaussian filter": [[5, "fitting-an-lds-with-poisson-likelihood-using-conditional-moments-gaussian-filter"]], "Imports and Plotting Functions": [[5, "imports-and-plotting-functions"]], "Helper functions for plotting": [[5, "helper-functions-for-plotting"], [6, "helper-functions-for-plotting"], [9, "helper-functions-for-plotting"]], "Make data": [[5, "make-data"]], "Model": [[5, "model"], [10, "model"], [14, "model"]], "CMGF-EKF Inference": [[5, "cmgf-ekf-inference"]], "Autoregressive (AR) HMM Demo": [[6, "autoregressive-ar-hmm-demo"]], "Manually construct an ARHMM": [[6, "manually-construct-an-arhmm"]], "Plot dynamics functions": [[6, "plot-dynamics-functions"]], "Sample emissions from the ARHMM": [[6, "sample-emissions-from-the-arhmm"]], "Fit an ARHMM": [[6, "fit-an-arhmm"]], "Plot the log likelihoods against the true likelihood, for comparison": [[6, "plot-the-log-likelihoods-against-the-true-likelihood-for-comparison"]], "Find the most likely states": [[6, "find-the-most-likely-states"]], "Plot the true and inferred discrete states": [[6, "plot-the-true-and-inferred-discrete-states"]], "Sample new data from the fitted model": [[6, "sample-new-data-from-the-fitted-model"]], "Conclusion": [[6, "conclusion"], [7, "conclusion"], [8, "conclusion"], [9, "conclusion"]], "Casino HMM: Inference (state estimation)": [[7, "casino-hmm-inference-state-estimation"]], "Make a Categorical HMM": [[7, "make-a-categorical-hmm"]], "Sample data from model": [[7, "sample-data-from-model"]], "Vectorizing computation": [[7, "vectorizing-computation"]], "Filtering (forwards algorithm)": [[7, "filtering-forwards-algorithm"]], "Plot the filtering distribution": [[7, "plot-the-filtering-distribution"]], "Smoothing (forwards-backwards algorithm)": [[7, "smoothing-forwards-backwards-algorithm"]], "Most likely state sequence (Viterbi algorithm)": [[7, "most-likely-state-sequence-viterbi-algorithm"]], "Casino HMM: Learning (parameter estimation)": [[8, "casino-hmm-learning-parameter-estimation"]], "Sample data from true model": [[8, "sample-data-from-true-model"]], "Learning with Gradient Descent": [[8, "learning-with-gradient-descent"]], "Gradient descent is a special case of stochastic gradient descent": [[8, "gradient-descent-is-a-special-case-of-stochastic-gradient-descent"]], "Stochastic Gradient Descent with Mini-Batches": [[8, "stochastic-gradient-descent-with-mini-batches"]], "Expectation-Maximization": [[8, "expectation-maximization"]], "Compare the learning curves": [[8, "compare-the-learning-curves"]], "Gaussian HMM: Cross-validation and Model Selection": [[9, "gaussian-hmm-cross-validation-and-model-selection"]], "Generate sample data": [[9, "generate-sample-data"]], "Write a helper function to perform leave-one-out cross-validation": [[9, "write-a-helper-function-to-perform-leave-one-out-cross-validation"]], "Plot the individual and average validation log likelihods as a function of number of states": [[9, "plot-the-individual-and-average-validation-log-likelihods-as-a-function-of-number-of-states"]], "Now fit a model to all the training data using the chosen number of states": [[9, "now-fit-a-model-to-all-the-training-data-using-the-chosen-number-of-states"]], "Visualize the fitted model": [[9, "visualize-the-fitted-model"]], "Comparing Gaussian HMMs with different constraints on the covariance": [[9, "comparing-gaussian-hmms-with-different-constraints-on-the-covariance"]], "Online linear regression using Kalman filtering": [[10, "online-linear-regression-using-kalman-filtering"]], "Data": [[10, "data"], [13, "data"], [15, "data"]], "Offline inferenece": [[10, "offline-inferenece"]], "Plot results": [[10, "plot-results"], [13, "plot-results"], [15, "plot-results"]], "Tracking an object using the Kalman filter": [[11, "tracking-an-object-using-the-kalman-filter"]], "Create the model": [[11, "create-the-model"], [17, "create-the-model"]], "Sample some data from the model": [[11, "sample-some-data-from-the-model"], [17, "sample-some-data-from-the-model"]], "Perform online filtering": [[11, "perform-online-filtering"]], "Perform offline smoothing": [[11, "perform-offline-smoothing"]], "Low-level interface to the underlying inference algorithms": [[11, "low-level-interface-to-the-underlying-inference-algorithms"]], "Tracking multiple objects in parallel": [[11, "tracking-multiple-objects-in-parallel"]], "Bayesian parameter estimation for an LG-SSM using HMC": [[12, "bayesian-parameter-estimation-for-an-lg-ssm-using-hmc"]], "Generate synthetic training data": [[12, "generate-synthetic-training-data"]], "Baseline method: use EM to compute MLE": [[12, "baseline-method-use-em-to-compute-mle"]], "Implement HMC wrapper": [[12, "implement-hmc-wrapper"]], "Call HMC": [[12, "call-hmc"]], "Use HMC to infer posterior over a subset of the parameters": [[12, "use-hmc-to-infer-posterior-over-a-subset-of-the-parameters"]], "MAP parameter estimation for an LG-SSM using EM and SGD": [[13, "map-parameter-estimation-for-an-lg-ssm-using-em-and-sgd"]], "Fit with EM": [[13, "fit-with-em"]], "Fit with SGD": [[13, "fit-with-sgd"]], "Parallel filtering and smoothing in an LG-SSM": [[14, "parallel-filtering-and-smoothing-in-an-lg-ssm"]], "Test parallel inference on a single sequence": [[14, "test-parallel-inference-on-a-single-sequence"]], "Timing comparison": [[14, "timing-comparison"]], "Online learning for an MLP using extended Kalman filtering": [[15, "online-learning-for-an-mlp-using-extended-kalman-filtering"]], "Neural network": [[15, "neural-network"]], "Tracking a 1d pendulum using Extended / Unscented Kalman filter/ smoother": [[16, "tracking-a-1d-pendulum-using-extended-unscented-kalman-filter-smoother"]], "Sample data and plot it": [[16, "sample-data-and-plot-it"]], "Extended Kalman Filter / smoother": [[16, "extended-kalman-filter-smoother"]], "Unscented Kalman Filter / smoother": [[16, "unscented-kalman-filter-smoother"]], "Tracking a spiraling object using the extended / unscented Kalman filter": [[17, "tracking-a-spiraling-object-using-the-extended-unscented-kalman-filter"]], "Extended Kalman filter": [[17, "extended-kalman-filter"]], "Unscented Kalman filter": [[17, "unscented-kalman-filter"]], "Terminology for types": [[18, "terminology-for-types"]]}, "indexentries": {"bernoullihmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.BernoulliHMM"]], "categoricalhmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.CategoricalHMM"]], "categoricalregressionhmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.CategoricalRegressionHMM"]], "diagonalgaussianhmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.DiagonalGaussianHMM"]], "diagonalgaussianmixturehmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.DiagonalGaussianMixtureHMM"]], "gammahmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.GammaHMM"]], "gaussianhmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.GaussianHMM"]], "gaussianmixturehmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.GaussianMixtureHMM"]], "generalizedgaussianssm (class in dynamax.generalized_gaussian_ssm)": [[1, "dynamax.generalized_gaussian_ssm.GeneralizedGaussianSSM"]], "hmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.HMM"]], "hmmemissions (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.HMMEmissions"]], "hmminitialstate (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.HMMInitialState"]], "hmmparameterset (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.HMMParameterSet"]], "hmmposterior (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.HMMPosterior"]], "hmmposteriorfiltered (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.HMMPosteriorFiltered"]], "hmmpropertyset (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.HMMPropertySet"]], "hmmtransitions (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.HMMTransitions"]], "linearautoregressivehmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.LinearAutoregressiveHMM"]], "lineargaussianssm (class in dynamax.linear_gaussian_ssm)": [[1, "dynamax.linear_gaussian_ssm.LinearGaussianSSM"]], "linearregressionhmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.LinearRegressionHMM"]], "logisticregressionhmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.LogisticRegressionHMM"]], "lowrankgaussianhmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.LowRankGaussianHMM"]], "multinomialhmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.MultinomialHMM"]], "nonlineargaussianssm (class in dynamax.nonlinear_gaussian_ssm)": [[1, "dynamax.nonlinear_gaussian_ssm.NonlinearGaussianSSM"]], "parameterproperties (class in dynamax.parameters)": [[1, "dynamax.parameters.ParameterProperties"]], "parameterset (class in dynamax.parameters)": [[1, "dynamax.parameters.ParameterSet"]], "paramsggssm (class in dynamax.generalized_gaussian_ssm)": [[1, "dynamax.generalized_gaussian_ssm.ParamsGGSSM"]], "paramslgssm (class in dynamax.linear_gaussian_ssm)": [[1, "dynamax.linear_gaussian_ssm.ParamsLGSSM"]], "paramslgssmdynamics (class in dynamax.linear_gaussian_ssm)": [[1, "dynamax.linear_gaussian_ssm.ParamsLGSSMDynamics"]], "paramslgssmemissions (class in dynamax.linear_gaussian_ssm)": [[1, "dynamax.linear_gaussian_ssm.ParamsLGSSMEmissions"]], "paramslgssminitial (class in dynamax.linear_gaussian_ssm)": [[1, "dynamax.linear_gaussian_ssm.ParamsLGSSMInitial"]], "paramsnlgssm (class in dynamax.nonlinear_gaussian_ssm)": [[1, "dynamax.nonlinear_gaussian_ssm.ParamsNLGSSM"]], "poissonhmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.PoissonHMM"]], "posteriorgssmfiltered (class in dynamax.linear_gaussian_ssm)": [[1, "dynamax.linear_gaussian_ssm.PosteriorGSSMFiltered"]], "posteriorgssmsmoothed (class in dynamax.linear_gaussian_ssm)": [[1, "dynamax.linear_gaussian_ssm.PosteriorGSSMSmoothed"]], "propertyset (class in dynamax.parameters)": [[1, "dynamax.parameters.PropertySet"]], "ssm (class in dynamax.ssm)": [[1, "dynamax.ssm.SSM"]], "sharedcovariancegaussianhmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.SharedCovarianceGaussianHMM"]], "sphericalgaussianhmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.SphericalGaussianHMM"]], "collect_suff_stats() (hmmemissions method)": [[1, "dynamax.hidden_markov_model.HMMEmissions.collect_suff_stats"]], "collect_suff_stats() (hmminitialstate method)": [[1, "dynamax.hidden_markov_model.HMMInitialState.collect_suff_stats"]], "collect_suff_stats() (hmmtransitions method)": [[1, "dynamax.hidden_markov_model.HMMTransitions.collect_suff_stats"]], "compute_inputs() (linearautoregressivehmm method)": [[1, "dynamax.hidden_markov_model.LinearAutoregressiveHMM.compute_inputs"]], "conditional_moments_gaussian_filter() (in module dynamax.generalized_gaussian_ssm)": [[1, "dynamax.generalized_gaussian_ssm.conditional_moments_gaussian_filter"]], "conditional_moments_gaussian_smoother() (in module dynamax.generalized_gaussian_ssm)": [[1, "dynamax.generalized_gaussian_ssm.conditional_moments_gaussian_smoother"]], "distribution() (hmmemissions method)": [[1, "dynamax.hidden_markov_model.HMMEmissions.distribution"]], "distribution() (hmminitialstate method)": [[1, "dynamax.hidden_markov_model.HMMInitialState.distribution"]], "distribution() (hmmtransitions method)": [[1, "dynamax.hidden_markov_model.HMMTransitions.distribution"]], "e_step() (hmm method)": [[1, "dynamax.hidden_markov_model.HMM.e_step"]], "e_step() (lineargaussianssm method)": [[1, "dynamax.linear_gaussian_ssm.LinearGaussianSSM.e_step"]], "e_step() (ssm method)": [[1, "dynamax.ssm.SSM.e_step"]], "emission_distribution() (generalizedgaussianssm method)": [[1, "dynamax.generalized_gaussian_ssm.GeneralizedGaussianSSM.emission_distribution"]], "emission_distribution() (hmm method)": [[1, "dynamax.hidden_markov_model.HMM.emission_distribution"]], "emission_distribution() (lineargaussianssm method)": [[1, "dynamax.linear_gaussian_ssm.LinearGaussianSSM.emission_distribution"]], "emission_distribution() (nonlineargaussianssm method)": [[1, "dynamax.nonlinear_gaussian_ssm.NonlinearGaussianSSM.emission_distribution"]], "emission_distribution() (ssm method)": [[1, "dynamax.ssm.SSM.emission_distribution"]], "emission_shape (generalizedgaussianssm property)": [[1, "dynamax.generalized_gaussian_ssm.GeneralizedGaussianSSM.emission_shape"]], "emission_shape (hmm property)": [[1, "dynamax.hidden_markov_model.HMM.emission_shape"]], "emission_shape (hmmemissions property)": [[1, "dynamax.hidden_markov_model.HMMEmissions.emission_shape"]], "emission_shape (lineargaussianssm property)": [[1, "dynamax.linear_gaussian_ssm.LinearGaussianSSM.emission_shape"]], "emission_shape (nonlineargaussianssm property)": [[1, "dynamax.nonlinear_gaussian_ssm.NonlinearGaussianSSM.emission_shape"]], "emission_shape (ssm property)": [[1, "dynamax.ssm.SSM.emission_shape"]], "extended_kalman_filter() (in module dynamax.nonlinear_gaussian_ssm)": [[1, "dynamax.nonlinear_gaussian_ssm.extended_kalman_filter"]], "extended_kalman_smoother() (in module dynamax.nonlinear_gaussian_ssm)": [[1, "dynamax.nonlinear_gaussian_ssm.extended_kalman_smoother"]], "filter() (hmm method)": [[1, "dynamax.hidden_markov_model.HMM.filter"]], "filter() (lineargaussianssm method)": [[1, "dynamax.linear_gaussian_ssm.LinearGaussianSSM.filter"]], "filter() (ssm method)": [[1, "dynamax.ssm.SSM.filter"]], "find_permutation() (in module dynamax.utils.utils)": [[1, "dynamax.utils.utils.find_permutation"]], "fit_em() (ssm method)": [[1, "dynamax.ssm.SSM.fit_em"]], "fit_sgd() (ssm method)": [[1, "dynamax.ssm.SSM.fit_sgd"]], "hmm_filter() (in module dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.hmm_filter"]], "hmm_fixed_lag_smoother() (in module dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.hmm_fixed_lag_smoother"]], "hmm_posterior_mode() (in module dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.hmm_posterior_mode"]], "hmm_posterior_sample() (in module dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.hmm_posterior_sample"]], "hmm_smoother() (in module dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.hmm_smoother"]], "hmm_two_filter_smoother() (in module dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.hmm_two_filter_smoother"]], "initial_distribution() (generalizedgaussianssm method)": [[1, "dynamax.generalized_gaussian_ssm.GeneralizedGaussianSSM.initial_distribution"]], "initial_distribution() (hmm method)": [[1, "dynamax.hidden_markov_model.HMM.initial_distribution"]], "initial_distribution() (lineargaussianssm method)": [[1, "dynamax.linear_gaussian_ssm.LinearGaussianSSM.initial_distribution"]], "initial_distribution() (nonlineargaussianssm method)": [[1, "dynamax.nonlinear_gaussian_ssm.NonlinearGaussianSSM.initial_distribution"]], "initial_distribution() (ssm method)": [[1, "dynamax.ssm.SSM.initial_distribution"]], "initialize() (bernoullihmm method)": [[1, "dynamax.hidden_markov_model.BernoulliHMM.initialize"]], "initialize() (categoricalhmm method)": [[1, "dynamax.hidden_markov_model.CategoricalHMM.initialize"]], "initialize() (categoricalregressionhmm method)": [[1, "dynamax.hidden_markov_model.CategoricalRegressionHMM.initialize"]], "initialize() (diagonalgaussianhmm method)": [[1, "dynamax.hidden_markov_model.DiagonalGaussianHMM.initialize"]], "initialize() (diagonalgaussianmixturehmm method)": [[1, "dynamax.hidden_markov_model.DiagonalGaussianMixtureHMM.initialize"]], "initialize() (gammahmm method)": [[1, "dynamax.hidden_markov_model.GammaHMM.initialize"]], "initialize() (gaussianhmm method)": [[1, "dynamax.hidden_markov_model.GaussianHMM.initialize"]], "initialize() (gaussianmixturehmm method)": [[1, "dynamax.hidden_markov_model.GaussianMixtureHMM.initialize"]], "initialize() (hmmemissions method)": [[1, "dynamax.hidden_markov_model.HMMEmissions.initialize"]], "initialize() (hmminitialstate method)": [[1, "dynamax.hidden_markov_model.HMMInitialState.initialize"]], "initialize() (hmmtransitions method)": [[1, "dynamax.hidden_markov_model.HMMTransitions.initialize"]], "initialize() (linearautoregressivehmm method)": [[1, "dynamax.hidden_markov_model.LinearAutoregressiveHMM.initialize"]], "initialize() (lineargaussianssm method)": [[1, "dynamax.linear_gaussian_ssm.LinearGaussianSSM.initialize"]], "initialize() (linearregressionhmm method)": [[1, "dynamax.hidden_markov_model.LinearRegressionHMM.initialize"]], "initialize() (logisticregressionhmm method)": [[1, "dynamax.hidden_markov_model.LogisticRegressionHMM.initialize"]], "initialize() (lowrankgaussianhmm method)": [[1, "dynamax.hidden_markov_model.LowRankGaussianHMM.initialize"]], "initialize() (multinomialhmm method)": [[1, "dynamax.hidden_markov_model.MultinomialHMM.initialize"]], "initialize() (poissonhmm method)": [[1, "dynamax.hidden_markov_model.PoissonHMM.initialize"]], "initialize() (sharedcovariancegaussianhmm method)": [[1, "dynamax.hidden_markov_model.SharedCovarianceGaussianHMM.initialize"]], "initialize() (sphericalgaussianhmm method)": [[1, "dynamax.hidden_markov_model.SphericalGaussianHMM.initialize"]], "initialize_m_step_state() (hmm method)": [[1, "dynamax.hidden_markov_model.HMM.initialize_m_step_state"]], "initialize_m_step_state() (hmmemissions method)": [[1, "dynamax.hidden_markov_model.HMMEmissions.initialize_m_step_state"]], "initialize_m_step_state() (hmminitialstate method)": [[1, "dynamax.hidden_markov_model.HMMInitialState.initialize_m_step_state"]], "initialize_m_step_state() (hmmtransitions method)": [[1, "dynamax.hidden_markov_model.HMMTransitions.initialize_m_step_state"]], "inputs_shape (lineargaussianssm property)": [[1, "dynamax.linear_gaussian_ssm.LinearGaussianSSM.inputs_shape"]], "inputs_shape (nonlineargaussianssm property)": [[1, "dynamax.nonlinear_gaussian_ssm.NonlinearGaussianSSM.inputs_shape"]], "inputs_shape (ssm property)": [[1, "dynamax.ssm.SSM.inputs_shape"]], "iterated_conditional_moments_gaussian_filter() (in module dynamax.generalized_gaussian_ssm)": [[1, "dynamax.generalized_gaussian_ssm.iterated_conditional_moments_gaussian_filter"]], "iterated_conditional_moments_gaussian_smoother() (in module dynamax.generalized_gaussian_ssm)": [[1, "dynamax.generalized_gaussian_ssm.iterated_conditional_moments_gaussian_smoother"]], "iterated_extended_kalman_filter() (in module dynamax.nonlinear_gaussian_ssm)": [[1, "dynamax.nonlinear_gaussian_ssm.iterated_extended_kalman_filter"]], "iterated_extended_kalman_smoother() (in module dynamax.nonlinear_gaussian_ssm)": [[1, "dynamax.nonlinear_gaussian_ssm.iterated_extended_kalman_smoother"]], "lgssm_filter() (in module dynamax.linear_gaussian_ssm)": [[1, "dynamax.linear_gaussian_ssm.lgssm_filter"]], "lgssm_posterior_sample() (in module dynamax.linear_gaussian_ssm)": [[1, "dynamax.linear_gaussian_ssm.lgssm_posterior_sample"]], "lgssm_smoother() (in module dynamax.linear_gaussian_ssm)": [[1, "dynamax.linear_gaussian_ssm.lgssm_smoother"]], "log_prior() (hmm method)": [[1, "dynamax.hidden_markov_model.HMM.log_prior"]], "log_prior() (hmmemissions method)": [[1, "dynamax.hidden_markov_model.HMMEmissions.log_prior"]], "log_prior() (hmminitialstate method)": [[1, "dynamax.hidden_markov_model.HMMInitialState.log_prior"]], "log_prior() (hmmtransitions method)": [[1, "dynamax.hidden_markov_model.HMMTransitions.log_prior"]], "log_prior() (ssm method)": [[1, "dynamax.ssm.SSM.log_prior"]], "log_prob() (ssm method)": [[1, "dynamax.ssm.SSM.log_prob"]], "m_step() (hmm method)": [[1, "dynamax.hidden_markov_model.HMM.m_step"]], "m_step() (hmmemissions method)": [[1, "dynamax.hidden_markov_model.HMMEmissions.m_step"]], "m_step() (hmminitialstate method)": [[1, "dynamax.hidden_markov_model.HMMInitialState.m_step"]], "m_step() (hmmtransitions method)": [[1, "dynamax.hidden_markov_model.HMMTransitions.m_step"]], "m_step() (lineargaussianssm method)": [[1, "dynamax.linear_gaussian_ssm.LinearGaussianSSM.m_step"]], "m_step() (ssm method)": [[1, "dynamax.ssm.SSM.m_step"]], "marginal_log_prob() (hmm method)": [[1, "dynamax.hidden_markov_model.HMM.marginal_log_prob"]], "marginal_log_prob() (lineargaussianssm method)": [[1, "dynamax.linear_gaussian_ssm.LinearGaussianSSM.marginal_log_prob"]], "marginal_log_prob() (ssm method)": [[1, "dynamax.ssm.SSM.marginal_log_prob"]], "parallel_hmm_filter() (in module dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.parallel_hmm_filter"]], "parallel_hmm_smoother() (in module dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.parallel_hmm_smoother"]], "posterior_predictive() (lineargaussianssm method)": [[1, "dynamax.linear_gaussian_ssm.LinearGaussianSSM.posterior_predictive"]], "sample() (linearautoregressivehmm method)": [[1, "dynamax.hidden_markov_model.LinearAutoregressiveHMM.sample"]], "sample() (ssm method)": [[1, "dynamax.ssm.SSM.sample"]], "smoother() (hmm method)": [[1, "dynamax.hidden_markov_model.HMM.smoother"]], "smoother() (lineargaussianssm method)": [[1, "dynamax.linear_gaussian_ssm.LinearGaussianSSM.smoother"]], "smoother() (ssm method)": [[1, "dynamax.ssm.SSM.smoother"]], "transition_distribution() (generalizedgaussianssm method)": [[1, "dynamax.generalized_gaussian_ssm.GeneralizedGaussianSSM.transition_distribution"]], "transition_distribution() (hmm method)": [[1, "dynamax.hidden_markov_model.HMM.transition_distribution"]], "transition_distribution() (lineargaussianssm method)": [[1, "dynamax.linear_gaussian_ssm.LinearGaussianSSM.transition_distribution"]], "transition_distribution() (nonlineargaussianssm method)": [[1, "dynamax.nonlinear_gaussian_ssm.NonlinearGaussianSSM.transition_distribution"]], "transition_distribution() (ssm method)": [[1, "dynamax.ssm.SSM.transition_distribution"]], "unscented_kalman_filter() (in module dynamax.nonlinear_gaussian_ssm)": [[1, "dynamax.nonlinear_gaussian_ssm.unscented_kalman_filter"]], "unscented_kalman_smoother() (in module dynamax.nonlinear_gaussian_ssm)": [[1, "dynamax.nonlinear_gaussian_ssm.unscented_kalman_smoother"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["README", "api", "index", "notebooks/generalized_gaussian_ssm/cmgf_logistic_regression_demo", "notebooks/generalized_gaussian_ssm/cmgf_mlp_classification_demo", "notebooks/generalized_gaussian_ssm/cmgf_poisson_demo", "notebooks/hmm/autoregressive_hmm", "notebooks/hmm/casino_hmm_inference", "notebooks/hmm/casino_hmm_learning", "notebooks/hmm/gaussian_hmm", "notebooks/linear_gaussian_ssm/kf_linreg", "notebooks/linear_gaussian_ssm/kf_tracking", "notebooks/linear_gaussian_ssm/lgssm_hmc", "notebooks/linear_gaussian_ssm/lgssm_learning", "notebooks/linear_gaussian_ssm/lgssm_parallel_inference", "notebooks/nonlinear_gaussian_ssm/ekf_mlp", "notebooks/nonlinear_gaussian_ssm/ekf_ukf_pendulum", "notebooks/nonlinear_gaussian_ssm/ekf_ukf_spiral", "types"], "filenames": ["README.md", "api.rst", "index.rst", "notebooks/generalized_gaussian_ssm/cmgf_logistic_regression_demo.ipynb", "notebooks/generalized_gaussian_ssm/cmgf_mlp_classification_demo.ipynb", "notebooks/generalized_gaussian_ssm/cmgf_poisson_demo.ipynb", "notebooks/hmm/autoregressive_hmm.ipynb", "notebooks/hmm/casino_hmm_inference.ipynb", "notebooks/hmm/casino_hmm_learning.ipynb", "notebooks/hmm/gaussian_hmm.ipynb", "notebooks/linear_gaussian_ssm/kf_linreg.ipynb", "notebooks/linear_gaussian_ssm/kf_tracking.ipynb", "notebooks/linear_gaussian_ssm/lgssm_hmc.ipynb", "notebooks/linear_gaussian_ssm/lgssm_learning.ipynb", "notebooks/linear_gaussian_ssm/lgssm_parallel_inference.ipynb", "notebooks/nonlinear_gaussian_ssm/ekf_mlp.ipynb", "notebooks/nonlinear_gaussian_ssm/ekf_ukf_pendulum.ipynb", "notebooks/nonlinear_gaussian_ssm/ekf_ukf_spiral.ipynb", "types.md"], "titles": ["Documentation", "State Space Model (Base class)", "Welcome to DYNAMAX!", "Online Logistic Regression using conditional moments Gaussian filter", "Online learning of an MLP Classifier using conditional moments Gaussian filter", "Fitting an LDS with Poisson Likelihood using conditional moments Gaussian filter", "Autoregressive (AR) HMM Demo", "Casino HMM: Inference (state estimation)", "Casino HMM: Learning (parameter estimation)", "Gaussian HMM: Cross-validation and Model Selection", "Online linear regression using Kalman filtering", "Tracking an object using the Kalman filter", "Bayesian parameter estimation for an LG-SSM using HMC", "MAP parameter estimation for an LG-SSM using EM and SGD", "Parallel filtering and smoothing in an LG-SSM", "Online learning for an MLP using extended Kalman filtering", "Tracking a 1d pendulum using Extended / Unscented Kalman filter/ smoother", "Tracking a spiraling object using the extended / unscented Kalman filter", "Terminology for types"], "terms": {"To": [0, 2, 3, 4, 7, 8, 10, 15], "build": [0, 12], "sphinx": 0, "run": [0, 1, 2, 3, 4, 7, 8, 9, 11, 12, 15, 18], "cd": [0, 2], "doc": 0, "make": [0, 2, 6, 8, 9, 11, 12], "html": [0, 2, 4], "thi": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18], "find": [0, 1, 7, 8], "all": [0, 1, 2, 3, 7, 8, 10, 12, 18], "jupyt": 0, "notebook": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "them": [0, 1, 7, 8, 9], "collect": [0, 1, 9], "output": [0, 1, 3, 4], "incorpor": 0, "sourc": 1, "A": [1, 2, 6, 7, 8, 9], "Such": 1, "consist": [1, 2, 7, 9], "which": [1, 2, 3, 4, 7, 8, 9, 11, 12, 17], "we": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18], "mai": [1, 2, 7, 8, 18], "learn": [1, 2, 3, 12], "well": [1, 2, 9], "hyperparamet": [1, 8], "specifi": [1, 7, 8, 9], "static": 1, "properti": [1, 7, 8], "allow": [1, 2, 7, 8, 9], "indic": [1, 4, 7, 15], "standard": [1, 2, 3, 4, 7, 9, 16], "wai": [1, 2, 7, 8, 18], "so": [1, 7, 8, 9, 11, 12, 14, 17, 18], "thei": [1, 7, 8, 9], "can": [1, 2, 3, 6, 7, 8, 9, 11, 14, 16, 18], "easili": [1, 2], "convert": 1, "from": [1, 2, 3, 4, 5, 9, 10, 12, 13, 14, 15, 16], "unconstrain": 1, "form": [1, 2, 3, 4, 8, 9, 10, 15], "optim": [1, 3, 8], "method": [1, 2, 3, 6, 9], "inherit": 1, "must": [1, 5, 8], "implement": [1, 7, 8, 9], "few": [1, 7, 8, 18], "kei": [1, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 17], "function": [1, 2, 3, 4, 7, 8, 11, 15], "initial_distribut": [1, 2], "return": [1, 3, 4, 5, 7, 8, 9, 11, 12, 15, 16, 17], "distribut": [1, 2, 3, 4, 5, 6, 8, 9, 15], "over": [1, 2, 3, 4, 7, 8, 9, 10, 15], "initi": [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "given": [1, 7, 8, 10, 15], "transition_distribut": [1, 2], "condit": [1, 2], "next": [1, 3, 4, 5, 6, 7, 8, 9, 12], "current": [1, 6, 9, 18], "emission_distribut": [1, 2, 9], "emiss": [1, 2, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17], "log_prior": [1, 2, 3, 8, 9, 12, 13], "option": [1, 2, 15], "log": [1, 2, 3, 5, 8, 12, 14, 17], "prior": [1, 8, 9], "probabl": [1, 3, 4, 6, 7, 8, 9, 12, 13], "emission_shap": [1, 2, 12], "tupl": [1, 9], "specif": [1, 2, 7], "shape": [1, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 16, 18], "inputs_shap": [1, 2, 12], "input": [1, 2, 3, 4, 6, 10, 12, 15], "none": [1, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 15, 16, 17], "ar": [1, 3, 4, 7, 8, 9, 10, 12, 15, 18], "The": [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16], "requir": 1, "properli": 1, "handl": 1, "batch": [1, 2, 3, 5, 10, 12], "data": [1, 2, 3], "sampl": [1, 2, 3, 5, 12, 13, 14, 15], "comput": [1, 2, 3, 4, 6, 8, 9, 10, 16], "onc": [1, 7], "have": [1, 2, 5, 7, 8, 9, 11, 12, 14, 18], "been": [1, 9, 14], "subclass": 1, "abil": [1, 6], "joint": [1, 2, 7, 13], "draw": [1, 7], "log_prob": [1, 2, 8, 9, 12], "mani": [1, 2, 7, 8], "expos": 1, "basic": 1, "perform": [1, 3, 4, 7, 8, 10, 15], "marginal_log_prob": [1, 2, 6, 8, 9, 12, 13], "margin": [1, 2, 7, 8, 9, 12, 13, 17], "sum": [1, 3, 6, 8, 9, 12, 16], "latent": [1, 5, 6, 7, 8, 11], "filter": [1, 2, 12], "posterior": [1, 2, 3, 4, 6, 7, 8, 10, 11], "smoother": [1, 2, 6, 7, 11, 12], "smooth": [1, 2, 6, 12, 13, 16], "likewis": [1, 7], "support": [1, 6, 8], "expect": [1, 2, 7, 9], "maxim": [1, 2, 9], "em": [1, 2, 6, 8, 9], "stochast": [1, 2], "gradient": [1, 2], "descent": [1, 2], "sgd": [1, 2, 8], "For": [1, 2, 3, 4, 6, 7, 8, 9, 15, 16, 18], "e": [1, 2, 3, 7, 8, 9, 12, 18], "m": [1, 8, 9, 10, 15, 16, 17], "step": [1, 3, 4, 7, 8, 10, 11, 15, 16, 17], "e_step": [1, 2], "suffici": 1, "statist": 1, "sequenc": [1, 4, 8, 9, 15], "m_step": [1, 2], "new": [1, 2, 7, 8], "fit": [1, 2, 7, 12], "fit_em": [1, 2, 6, 8, 9, 12, 13], "likelihood": [1, 2, 7, 8, 9, 12, 17], "ani": [1, 18], "fit_sgd": [1, 2, 8, 13], "minim": [1, 3, 8], "neg": [1, 8], "param": [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17], "an": [1, 2, 7, 8, 9, 17, 18], "parameterset": [1, 2], "theta": [1, 4, 5, 6, 7, 8, 9, 12], "float": [1, 6, 8, 15, 16, 18], "arrai": [1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 14, 16, 17, 18], "input_dim": [1, 3, 4, 10, 14, 15], "u_t": [1, 2, 11, 17], "p": [1, 2, 6, 7, 8, 9, 12], "z_1": [1, 2, 5, 7, 16], "mid": [1, 2, 6, 7, 8, 9], "state_dim": [1, 3, 4, 5, 10, 11, 12, 13, 15, 16, 17], "z_t": [1, 2, 6, 7, 9, 11, 16, 17], "z_": [1, 2, 5, 6, 7, 8, 11, 16, 17], "t": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17], "1": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "y_t": [1, 2, 3, 4, 6, 7, 9, 10, 11, 15, 16, 17], "lp": [1, 6, 9, 12], "scalar": [1, 18], "int": [1, 3, 4, 5, 15, 16, 18], "pytre": [1, 12, 18], "match": [1, 8, 9, 18], "singl": [1, 12], "time": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18], "": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 14, 16, 18], "exampl": [1, 2, 7, 8, 9, 14, 16, 18], "gaussianhmm": [1, 2, 9], "d": [1, 5, 6, 9, 10, 11, 12, 16], "dimension": [1, 12], "would": [1, 7, 9], "num_timestep": [1, 2, 5, 7, 8, 9, 11, 12, 13, 14, 17], "y_": [1, 2, 6, 7, 8, 9, 11], "u_": [1, 2, 11], "union": [1, 18], "prngkeyarrai": 1, "random": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17], "number": [1, 3, 7, 8, 15, 18], "timestep": [1, 3, 7, 10, 14], "emission_dim": [1, 2, 4, 5, 6, 9, 10, 11, 12, 13, 15, 16], "observ": [1, 2, 3, 4, 6, 7, 8, 11, 12, 13, 14, 15, 16, 17], "sum_": [1, 7], "ntime": [1, 12], "ldot": [1, 7, 8, 9], "under": [1, 9], "suffstatsssm": 1, "prop": [1, 2, 6, 9, 12], "batch_stat": [1, 7, 8], "m_step_stat": 1, "star": [1, 7, 8], "mathrm": [1, 6, 7, 8, 9], "argmax": [1, 9], "_": [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16], "mathbb": [1, 8], "big": 1, "propertyset": [1, 2], "should": [1, 6, 8, 9, 10, 14, 18], "each": [1, 3, 4, 5, 6, 7, 8, 9, 11, 17], "num_it": [1, 2, 8, 9, 12, 13], "50": [1, 3, 4, 6], "verbos": [1, 9, 12], "true": [1, 3, 4, 5, 9, 11, 12, 13, 14, 15, 16, 17], "mle": 1, "map": [1, 2, 3, 7, 8, 12], "estim": [1, 2, 16, 17], "us": [1, 2, 7, 8, 18], "aim": 1, "It": [1, 2, 7, 9], "doe": [1, 8], "iter": [1, 2, 6, 8, 12, 13], "lower": [1, 6], "bound": 1, "note": [1, 2, 9, 15], "either": [1, 2, 8, 18], "num_batch": [1, 7, 8], "one": [1, 4, 6, 7, 8], "more": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "correspond": [1, 2, 3, 5, 6, 7, 8], "bool": [1, 18], "whether": 1, "show": [1, 5, 6, 7, 8, 9, 11, 12, 13, 14, 16, 17], "progress": 1, "bar": 1, "cours": [1, 9], "gradienttransformationextraarg": 1, "init": [1, 4, 5, 12, 15], "chain": 1, "local": [1, 8], "init_fn": 1, "updat": [1, 8], "update_fn": 1, "batch_siz": [1, 8], "num_epoch": [1, 8, 13], "shuffl": [1, 3, 4, 15], "fals": [1, 3, 4, 6, 8, 9, 12, 14, 15, 16, 17], "0": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "dtype": [1, 7, 18], "uint32": 1, "_negative_": 1, "quantiti": 1, "On": [1, 8], "algorithm": [1, 2, 8, 10, 12, 17], "grab": 1, "minibatch": [1, 8], "take": [1, 7, 8], "One": [1, 4, 8], "pass": [1, 4, 5, 6, 11, 14, 18], "through": [1, 2, 8, 15], "entir": [1, 8], "set": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "i": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "call": [1, 2, 7, 8, 11], "epoch": [1, 8, 9], "gradienttransform": 1, "optax": [1, 2, 8], "per": [1, 8, 14], "select": [1, 2, 11], "loss": [1, 8], "scale": [1, 8], "prob": [1, 2, 7, 8, 9], "niter": 1, "associ": [1, 8], "store": 1, "jax": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "devicearrai": 1, "dynamax": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "parameterproperti": [1, 2], "respect": 1, "bundl": 1, "togeth": 1, "simpli": [1, 11], "alias": 1, "immut": [1, 7], "datastructur": 1, "our": [1, 3, 5, 8, 18], "case": [1, 2, 9], "namedtupl": [1, 7, 16], "arg": [1, 7, 8, 11, 15], "kwarg": [1, 5, 11], "leaf": 1, "node": [1, 8], "trainabl": [1, 8, 12], "constrain": 1, "contain": [1, 16], "metadata": 1, "aux_data": 1, "chang": [1, 6, 8, 9, 14], "trigger": 1, "recompil": 1, "reli": 1, "flag": [1, 8], "adjust": 1, "tfb": 1, "bijector": 1, "hmm": 1, "num_stat": [1, 2, 6, 7, 8, 9], "initial_compon": 1, "transition_compon": 1, "emission_compon": 1, "defin": [1, 3, 5, 15, 16], "follow": [1, 2, 3, 4, 6, 7, 10, 11, 15, 16, 17, 18], "u_1": [1, 2], "sim": [1, 3, 4, 6, 8, 10, 11, 15, 16, 17], "cat": [1, 7], "pi_0": 1, "theta_": [1, 3, 4, 10, 15], "mathsf": 1, "pi": [1, 4, 5, 6, 7, 8, 9, 16], "tran": 1, "emi": 1, "where": [1, 2, 3, 4, 8, 9, 10, 11, 15, 16, 17], "k": [1, 2, 3, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 17], "discret": [1, 2, 7, 8, 9, 11, 16, 17], "There": [1, 8, 9], "transit": [1, 2, 6, 7, 8, 12, 18], "assum": [1, 2, 3, 4, 7, 8, 9, 10, 11, 15, 16, 17], "fix": [1, 8], "simpl": [1, 7, 8, 11, 14, 16, 17], "matrix": [1, 5, 6, 7, 8, 10, 11, 18], "pi_": 1, "z_k": 1, "pi_k": 1, "hmmparameterset": [1, 2], "object": [1, 2, 5, 7, 8], "variou": [1, 17], "hmminitialst": [1, 2], "encapsul": 1, "hmmtransit": [1, 2], "hmmemiss": [1, 2], "In": [1, 2, 6, 7, 8, 9, 18], "itself": 1, "initialize_m_step_st": 1, "might": [1, 7, 9], "includ": [1, 2, 7, 9], "adam": 1, "m_step_optim": 1, "m_step_num_it": 1, "prngkei": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17], "str": 1, "collect_suff_stat": 1, "hmmposterior": [1, 2], "how": [1, 6, 7, 8, 9, 11, 12, 14, 16, 17], "below": [1, 2, 3, 4, 6, 7, 8, 10, 15, 16], "cover": 1, "common": 1, "exponenti": [1, 8], "famili": [1, 8, 9], "close": [1, 8], "outsid": 1, "non": [1, 2, 3, 4, 10], "default": [1, 6, 8, 9, 15, 16, 17], "unless": 1, "otherwis": 1, "conjug": [1, 8, 9], "bayesian": [1, 2, 3, 4, 10, 14, 15, 16], "pi_1": 1, "dir": [1, 8], "alpha": [1, 5, 6, 7, 8, 9, 10, 12, 13, 15, 16, 17], "1_k": [1, 8], "concentr": 1, "a_": [1, 6, 7], "prod_": [1, 2, 7, 8], "a_k": [1, 8], "beta": [1, 8, 16, 17], "kappa": [1, 8, 16, 17], "e_k": [1, 8], "row": [1, 7], "sticki": [1, 8], "bias": [1, 6], "toward": 1, "matric": [1, 9, 12], "larger": 1, "valu": [1, 3, 4, 6, 7, 8, 9, 12], "along": [1, 2, 9], "diagon": [1, 9], "These": [1, 6, 18], "constructor": [1, 8], "weak": 1, "without": [1, 2, 11], "bernoullihmm": [1, 2], "initial_probs_concentr": 1, "transition_matrix_concentr": 1, "transition_matrix_sticki": [1, 8, 9], "emission_prior_concentration0": 1, "emission_prior_concentration1": 1, "condition": [1, 7], "independ": [1, 3, 7], "bernoulli": 1, "let": [1, 3, 4, 5, 6, 7, 8, 11, 16, 17], "n": [1, 3, 4, 6, 9, 10, 11, 15, 16, 17], "denot": [1, 6, 7, 8], "binari": [1, 3, 4], "vector": [1, 2, 4, 5, 8, 11], "bern": 1, "tn": 1, "gamma_0": 1, "gamma_1": 1, "pseudocount": 1, "boost": 1, "initial_prob": [1, 6, 7, 8, 9], "transition_matrix": [1, 6, 7, 8, 9], "emission_prob": [1, 7, 8], "you": [1, 2, 7, 8, 9, 14], "manual": [1, 11], "via": [1, 8, 18], "keyword": [1, 8, 11], "argument": [1, 8, 11, 18], "automat": [1, 8], "If": [1, 2, 7, 8, 14, 16, 18], "suppli": [1, 8], "futur": [1, 2, 3, 6, 7, 11, 17], "scheme": 1, "like": [1, 2, 8, 9, 14], "mean": [1, 3, 4, 6, 7, 9, 11, 12, 15], "unspecifi": 1, "jr": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17], "onli": [1, 7, 8, 9, 12], "categoricalhmm": [1, 2, 7, 8], "num_class": [1, 7, 8], "emission_prior_concentr": 1, "categor": [1, 8, 9], "c": [1, 2, 3, 4, 7, 8, 11, 12, 16], "gamma": [1, 8], "1_c": [1, 8], "delta_c": 1, "multinomi": 1, "gammahmm": [1, 2], "whose": 1, "come": [1, 7], "r": [1, 4, 5, 7, 8, 10, 11, 14, 16, 17], "ga": 1, "alpha_": 1, "beta_": 1, "alpha_k": 1, "rate": 1, "beta_k": 1, "emission_concentr": 1, "emission_r": 1, "both": [1, 2, 3, 8, 9], "kmean": [1, 2, 6, 9], "hmmpropertyset": [1, 2], "emission_prior_mean": 1, "0001": 1, "emission_prior_scal": 1, "emission_prior_extra_df": 1, "multivari": [1, 6, 9], "normal": [1, 3, 4, 5, 9, 15], "mathcal": [1, 6, 8, 9], "mu_": [1, 9], "sigma_": [1, 9], "mu_k": [1, 9], "sigma_k": [1, 9], "covari": [1, 2, 6, 10, 11, 12], "ha": [1, 2, 3, 4, 6, 7, 8, 9, 10, 15], "invers": [1, 9], "wishart": [1, 9], "mu_0": 1, "kappa_0": 1, "iw": 1, "nu_0": 1, "psi_0": 1, "extra": [1, 9], "degre": 1, "freedom": 1, "abov": [1, 7, 8, 9], "beyond": 1, "minimum": [1, 9], "emission_mean": [1, 9], "emission_covari": [1, 6, 9, 10, 11, 14, 15, 16, 17], "diagonalgaussianhmm": [1, 2, 9], "emission_prior_mean_concentr": 1, "2": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "equival": [1, 8], "diag": [1, 5, 9], "varianc": [1, 12, 15], "dimens": [1, 5, 7, 11, 12, 15, 18], "complet": [1, 8, 9], "iga": 1, "alpha_0": 1, "beta_0": 1, "emission_scale_diag": 1, "deviat": [1, 16], "sphericalgaussianhmm": [1, 2, 9], "emission_prior_mean_covari": 1, "emission_var_concentr": 1, "emission_var_r": 1, "same": [1, 7, 8, 9, 10, 16, 18], "spheric": [1, 9], "factor": [1, 2], "sigma_0": 1, "version": [1, 2, 6, 11, 17], "emission_scal": 1, "sqrt": [1, 3, 4, 5, 10, 12, 16], "sharedcovariancegaussianhmm": [1, 2, 9], "share": [1, 9], "sigma": [1, 3, 4, 5, 9, 10, 15], "lowrankgaussianhmm": [1, 2], "emission_rank": 1, "emission_diag_factor_concentr": 1, "emission_diag_factor_r": 1, "rank": 1, "plu": 1, "u_k": 1, "top": [1, 2, 9], "d_k": 1, "instead": [1, 7, 8], "place": 1, "propto": [1, 7], "d_": 1, "emission_cov_diag_factor": 1, "emission_cov_low_rank_factor": 1, "multinomialhmm": [1, 2], "num_trial": [1, 5], "count": [1, 5, 7, 12], "mult": 1, "trial": 1, "poissonhmm": [1, 2], "emission_prior_r": 1, "poisson": [1, 2], "po": 1, "gaussianmixturehmm": [1, 2], "num_compon": 1, "emission_weights_concentr": 1, "mixtur": 1, "w_": [1, 3], "w_k": 1, "disret": 1, "compon": [1, 6], "weight": [1, 3, 4, 5, 6, 7, 10, 12], "emission_weight": [1, 6, 10, 11, 12, 14], "diagonalgaussianmixturehmm": [1, 2], "emission_prior_shap": 1, "linearregressionhmm": [1, 2], "regress": [1, 2], "depend": [1, 2, 9], "also": [1, 2, 3, 6, 7, 8, 9, 10, 11], "known": [1, 7, 8, 10], "switch": [1, 6, 7, 8], "b_": [1, 6, 7], "b_k": [1, 8], "succeq": 1, "do": [1, 3, 4, 7, 8, 10, 11, 15, 17], "add": [1, 3, 4, 7, 8, 9, 15, 17], "see": [1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 14, 15, 16], "pg": 1, "576": 1, "emission_bias": [1, 6], "logisticregressionhmm": [1, 2], "emission_matrices_scal": 1, "100000000": 1, "logist": [1, 2], "l_2": 1, "regular": [1, 8], "thought": 1, "varsigma": 1, "categoricalregressionhmm": [1, 2], "multiclass": 1, "softmax": 1, "linearautoregressivehmm": [1, 2, 6], "num_lag": [1, 6], "autoregress": [1, 2, 9], "previou": 1, "ell": 1, "l": [1, 11], "lag": [1, 6], "emission_dim_times_num_lag": 1, "cdot": [1, 7], "prev_emiss": 1, "preced": [1, 8, 9], "zero": [1, 3, 4, 5, 6, 7, 9, 10, 16], "compute_input": [1, 6], "helper": [1, 4], "marginal_loglik": [1, 7, 11, 17], "filtered_prob": [1, 7], "predicted_prob": 1, "smoothed_prob": [1, 2, 6, 7], "trans_prob": 1, "wrapper": 1, "2d": [1, 3, 4], "3d": 1, "vari": [1, 18], "present": 1, "here": [1, 2, 7, 8, 9], "conveni": [1, 18], "hmmposteriorfilt": [1, 2], "hmm_filter": [1, 2], "log_likelihood": [1, 3], "transition_fn": 1, "forward": [1, 8, 14], "altern": [1, 8], "index": [1, 2, 7], "callabl": [1, 15, 16], "integ": 1, "hmm_smoother": [1, 2], "compute_trans_prob": 1, "analog": 1, "rt": 1, "hmm_two_filter_smooth": [1, 2], "two": [1, 7, 8, 11, 17], "backward": [1, 8], "hmm_fixed_lag_smooth": [1, 2], "window_s": 1, "hmm_posterior_mod": [1, 2], "most": 1, "viterbi": 1, "hmm_posterior_sampl": [1, 2], "rng": [1, 16], "parallel_hmm_filt": [1, 2], "parallel": [1, 2, 7, 9], "lax": [1, 16], "associative_scan": 1, "nonstationari": 1, "releas": [1, 3], "parallel_hmm_smooth": [1, 2], "differenti": [1, 8, 16], "rather": 1, "than": [1, 7, 8], "explicit": 1, "messag": 1, "lineargaussianssm": [1, 2, 10, 11, 12, 14], "has_dynamics_bia": 1, "has_emissions_bia": 1, "f_t": 1, "b_t": 1, "q_t": [1, 3, 4, 11, 15, 16, 17], "h_t": [1, 10], "d_t": 1, "r_t": [1, 10, 11, 15, 16, 17], "size": [1, 4, 8, 11, 13, 15, 16, 18], "f": [1, 3, 4, 7, 8, 9, 10, 11, 14, 15, 16, 17], "dynam": [1, 2, 5, 7, 11, 12, 15, 17], "b": [1, 6, 7, 8, 10], "bia": [1, 3, 5, 12], "q": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "system": [1, 2, 5, 11], "nois": [1, 11, 16, 17], "h": [1, 2, 4, 11, 14, 15, 16, 17], "paramslgssm": [1, 2], "creat": [1, 5, 7, 16], "offset": [1, 9], "term": [1, 3, 16], "initial_mean": [1, 3, 4, 5, 10, 11, 14, 15, 16, 17], "initial_covari": [1, 3, 4, 5, 10, 11, 14, 15, 16, 17], "dynamics_weight": [1, 5, 10, 11, 12, 14], "dynamics_bia": [1, 5, 12], "dynamics_input_weight": 1, "dynamics_covari": [1, 3, 4, 5, 10, 11, 14, 15, 16, 17], "emission_bia": [1, 12], "emission_input_weight": 1, "posteriorgssmfilt": [1, 2], "posteriorgssmsmooth": [1, 2], "posterior_predict": [1, 13], "predict": [1, 2, 3, 4, 5, 12, 13, 15], "std": [1, 4, 12, 16], "suffstatslgssm": 1, "lgssm_filter": [1, 2, 11], "kalman": [1, 2, 3, 4, 12], "produc": [1, 6], "lgssm_smoother": [1, 2, 11, 14], "technic": [1, 7], "rauch": 1, "tung": 1, "striebel": 1, "lgssmparam": 1, "instanc": 1, "field": [1, 17], "lgssm_posterior_sampl": [1, 2], "jitter": 1, "inptu": 1, "pad": 1, "befor": [1, 8], "paramslgssminiti": [1, 2], "paramslgssmdynam": [1, 2], "paramslgssmemiss": [1, 2], "cov": [1, 3, 12], "mu_1": 1, "q_1": 1, "doubl": 1, "state_dim_triu": 1, "input_weight": 1, "emission_dim_triu": 1, "filtered_mean": [1, 3, 4, 10, 11, 14, 15, 16, 17], "filtered_covari": [1, 3, 4, 10, 11, 14, 15, 17], "predicted_mean": 1, "predicted_covari": 1, "smoothed_mean": [1, 5, 11, 12, 14, 16], "smoothed_covari": [1, 5, 11, 12, 14], "smoothed_cross_covari": 1, "ntime_minus1": 1, "cross": [1, 2, 8], "product": 1, "nonlineargaussianssm": [1, 2, 17], "variabl": [1, 6, 11, 17], "separ": 1, "paramsnlgssm": [1, 2, 15, 16, 17], "extended_kalman_filt": [1, 2, 15, 17], "output_field": [1, 17], "extend": [1, 2, 3, 4, 6], "around": [1, 7, 8], "list": [1, 9, 15], "post": [1, 2, 5], "iterated_extended_kalman_filt": [1, 2], "extended_kalman_smooth": [1, 2, 16], "filtered_posterior": [1, 11], "iterated_extended_kalman_smooth": [1, 2], "iek": 1, "unscented_kalman_filt": [1, 2, 17], "hyperparam": [1, 17], "unscent": [1, 2, 3], "ukfhyperparam": [1, 16, 17], "hyper": [1, 16], "unscented_kalman_smooth": [1, 2, 16], "hyperperam": 1, "nlgssm_posterior": 1, "dynamics_funct": [1, 3, 4, 5, 15, 16, 17], "emission_funct": [1, 15, 16, 17], "nlgssm": [1, 17], "emissions_funct": 1, "emissions_covari": 1, "generalizedgaussianssm": [1, 2, 5], "paramsggssm": [1, 2, 3, 4, 5], "usag": 1, "probml": [1, 2, 10, 15], "conditional_moments_gaussian_filt": [1, 2, 3, 4], "model_param": 1, "inf_param": 1, "moment": [1, 2], "ekfintegr": [1, 3, 4, 5], "ukfintegr": [1, 3], "ghkfintegr": [1, 3], "optopn": 1, "iterated_conditional_moments_gaussian_filt": [1, 2], "conditional_moments_gaussian_smooth": [1, 2, 5], "iterated_conditional_moments_gaussian_smooth": [1, 2], "emission_mean_funct": [1, 3, 4, 5], "emission_cov_funct": [1, 3, 4, 5], "emission_dist": [1, 5], "lambda": [1, 3, 4, 5, 8, 11, 15, 16, 17], "differ": [1, 3, 6, 7, 8, 18], "signatur": [1, 4], "z": [1, 3, 4, 5, 7, 12, 14, 16, 17], "u": [1, 3, 4, 5, 11, 15, 17], "y": [1, 3, 4, 6, 10, 11, 12, 15, 16], "tfp": 1, "dist": 1, "find_permut": [1, 2, 8], "z1": 1, "z2": 1, "permut": [1, 3, 4, 9, 15], "label": [1, 3, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "best": [1, 8, 9], "align": [1, 3, 4, 6, 7, 8, 9, 10, 11, 15, 16, 17], "first": [1, 2, 4, 5, 7, 8, 11], "second": 1, "jnp": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "perm": 1, "thu": [1, 8, 11, 16, 17], "len": [1, 3, 5, 6, 9, 10, 11, 13, 15, 16], "min": [1, 3, 4, 5, 15], "max": [1, 3, 4, 5, 6, 7, 8, 9, 15], "probabilist": [2, 3, 4, 7, 15], "written": 2, "code": [2, 7, 8, 11, 14, 16], "infer": [2, 4, 8], "paramet": [2, 3, 4, 5, 6, 7, 9, 10, 11, 15, 16], "varieti": [2, 8, 9], "hidden": [2, 3, 4, 5, 6, 7, 10, 11, 15, 17], "markov": [2, 6, 7], "aka": [2, 6, 7], "core": 2, "pure": 2, "low": 2, "level": [2, 3, 4], "class": [2, 4, 7, 15, 16], "provid": [2, 6, 9, 18], "user": 2, "friendli": 2, "orient": 2, "interfac": 2, "compat": 2, "other": [2, 8, 9, 18], "ecosystem": 2, "blackjax": [2, 12], "hamiltonian": 2, "mont": 2, "carlo": 2, "hmc": 2, "sequenti": [2, 3, 4, 10, 15], "smc": 2, "latest": 2, "releast": 2, "pypi": 2, "pip": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "demo": [2, 5, 10], "develop": 2, "branch": 2, "git": 2, "http": [2, 4, 10, 15], "github": [2, 4, 10, 15], "com": [2, 4, 10, 15], "final": [2, 3, 4, 5, 7, 8, 10], "re": [2, 7, 8], "clone": 2, "dev": 2, "pytest": 2, "inference_test": 2, "py": [2, 3, 6, 9], "lgssm": [2, 10, 11, 12, 14], "name": [2, 18], "partial": [2, 4, 7, 8, 9, 12, 15], "evolv": [2, 11], "accord": 2, "process": [2, 6, 11, 16, 17], "possibli": [2, 11, 17], "extern": 2, "control": [2, 15], "illustr": [2, 7, 8], "graphic": [2, 3, 4, 8, 10, 15], "restrict": 2, "attent": 2, "furthermor": 2, "auto": [2, 5, 6, 7, 9], "write": [2, 8, 11, 16], "want": [2, 8, 11, 17], "onlin": 2, "offlin": [2, 3], "interest": 2, "forecast": [2, 11, 17], "horizon": 2, "repres": [2, 6, 11, 17], "past": 2, "infinit": 2, "memori": [2, 9], "unlik": 2, "done": 2, "effici": 2, "moreov": 2, "discuss": [2, 8], "inform": [2, 8], "found": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "book": [2, 7], "machin": [2, 3, 4, 15], "advanc": [2, 3, 4, 15], "topic": [2, 3, 4, 15], "murphi": [2, 7], "mit": 2, "press": 2, "2023": [2, 7], "avail": 2, "io": 2, "pml": 2, "book2": 2, "s\u00e4rkk\u00e4": [2, 14, 16], "cambridg": 2, "univers": 2, "2013": [2, 14, 16], "aalto": 2, "fi": 2, "ssarkka": 2, "pub": 2, "cup_book_online_20131111": 2, "pdf": 2, "kind": 2, "simul": [2, 6, 9, 12, 16], "high": [2, 9], "runnabl": 2, "import": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "numpi": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "matplotlib": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "pyplot": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "plt": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "hidden_markov_model": [2, 6, 7, 8, 9], "key1": [2, 3, 4, 5, 6], "key2": [2, 3, 4, 5, 6], "key3": [2, 4], "split": [2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16], "3": [2, 3, 4, 5, 6, 9, 10, 12, 13, 14, 15, 16, 17], "1000": [2, 3, 6], "true_param": [2, 6, 9, 12, 13], "true_stat": [2, 6, 7, 9, 12, 13], "ll": [2, 7, 8, 9], "20": [2, 3, 5, 10, 13, 15], "plot": [2, 8, 11, 12, 14, 17], "across": [2, 9], "xlabel": [2, 5, 6, 7, 8, 9, 12, 13, 14, 16], "ylabel": [2, 5, 6, 7, 8, 9, 12, 13, 14, 16], "print": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "oper": 2, "vmap": [2, 5, 7, 8, 9, 11, 12, 15], "shown": [2, 3, 4, 10, 15, 16], "functool": [2, 4, 7, 8, 9, 12, 15], "num_seq": 2, "200": [2, 4, 5, 6, 14, 15], "batch_true_st": 2, "batch_emiss": [2, 7, 8, 12], "g": [2, 5, 7, 8, 9, 12, 16, 18], "directli": [2, 7, 8, 11], "construct": [2, 5, 7, 8], "introduc": 2, "recommend": 2, "start": [2, 7, 9, 12, 14], "work": [2, 8, 14], "your": 2, "casino": 2, "valid": [2, 8], "track": [2, 14], "lg": [2, 10, 11], "spiral": [2, 4], "1d": 2, "pendulum": 2, "mlp": 2, "classifi": 2, "ld": 2, "terminologi": 2, "type": [2, 4, 7, 8, 9, 15, 16], "base": [2, 9, 16], "abstract": 2, "gssm": 2, "util": [2, 6, 9, 11, 12, 13, 17], "distrax_hmm": 2, "replac": 2, "filterpi": 2, "hmmlearn": 2, "linderman": 2, "numba": 2, "autograd": 2, "mattjj": 2, "pyhsmm": 2, "cython": 2, "pyld": 2, "pgm": 2, "graph": 2, "jsl": 2, "pykalman": 2, "sarkka": [2, 16], "scan": [2, 16], "tfp_hmm": 2, "tf2": 2, "tfp_lgssm": 2, "search": 2, "page": 2, "train": [3, 15], "cmgf": 3, "recurs": [3, 4, 7, 10, 15], "treat": [3, 4, 10, 15], "unknown": [3, 4, 10, 15], "state": [3, 4, 5, 8, 10, 11, 13, 15, 16, 17], "approxim": [3, 4, 15], "constant": [3, 4, 10, 15, 18], "small": [3, 4, 14, 15], "amount": [3, 4, 9, 15], "drift": [3, 4, 10, 15], "numer": [3, 4, 15], "stabil": [3, 4, 15], "begin": [3, 4, 6, 7, 8, 9, 10, 11, 15, 16, 17], "theta_t": [3, 4, 10, 15], "01": [3, 4, 6, 9, 12, 15], "ber": [3, 4], "x_t": [3, 4, 10, 15], "end": [3, 4, 6, 7, 8, 9, 10, 11, 14, 15, 16, 17], "gener": [3, 4, 5, 6, 7, 8, 11, 15, 16], "ssm": [3, 4, 5, 6, 10, 11, 15, 16, 17], "inferec": [3, 4], "relev": [3, 4, 11], "integr": [3, 4], "linear": [3, 4, 5, 6, 11], "point": [3, 4, 6, 7, 11, 17], "gauss": 3, "hermit": 3, "order": [3, 6, 9], "5": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17], "compar": [3, 7], "result": [3, 4, 9, 16], "converg": [3, 8], "fastest": 3, "solut": [3, 8], "slower": 3, "detail": [3, 4, 7, 8, 15], "sec": [3, 4, 15], "8": [3, 4, 5, 6, 7, 9, 11, 13, 16, 17], "7": [3, 4, 7, 9, 16], "captur": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "try": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "except": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "modulenotfounderror": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "instal": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "generalized_gaussian_ssm": [3, 4, 5], "No": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "gpu": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "tpu": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "fall": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "back": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "cpu": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "tf_cpp_min_log_level": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "rerun": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "info": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "seaborn": [3, 6], "sn": [3, 6], "scipi": 3, "reason": [3, 9], "classif": [3, 4], "def": [3, 4, 5, 7, 8, 9, 11, 12, 13, 15, 16, 17], "generate_dataset": 3, "num_point": 3, "isinst": [3, 4, 5, 15, 16], "key0": 3, "noisi": [3, 11, 15, 17], "num_zero_point": 3, "zero_input": [3, 4], "num_one_point": 3, "one_input": [3, 4], "stack": [3, 4, 9], "concaten": [3, 4, 9], "input_with_bia": 3, "ones": [3, 4, 6, 7, 8, 9, 10, 15], "axi": [3, 4, 5, 6, 9, 11, 12, 15, 17], "idx": [3, 4], "arang": [3, 4, 5, 6, 7, 9, 10, 12, 13, 15, 16], "opt": [3, 6, 9], "hostedtoolcach": [3, 6, 9], "python": [3, 6, 7, 9], "9": [3, 4, 6, 7, 9, 10, 12, 16], "17": [3, 6, 9, 15], "x64": [3, 6, 9], "lib": [3, 6, 9], "python3": [3, 6, 9], "site": [3, 6, 9], "packag": [3, 6, 9], "_src": 3, "480": 3, "futurewarn": [3, 6, 9], "deprec": 3, "remov": 3, "warn": [3, 6, 9], "msg": 3, "visual": [3, 4, 5, 6], "plot_posterior_predict": [3, 4], "ax": [3, 4, 5, 6, 9, 10, 11, 13, 15, 17], "x": [3, 4, 5, 6, 7, 8, 9, 10, 11, 15, 16], "titl": [3, 4, 5, 6, 7, 8, 9, 17], "color": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "xspace": [3, 4], "zspace": [3, 4], "cmap": [3, 4, 6, 7, 9], "viridi": 3, "contourf": [3, 4], "off": [3, 4], "scatter": [3, 4], "edgecolor": [3, 4, 11, 15, 16, 17], "grai": [3, 7, 15], "set_titl": [3, 4, 5, 9, 11, 15, 17], "tight_layout": [3, 4, 5, 6, 9, 14], "plot_boundari": 3, "w": [3, 4, 16], "look": [3, 6, 8], "fig": [3, 4, 5, 6, 9, 10, 11, 13, 15, 17], "subplot": [3, 4, 5, 6, 9, 10, 11, 13, 15, 17], "black": [3, 4, 10], "els": [3, 4, 5, 9, 12, 13, 14], "red": [3, 4, 5, 6, 10, 11], "grid": [3, 4, 9, 14, 15, 16], "limit": [3, 4], "xmin": [3, 4, 10], "ymin": [3, 4], "xmax": [3, 4, 10], "ymax": [3, 4], "input_grid": [3, 4], "mgrid": [3, 4], "nx": 3, "ny": 3, "input_with_bias_grid": 3, "posterior_predictive_grid": [3, 4], "n_sampl": 3, "5000": [3, 8], "multivariate_norm": [3, 15, 16], "nn": [3, 4, 7, 15], "sigmoid": [3, 4, 15], "einsum": 3, "mij": 3, "sm": 3, "sij": 3, "plot_cmgf_post_laplac": 3, "mean_hist": 3, "cov_hist": 3, "w_map": 3, "lcolor": 3, "filter_typ": 3, "legend_font_s": 3, "14": [3, 10, 16], "bb1": 3, "bb2": 3, "bb3": 3, "tau_hist": 3, "rang": [3, 5, 6, 9, 11, 12, 13, 14], "element": 3, "n_datapoint": 3, "wk": 3, "pk": 3, "wk_fix": 3, "enumer": [3, 6], "zip": [3, 4, 9], "fig_weight_k": 3, "errorbar": [3, 10], "axhlin": [3, 8, 9, 13], "linestyl": [3, 8, 9, 10, 13], "dot": [3, 5, 6, 11], "linewidth": [3, 11, 15, 16, 17], "set_xlim": [3, 5, 13, 15], "set_xlabel": [3, 5, 6, 9, 10, 13], "fontsiz": [3, 11], "15": [3, 4, 5, 9, 11], "set_ylabel": [3, 5, 6, 9, 10, 13], "tick_param": 3, "major": 3, "labels": 3, "despin": 3, "legend": [3, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "frameon": 3, "loc": [3, 5, 6, 11, 15, 16], "upper": [3, 5, 11], "right": [3, 5, 6, 9], "bbox_to_anchor": 3, "elif": 3, "log_posterior": 3, "prior_var": 3, "laplace_infer": 3, "guess": 3, "w0": 3, "ey": [3, 4, 5, 6, 9, 10, 11, 14, 15, 16, 17], "energi": 3, "w_laplac": 3, "bfg": 3, "cov_laplac": 3, "hessian": 3, "fig_adf": 3, "z_laplac": 3, "sigmoid_fn": [3, 4], "1e": [3, 4, 8, 13, 14, 15], "cmgf_param": 3, "extract": [3, 4, 11, 12], "ekf_post": [3, 15, 17], "ekf_mean": [3, 17], "ekf_cov": [3, 17], "w_ekf": 3, "cov_ekf": 3, "z_ekf": 3, "tab": [3, 10, 11], "blue": [3, 4, 5, 6], "100": [3, 6, 8, 9, 12, 13, 14, 15, 17], "ukf_post": [3, 17], "ukf_mean": [3, 17], "ukf_cov": [3, 17], "w_ukf": 3, "cov_ukf": 3, "z_ukf": 3, "ghkf_post": 3, "ghkf_mean": 3, "ghkf_cov": 3, "w_ghkf": 3, "cov_ghkf": 3, "z_ghkf": 3, "multilay": 4, "perceptron": [4, 15], "model": [4, 12, 13, 15, 16], "video": [4, 15], "gist": 4, "petergchang": 4, "9441b853b889e0b47d0622da8f7fe2f6": 4, "flax": [4, 15], "linen": [4, 15], "qq": [4, 12], "cm": 4, "flatten_util": [4, 15], "ravel_pytre": [4, 15], "rainbow": 4, "dataset": [4, 5, 8], "adapt": [4, 5, 12], "45deg": 4, "e731d9e7f478de134def5668324c44c5": 4, "generate_spiral_dataset": 4, "num_per_class": 4, "250": 4, "zero_var": 4, "one_var": 4, "key4": 4, "4": [4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17], "uniform": [4, 5], "generate_data": 4, "co": [4, 5, 6, 9, 15, 17], "sin": [4, 5, 6, 9, 15, 16, 17], "zero_output": 4, "one_output": 4, "figsiz": [4, 5, 6, 12, 13, 14, 17], "6": [4, 5, 6, 7, 8, 9, 10, 14, 15, 16], "x_grid": [4, 5, 15], "y_grid": [4, 5], "meshgrid": [4, 5, 6, 9], "round": 4, "appli": [4, 15], "inferred_fn": 4, "fn_vec": 4, "rint": 4, "activ": 4, "modul": [4, 15], "featur": [4, 10, 15], "compact": [4, 15], "__call__": [4, 15], "self": [4, 15], "feat": [4, 15], "relu": 4, "dens": [4, 15], "get_mlp_flattened_param": [4, 15], "model_dim": [4, 15], "dummy_input": [4, 15], "dummi": [4, 5, 15], "flat_param": [4, 15], "unflatten_fn": [4, 15], "atleast_1d": [4, 15], "apply_fn": [4, 15], "architectur": 4, "hidden_dim": [4, 15], "output_dim": [4, 15], "some": [4, 7, 8, 9, 14, 16, 18], "funciton": 4, "cmgf_ekf_param": 4, "cmgf_ekf_post": 4, "histori": 4, "w_mean": [4, 15], "w_cov": [4, 15], "evalu": [4, 9], "procedur": 4, "intermedi": 4, "intermediate_step": [4, 15], "49": 4, "99": [4, 13], "199": 4, "299": 4, "399": 4, "10": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17], "flatten": [4, 15], "zi": 4, "being": 4, "anim": 4, "ipython": 4, "displai": 4, "cla": 4, "w_curr": 4, "500": [4, 8, 12, 14], "funcanim": 4, "frame": 4, "interv": 4, "save": 4, "cmgf_mlp_classifi": 4, "mp4": [4, 15], "dpi": 4, "bitrat": 4, "fp": 4, "24": 4, "to_html5_video": 4, "fom": 5, "lindermanlab": 5, "gridspec": 5, "tensorflow_prob": 5, "substrat": 5, "poi": 5, "plot_dynamics_2d": 5, "dynamics_matrix": 5, "bias_vector": 5, "40": [5, 16], "npt": 5, "assert": [5, 11, 13, 14], "length": [5, 7, 14], "linspac": [5, 6, 9, 10, 15], "xy_grid": 5, "column_stack": [5, 6, 9, 10], "ravel": [5, 6, 9], "dx": 5, "quiver": [5, 6], "gca": [5, 6, 9, 16], "set_aspect": [5, 6, 9, 16, 17], "plot_stat": 5, "num_step": [5, 12, 16], "latent_dim": [5, 14], "lim": [5, 6, 9], "ab": [5, 6, 9], "set_ytick": [5, 6], "set_yticklabel": 5, "format": [5, 6, 7, 8, 9, 16], "set_xtick": [5, 6], "plot_emissions_poisson": 5, "emissions_dim": 5, "figur": [5, 6, 7, 8, 9, 12, 13, 14, 16], "height_ratio": 5, "continu": [5, 7, 8, 9, 11, 16], "ytick": [5, 6, 7, 16], "xtick": [5, 14, 16], "xlim": [5, 6, 8, 9, 12, 13, 16], "imshow": [5, 6, 7, 9], "aspect": [5, 6, 7, 9, 17], "interpol": [5, 6, 7, 9], "tick": 5, "bin": 5, "colorbar": [5, 6], "compare_dynam": 5, "ex": 5, "lw": [5, 6, 9], "markers": [5, 6, 11], "z_2": [5, 16], "compare_smoothened_predict": 5, "ei": [5, 6], "ey_tru": 5, "covi": 5, "data_dim": 5, "fill_between": [5, 10, 12, 13], "25": [5, 6, 7, 9, 12, 13], "neuron": 5, "trace": 5, "rotat": [5, 6], "functionto": 5, "random_rot": [5, 6], "dim": 5, "slow": 5, "rot": 5, "out": [5, 7], "linalg": [5, 6, 10], "qr": 5, "poisson_weight": 5, "Then": 5, "sample_poisson": 5, "_sampl": 5, "batch_kei": 5, "001": [5, 6, 11, 17], "exp": [5, 9], "mu": 5, "log_rat": 5, "all_stat": 5, "all_emiss": 5, "demonstr": [6, 16], "left": [6, 11], "q_": [6, 16], "higher": 6, "gradient_cmap": 6, "set_styl": 6, "white": [6, 7, 16], "set_context": 6, "talk": 6, "color_nam": 6, "window": [6, 12], "amber": 6, "fade": 6, "green": [6, 11], "dusti": 6, "purpl": 6, "orang": 6, "brown": 6, "pink": 6, "xkcd_palett": 6, "transition_prob": 6, "astyp": 6, "roll": [6, 7, 8, 9], "vmin": [6, 9], "vmax": [6, 9], "grei": [6, 7], "0x7f5bf015efd0": 6, "angl": [6, 16], "endpoint": 6, "frequenc": [6, 7], "tile": [6, 9], "stationari": [6, 10], "stationary_point": 6, "solv": [6, 7, 8, 10], "xy": 6, "dxydt_m": 6, "x_1": 6, "x_2": 6, "equal": [6, 7, 8, 11, 17, 18], "true_arhmm": 6, "time_bin": 6, "10000": 6, "o": [6, 8, 9, 10, 11, 14], "75": [6, 7], "text": [6, 7, 8, 9, 12], "seri": [6, 12], "line": 6, "while": [6, 7], "solid": 6, "actual": [6, 7, 9], "plot_slic": 6, "05": [6, 7, 8, 9, 17], "extent": [6, 7, 9], "now": [6, 7, 8, 11, 17], "test_num_st": 6, "fitted_param": [6, 12], "sklearn": [6, 9], "cluster": [6, 9], "_kmean": [6, 9], "1412": [6, 9], "n_init": [6, 9], "explicitli": [6, 9], "suppress": [6, 9], "super": [6, 9], "_check_params_vs_input": [6, 9], "default_n_init": [6, 9], "00": [6, 8, 9, 12, 13], "lt": [6, 8, 9, 12, 13], "true_lp": [6, 9], "most_likely_st": [6, 7, 9], "j": 6, "211": 6, "212": 6, "good": [6, 8], "difficult": 6, "test": [6, 9], "its": [6, 7, 8, 9, 11, 15, 17], "real": 6, "what": [6, 9], "sampled_st": 6, "sampled_emiss": 6, "complex": 6, "between": [6, 8], "regim": 6, "could": [6, 7], "imagin": [6, 7], "nonlinear": [6, 15, 16, 17], "perhap": [6, 7, 8, 9], "launchpad": 6, "occasion": [7, 8], "dishonest": [7, 8], "biolog": 7, "analysi": 7, "protein": 7, "nucleic": 7, "acid": 7, "durbin": 7, "eddi": 7, "krogh": 7, "mitchison": 7, "1998": 7, "plai": 7, "dice": [7, 8], "shadi": 7, "old": 7, "west": 7, "saloon": 7, "suspect": 7, "player": 7, "cheat": 7, "die": [7, 8], "six": [7, 8], "face": [7, 8], "everi": [7, 17], "often": [7, 8], "secretli": 7, "up": [7, 8, 18], "half": 7, "avoid": [7, 11, 17], "get": [7, 8, 14, 16], "caught": 7, "don": 7, "veri": [7, 8], "tend": [7, 8], "keep": [7, 8, 9], "formal": 7, "game": 7, "fair": [7, 8], "95": [7, 8], "load": [7, 8], "basi": 7, "outcom": [7, 8], "alon": 7, "one_hot": 7, "th": [7, 8], "becaus": [7, 8, 9], "notat": 7, "know": [7, 9], "instanti": 7, "90": [7, 8], "situat": 7, "lead": 7, "littl": [7, 8], "confus": [7, 11, 17], "go": 7, "scenario": 7, "multipl": [7, 8, 9], "simultan": 7, "possibl": 7, "structur": [7, 12], "combin": [7, 11, 12, 17, 18], "need": [7, 8], "downstream": 7, "sinc": [7, 8, 10], "arbitrari": [7, 9, 18], "again": 7, "think": [7, 8], "reshap": [7, 8, 9, 10], "num_emiss": [7, 8], "struct": [7, 8], "organ": 7, "aren": 7, "realli": [7, 8], "meant": 7, "human": 7, "consumpt": 7, "paramscategoricalhmm": 7, "paramsstandardhmminitialst": 7, "float32": 7, "paramsstandardhmmtransit": 7, "paramscategoricalhmmemiss": 7, "16666667": 7, "edit": 7, "design": [7, 10], "prefer": 7, "datatyp": 7, "pleas": 7, "desir": 7, "attribut": 7, "thing": [7, 8], "latter": [7, 9], "necesari": 7, "won": 7, "ve": 7, "pseudorandom": [7, 8], "300": 7, "42": [7, 8, 13], "last": [7, 9], "emis": 7, "offer": 7, "power": 7, "tool": 7, "just": [7, 8, 9, 11, 18], "v": [7, 9, 11, 17], "As": [7, 8, 9], "much": [7, 8], "plot_sequ": 7, "born": 7, "empir": 7, "fraction": 7, "rememb": 7, "p0": 7, "p1": 7, "14970061": 7, "46616542": 7, "mathemat": 7, "ch": 7, "fashion": 7, "comparison": [7, 8, 16], "2f": [7, 16], "517": 7, "plot_posterior_prob": 7, "ylim": [7, 16], "those": [7, 8, 9], "after": [7, 8], "sharp": 7, "rise": [7, 16], "235": 7, "attenu": 7, "That": [7, 8], "sensit": [7, 16], "when": [7, 8], "benefit": 7, "suggest": 7, "wa": 7, "chanc": 7, "event": 7, "maximum": [7, 8], "posteriori": [7, 8], "program": 7, "plot_map_sequ": 7, "howev": [7, 8, 9, 18], "exactli": 7, "knew": 8, "goal": 8, "fill": 8, "unfil": 8, "dirichlet": 8, "categori": 8, "quad": 8, "full": [8, 9], "describ": 8, "digest": 8, "print_param": 8, "set_printopt": [8, 16], "formatt": [8, 16], "3f": 8, "950": 8, "050": 8, "900": 8, "167": [8, 10], "simplest": 8, "ascent": 8, "typic": 8, "formul": [8, 16], "problem": [8, 16], "direct": 8, "steepest": 8, "even": 8, "though": 8, "straightforward": 8, "randomli": 8, "prng": 8, "persist": 8, "paramt": 8, "hot": 8, "posit": [8, 11, 12, 17], "fbgd_param": 8, "fbgd_prop": 8, "793": 8, "207": 8, "978": 8, "022": 8, "252": 8, "748": 8, "145": [8, 10], "115": 8, "024": 8, "136": 8, "187": 8, "393": 8, "010": 8, "119": 8, "416": 8, "325": 8, "068": 8, "061": 8, "notic": 8, "among": [8, 9], "certain": 8, "parmet": 8, "contrast": 8, "why": 8, "sometim": 8, "larg": 8, "quickli": 8, "fbgd_kei": 8, "fbgd_loss": 8, "learning_r": 8, "momentum": 8, "400": [8, 16], "sgd_param": 8, "sgd_param_prop": 8, "sgd_kei": 8, "sgd_loss": 8, "gd": 8, "intuit": 8, "sweep": 8, "wherea": 8, "appear": 8, "correct": 8, "961": 8, "039": 8, "292": 8, "708": 8, "162": 8, "142": 8, "131": 8, "306": 8, "013": 8, "170": 8, "406": 8, "249": 8, "093": 8, "070": 8, "964": 8, "036": 8, "344": 8, "656": 8, "165": 8, "143": 8, "124": 8, "130": 8, "150": 8, "287": 8, "014": 8, "229": 8, "315": 8, "258": 8, "110": 8, "074": 8, "ok": [8, 15, 16, 17], "perfect": 8, "tradit": 8, "essenti": 8, "By": 8, "henc": 8, "practic": 8, "quicker": 8, "especi": 8, "nice": 8, "em_param": 8, "em_param_prop": 8, "02": 8, "negat": 8, "divid": 8, "total": 8, "librari": [8, 12, 18], "em_loss": 8, "true_loss": 8, "Not": 8, "faster": 8, "hand": 8, "better": 8, "inde": 8, "obtain": 8, "truli": 8, "nearli": 8, "refer": [8, 18], "fact": [8, 9], "symmetr": 8, "mode": 8, "628": 8, "372": 8, "909": 8, "091": 8, "053": [8, 10], "947": 8, "106": [8, 9], "101": 8, "105": 8, "468": 8, "171": 8, "173": 8, "164": 8, "157": 8, "exact": 8, "gloss": 8, "prone": 8, "stuck": 8, "optima": 8, "heurist": [8, 9], "intellig": 8, "anoth": 8, "achiev": 8, "did": 8, "address": 8, "question": 8, "determin": [8, 9], "purpos": [8, 18], "far": 8, "focus": 8, "gaussian": [8, 11, 15, 17], "concern": 8, "ti": 9, "niw": 9, "choos": 9, "held": 9, "white_to_color_cmap": 9, "plot_gaussian_hmm": 9, "xx": 9, "yy": 9, "contour": 9, "mfc": 9, "mec": 9, "y_1": 9, "y_2": 9, "plot_gaussian_hmm_data": 9, "superimpos": 9, "sharex": 9, "slight": 9, "wrinkl": 9, "num_train_batch": 9, "num_test_batch": 9, "underli": 9, "true_num_st": 9, "80": 9, "emission_cov": 9, "train_kei": 9, "val_kei": 9, "test_kei": 9, "train_true_st": 9, "train_emiss": 9, "test_true_st": 9, "test_emiss": 9, "plane": 9, "background": 9, "fold": 9, "cross_validate_model": 9, "ineffici": 9, "highlight": 9, "_fit_fold": 9, "y_train": 9, "y_val": 9, "fit_param": 9, "train_lp": 9, "val_ll": 9, "all_num_st": 9, "test_hmm": 9, "append": [9, 12, 14], "avg_val_l": 9, "all_val_l": 9, "ko": 9, "per_fold_val_l": 9, "ones_lik": [9, 10, 12], "num": [9, 10, 14], "avg": 9, "answer": 9, "pick": 9, "highest": 9, "stop": [9, 11], "increas": 9, "hypothesi": 9, "best_num_st": 9, "num_iter": 9, "0x7f382d5cdbb0": 9, "invari": 9, "relabel": 9, "section": 9, "assign": 9, "usual": 9, "simplic": 9, "fit_model": 9, "test_lp": 9, "true_test_lp": 9, "__class__": 9, "__name__": 9, "30": [9, 12, 15], "1f": 9, "117": 9, "112": 9, "111": 9, "114": 9, "almost": 9, "underperform": 9, "overfit": 9, "flexibl": 9, "were": 9, "bit": 9, "surpris": 9, "win": 9, "mind": 9, "particular": 9, "seed": 9, "applic": 9, "error": 9, "analys": 9, "seen": 9, "pattern": 9, "document": [9, 18], "least": 10, "squar": 10, "linear_gaussian_ssm": [10, 11, 12, 13, 14], "pmtk3": 10, "blob": [10, 15], "master": 10, "linregonlinedemokalman": 10, "n_ob": 10, "21": 10, "486": 10, "303": 10, "336": 10, "174": 10, "604": 10, "507": 10, "326": 10, "638": 10, "233": 10, "986": 10, "028": 10, "264": 10, "451": 10, "652": 10, "268": 10, "34": 10, "626": 10, "784": 10, "obs_var": 10, "mu0": 10, "sigma0": 10, "encod": 10, "lgssm_posterior": [10, 11], "kf_result": 10, "bay": 10, "rule": 10, "give": [10, 16], "posterior_prec": 10, "inv": 10, "posterior_mean": 10, "batch_result": 10, "unpack": [10, 16], "post_weights_kf": 10, "post_sigma_kf": 10, "w0_kf_hist": 10, "w1_kf_hist": 10, "w0_kf_err": 10, "w1_kf_err": 10, "post_weights_batch": 10, "post_prec_batch": 10, "w0_post_batch": 10, "w1_post_batch": 10, "sigma_post_batch": 10, "w0_std_batch": 10, "w1_std_batch": 10, "fmt": 10, "w_0": 10, "fillstyl": [10, 15, 16, 17], "w_1": 10, "hline": 10, "0x7f314c7997f0": 10, "consid": [11, 17], "move": [11, 17], "locat": [11, 17], "motion": [11, 17], "veloc": [11, 16], "pmatrix": [11, 16, 17], "_t": 11, "v_t": [11, 17], "coordin": [11, 15, 17], "delta": [11, 16], "underbrac": 11, "v_": 11, "suppos": 11, "corrupt": [11, 17], "becom": [11, 17], "part": 11, "plot_uncertainty_ellips": [11, 17], "chosen": 11, "310": 11, "observation_marker_kwarg": 11, "marker": 11, "markerfacecolor": 11, "markeredgewidth": 11, "fig1": 11, "ax1": 11, "c0": 11, "0x7f85a07c3250": 11, "plot_lgssm_posterior": 11, "post_mean": 11, "post_cov": 11, "ellipse_kwarg": 11, "legend_kwarg": 11, "patch": 11, "ellips": [11, 17], "weird": 11, "behaviour": 11, "empti": 11, "wouldn": 11, "reset": 11, "dictionari": 11, "dict": 11, "space": 11, "trajectori": [11, 17], "43": 11, "13845": 11, "fig2": 11, "ax2": 11, "darkgrei": 11, "fig3": 11, "ax3": 11, "smoothed_posterior": 11, "allclos": [11, 14], "num_sampl": [11, 12, 15], "plot_kf_parallel": 11, "dict_figur": 11, "missiles_lat": 11, "filt_mean": 11, "filt_cov": 11, "missiles_filt": 11, "missiles_smooth": 11, "librai": 12, "int_": 12, "jit": 12, "itertool": 12, "log_det_jac_constrain": 12, "rcparam": 12, "16": 12, "true_model": [12, 13], "plot_result": 12, "smoothed_emiss": [12, 13], "smoothed_emissions_std": [12, 13], "spc": [12, 13], "ln": [12, 13], "get_color": [12, 13], "fake": 12, "initil": 12, "test_model": [12, 13], "initial_param": 12, "param_prop": [12, 13], "marginal_l": [12, 13], "fitted_c": 12, "fitted_d": 12, "fitted_r": 12, "smoothed_emissions_mean": 12, "smoothed_emissions_cov": 12, "to_unconstrain": 12, "from_unconstrain": 12, "pytree_stack": 12, "ensure_array_has_batch_dim": 12, "fastprogress": 12, "progress_bar": 12, "fit_hmc": 12, "warmup_step": 12, "num_integration_step": 12, "sure": 12, "batch_input": 12, "initial_unc_param": 12, "_logprob": 12, "unc_param": 12, "batch_ll": 12, "sampler": 12, "window_adapt": 12, "warmup": 12, "init_kei": 12, "hmc_initial_st": 12, "hmc_kernel": 12, "hmc_step": 12, "hmc_state": 12, "step_kei": 12, "next_hmc_stat": 12, "pbar": 12, "potential_energi": 12, "sample_s": 12, "param_sampl": 12, "35": 12, "smooth_emiss": 12, "freez": 12, "st": 12, "test_param": [12, 13], "test_param_prop": 12, "mark": 12, "frozen": 12, "31": 12, "lineargaussianconjugatessm": 13, "monotonically_increas": 13, "key_root": 13, "plot_learning_curv": 13, "nstep": 13, "true_logjoint": 13, "plot_predict": 13, "untrain": 13, "atol": [13, 14], "rtol": 13, "03": 13, "neg_marginal_l": 13, "reduc": 14, "cost": 14, "devic": 14, "borrow": 14, "heavili": 14, "adrien": 14, "correnflo": 14, "made": 14, "abl": 14, "speedup": 14, "curv": 14, "block_until_readi": 14, "parallel_lgssm_smooth": 14, "platform": 14, "cpu_mod": 14, "cpudevic": 14, "id": 14, "dt": [14, 16], "kron": 14, "\u03bc0": 14, "\u03c30": 14, "observation_dim": 14, "subkei": 14, "ssm_posterior": 14, "parallel_posterior": 14, "c2": 14, "serial": 14, "c3": 14, "num_repeat": 14, "1_000": 14, "10_000": 14, "100_000": 14, "serial_smoothing_dur": 14, "parallel_smoothing_dur": 14, "compil": 14, "mean_tim": 14, "49035167694091797": 14, "48937320709228516": 14, "49062561988830566": 14, "578441858291626": 14, "4946463108062744": 14, "6456918716430664": 14, "loglog": 14, "seq": 14, "multi": 15, "layer": 15, "nlg": 15, "action": 15, "main": 15, "ekf_mlp_demo": 15, "nonlinear_gaussian_ssm": [15, 16, 17], "sample_observ": 15, "x_min": 15, "x_max": 15, "x_var": 15, "y_var": 15, "num_ob": 15, "x_nois": 15, "y_nois": 15, "shuffled_idx": 15, "view": 15, "unflatten": 15, "fn": 15, "ident": 15, "ekf_param": [15, 16, 17], "ekf": [15, 16, 17], "plot_mlp_predict": 15, "ob": [15, 16], "x_lim": 15, "y_lim": 15, "uncertainti": [15, 17], "w_sampl": 15, "y_sampl": 15, "in_ax": 15, "07": [15, 16], "y_mean": 15, "set_ylim": 15, "borderpad": [15, 16, 17], "handlelength": [15, 16, 17], "fancybox": [15, 16, 17], "all_figur": 15, "inputs_grid": 15, "ntrain": 15, "ekf_mlp_step_": 15, "taken": 16, "p45": 16, "repo": 16, "physic": 16, "rel": 16, "vertic": 16, "ad": 16, "angular": 16, "acceler": 16, "equat": 16, "frac": 16, "spectral": 16, "densiti": 16, "alpha_t": 16, "inlin": 16, "jaxtyp": [16, 18], "pretti": 16, "ndarrai": 16, "float_kind": 16, "0125": 16, "q_c": 16, "lightweight": 16, "pendulumparam": 16, "initial_st": 16, "simulate_pendulum": 16, "_step": 16, "carri": 16, "rng1": 16, "rng2": 16, "next_stat": 16, "plot_pendulum": 16, "time_grid": 16, "x_tr": 16, "x_ob": 16, "x_est": 16, "est_typ": [16, 17], "darkgrai": 16, "measur": 16, "x_": 16, "rmse": 16, "compute_rms": 16, "y_est": 16, "compute_and_print_rmse_comparison": 16, "rmse_est": 16, "pendulum_param": 16, "ekf_posterior": 16, "m_ekf": 16, "55": 16, "ek": 16, "09": 16, "ukf_param": [16, 17], "ukf_hyperparam": 16, "ukf_posterior": 16, "m_ukf": 16, "ukf": [16, 17], "m_uk": 16, "uk": 16, "extens": 17, "At": 17, "obs_dim": 17, "plot_infer": 17, "show_stat": 17, "oberv": 17, "center": 17, "make_inference_arg": 17, "fourth": 17, "0x7f6ff049e5e0": 17, "0x7f6ff02a1e20": 17, "declar": 18, "check": 18, "beartyp": 18, "typeguard": 18, "disabl": 18, "diffrax": 18, "api": 18, "shorthand": 18, "addit": 18, "annot": 18, "dim1": 18, "dim2": 18, "boolean": 18, "And": 18}, "objects": {"dynamax.generalized_gaussian_ssm": [[1, 0, 1, "", "GeneralizedGaussianSSM"], [1, 0, 1, "", "ParamsGGSSM"], [1, 3, 1, "", "conditional_moments_gaussian_filter"], [1, 3, 1, "", "conditional_moments_gaussian_smoother"], [1, 3, 1, "", "iterated_conditional_moments_gaussian_filter"], [1, 3, 1, "", "iterated_conditional_moments_gaussian_smoother"]], "dynamax.generalized_gaussian_ssm.GeneralizedGaussianSSM": [[1, 1, 1, "", "emission_distribution"], [1, 2, 1, "", "emission_shape"], [1, 1, 1, "", "initial_distribution"], [1, 1, 1, "", "transition_distribution"]], "dynamax.hidden_markov_model": [[1, 0, 1, "", "BernoulliHMM"], [1, 0, 1, "", "CategoricalHMM"], [1, 0, 1, "", "CategoricalRegressionHMM"], [1, 0, 1, "", "DiagonalGaussianHMM"], [1, 0, 1, "", "DiagonalGaussianMixtureHMM"], [1, 0, 1, "", "GammaHMM"], [1, 0, 1, "", "GaussianHMM"], [1, 0, 1, "", "GaussianMixtureHMM"], [1, 0, 1, "", "HMM"], [1, 0, 1, "", "HMMEmissions"], [1, 0, 1, "", "HMMInitialState"], [1, 0, 1, "", "HMMParameterSet"], [1, 0, 1, "", "HMMPosterior"], [1, 0, 1, "", "HMMPosteriorFiltered"], [1, 0, 1, "", "HMMPropertySet"], [1, 0, 1, "", "HMMTransitions"], [1, 0, 1, "", "LinearAutoregressiveHMM"], [1, 0, 1, "", "LinearRegressionHMM"], [1, 0, 1, "", "LogisticRegressionHMM"], [1, 0, 1, "", "LowRankGaussianHMM"], [1, 0, 1, "", "MultinomialHMM"], [1, 0, 1, "", "PoissonHMM"], [1, 0, 1, "", "SharedCovarianceGaussianHMM"], [1, 0, 1, "", "SphericalGaussianHMM"], [1, 3, 1, "", "hmm_filter"], [1, 3, 1, "", "hmm_fixed_lag_smoother"], [1, 3, 1, "", "hmm_posterior_mode"], [1, 3, 1, "", "hmm_posterior_sample"], [1, 3, 1, "", "hmm_smoother"], [1, 3, 1, "", "hmm_two_filter_smoother"], [1, 3, 1, "", "parallel_hmm_filter"], [1, 3, 1, "", "parallel_hmm_smoother"]], "dynamax.hidden_markov_model.BernoulliHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.CategoricalHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.CategoricalRegressionHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.DiagonalGaussianHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.DiagonalGaussianMixtureHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.GammaHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.GaussianHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.GaussianMixtureHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.HMM": [[1, 1, 1, "", "e_step"], [1, 1, 1, "", "emission_distribution"], [1, 2, 1, "", "emission_shape"], [1, 1, 1, "", "filter"], [1, 1, 1, "", "initial_distribution"], [1, 1, 1, "", "initialize_m_step_state"], [1, 1, 1, "", "log_prior"], [1, 1, 1, "", "m_step"], [1, 1, 1, "", "marginal_log_prob"], [1, 1, 1, "", "smoother"], [1, 1, 1, "", "transition_distribution"]], "dynamax.hidden_markov_model.HMMEmissions": [[1, 1, 1, "", "collect_suff_stats"], [1, 1, 1, "", "distribution"], [1, 2, 1, "", "emission_shape"], [1, 1, 1, "", "initialize"], [1, 1, 1, "", "initialize_m_step_state"], [1, 1, 1, "", "log_prior"], [1, 1, 1, "", "m_step"]], "dynamax.hidden_markov_model.HMMInitialState": [[1, 1, 1, "", "collect_suff_stats"], [1, 1, 1, "", "distribution"], [1, 1, 1, "", "initialize"], [1, 1, 1, "", "initialize_m_step_state"], [1, 1, 1, "", "log_prior"], [1, 1, 1, "", "m_step"]], "dynamax.hidden_markov_model.HMMTransitions": [[1, 1, 1, "", "collect_suff_stats"], [1, 1, 1, "", "distribution"], [1, 1, 1, "", "initialize"], [1, 1, 1, "", "initialize_m_step_state"], [1, 1, 1, "", "log_prior"], [1, 1, 1, "", "m_step"]], "dynamax.hidden_markov_model.LinearAutoregressiveHMM": [[1, 1, 1, "", "compute_inputs"], [1, 1, 1, "", "initialize"], [1, 1, 1, "", "sample"]], "dynamax.hidden_markov_model.LinearRegressionHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.LogisticRegressionHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.LowRankGaussianHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.MultinomialHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.PoissonHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.SharedCovarianceGaussianHMM": [[1, 1, 1, "", "initialize"]], "dynamax.hidden_markov_model.SphericalGaussianHMM": [[1, 1, 1, "", "initialize"]], "dynamax.linear_gaussian_ssm": [[1, 0, 1, "", "LinearGaussianSSM"], [1, 0, 1, "", "ParamsLGSSM"], [1, 0, 1, "", "ParamsLGSSMDynamics"], [1, 0, 1, "", "ParamsLGSSMEmissions"], [1, 0, 1, "", "ParamsLGSSMInitial"], [1, 0, 1, "", "PosteriorGSSMFiltered"], [1, 0, 1, "", "PosteriorGSSMSmoothed"], [1, 3, 1, "", "lgssm_filter"], [1, 3, 1, "", "lgssm_posterior_sample"], [1, 3, 1, "", "lgssm_smoother"]], "dynamax.linear_gaussian_ssm.LinearGaussianSSM": [[1, 1, 1, "", "e_step"], [1, 1, 1, "", "emission_distribution"], [1, 2, 1, "", "emission_shape"], [1, 1, 1, "", "filter"], [1, 1, 1, "", "initial_distribution"], [1, 1, 1, "", "initialize"], [1, 2, 1, "", "inputs_shape"], [1, 1, 1, "", "m_step"], [1, 1, 1, "", "marginal_log_prob"], [1, 1, 1, "", "posterior_predictive"], [1, 1, 1, "", "smoother"], [1, 1, 1, "", "transition_distribution"]], "dynamax.nonlinear_gaussian_ssm": [[1, 0, 1, "", "NonlinearGaussianSSM"], [1, 0, 1, "", "ParamsNLGSSM"], [1, 3, 1, "", "extended_kalman_filter"], [1, 3, 1, "", "extended_kalman_smoother"], [1, 3, 1, "", "iterated_extended_kalman_filter"], [1, 3, 1, "", "iterated_extended_kalman_smoother"], [1, 3, 1, "", "unscented_kalman_filter"], [1, 3, 1, "", "unscented_kalman_smoother"]], "dynamax.nonlinear_gaussian_ssm.NonlinearGaussianSSM": [[1, 1, 1, "", "emission_distribution"], [1, 2, 1, "", "emission_shape"], [1, 1, 1, "", "initial_distribution"], [1, 2, 1, "", "inputs_shape"], [1, 1, 1, "", "transition_distribution"]], "dynamax.parameters": [[1, 0, 1, "", "ParameterProperties"], [1, 0, 1, "", "ParameterSet"], [1, 0, 1, "", "PropertySet"]], "dynamax.ssm": [[1, 0, 1, "", "SSM"]], "dynamax.ssm.SSM": [[1, 1, 1, "", "e_step"], [1, 1, 1, "", "emission_distribution"], [1, 2, 1, "", "emission_shape"], [1, 1, 1, "", "filter"], [1, 1, 1, "", "fit_em"], [1, 1, 1, "", "fit_sgd"], [1, 1, 1, "", "initial_distribution"], [1, 2, 1, "", "inputs_shape"], [1, 1, 1, "", "log_prior"], [1, 1, 1, "", "log_prob"], [1, 1, 1, "", "m_step"], [1, 1, 1, "", "marginal_log_prob"], [1, 1, 1, "", "sample"], [1, 1, 1, "", "smoother"], [1, 1, 1, "", "transition_distribution"]], "dynamax.utils.utils": [[1, 3, 1, "", "find_permutation"]]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:property", "3": "py:function"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "property", "Python property"], "3": ["py", "function", "Python function"]}, "titleterms": {"document": [0, 2], "state": [1, 2, 6, 7, 9], "space": [1, 2], "model": [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 14, 17], "base": 1, "class": 1, "paramet": [1, 8, 12, 13], "hidden": 1, "markov": 1, "abstract": 1, "high": 1, "level": [1, 11], "low": [1, 11], "infer": [1, 3, 5, 6, 7, 10, 11, 12, 14, 15], "type": [1, 18], "linear": [1, 2, 10], "gaussian": [1, 2, 3, 4, 5, 9], "ssm": [1, 2, 12, 13, 14], "nonlinear": [1, 2], "gssm": 1, "gener": [1, 2, 9, 12], "util": 1, "welcom": 2, "dynamax": 2, "instal": 2, "test": [2, 14], "what": 2, "ar": [2, 6], "quickstart": 2, "tutori": 2, "hmm": [2, 6, 7, 8, 9], "api": 2, "relat": 2, "librari": 2, "indic": 2, "tabl": 2, "onlin": [3, 4, 10, 11, 15], "logist": 3, "regress": [3, 10], "us": [3, 4, 5, 9, 10, 11, 12, 13, 15, 16, 17], "condit": [3, 4, 5], "moment": [3, 4, 5], "filter": [3, 4, 5, 7, 10, 11, 14, 15, 16, 17], "import": [3, 5], "simul": 3, "plot": [3, 4, 5, 6, 7, 9, 10, 13, 15, 16], "laplac": 3, "estim": [3, 7, 8, 12, 13], "dynam": [3, 6], "ekf": [3, 4, 5], "ukf": 3, "ghkf": 3, "learn": [4, 8, 15], "an": [4, 5, 6, 11, 12, 13, 14, 15], "mlp": [4, 15], "classifi": 4, "setup": [4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "creat": [4, 11, 17], "data": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17], "code": 4, "defin": 4, "train": [4, 9, 12], "cmgf": [4, 5], "fit": [5, 6, 9, 13], "ld": 5, "poisson": 5, "likelihood": [5, 6], "function": [5, 6, 9], "helper": [5, 6, 9], "make": [5, 7], "autoregress": 6, "demo": 6, "manual": 6, "construct": 6, "arhmm": 6, "sampl": [6, 7, 8, 9, 11, 16, 17], "emiss": 6, "from": [6, 7, 8, 11, 17], "log": [6, 9], "against": 6, "true": [6, 8], "comparison": [6, 14], "find": 6, "most": [6, 7], "like": [6, 7], "discret": 6, "new": 6, "conclus": [6, 7, 8, 9], "casino": [7, 8], "categor": 7, "vector": 7, "comput": [7, 12], "forward": 7, "algorithm": [7, 11], "distribut": 7, "smooth": [7, 11, 14], "backward": 7, "sequenc": [7, 14], "viterbi": 7, "gradient": 8, "descent": 8, "i": 8, "special": 8, "case": 8, "stochast": 8, "mini": 8, "batch": 8, "expect": 8, "maxim": 8, "compar": [8, 9], "curv": 8, "cross": 9, "valid": 9, "select": 9, "write": 9, "perform": [9, 11], "leav": 9, "one": 9, "out": 9, "individu": 9, "averag": 9, "likelihod": 9, "number": 9, "now": 9, "all": 9, "chosen": 9, "visual": 9, "differ": 9, "constraint": 9, "covari": 9, "kalman": [10, 11, 15, 16, 17], "offlin": [10, 11], "inferenec": 10, "result": [10, 13, 15], "track": [11, 16, 17], "object": [11, 17], "some": [11, 17], "interfac": 11, "underli": 11, "multipl": 11, "parallel": [11, 14], "bayesian": 12, "lg": [12, 13, 14], "hmc": 12, "synthet": 12, "baselin": 12, "method": 12, "em": [12, 13], "mle": 12, "implement": 12, "wrapper": 12, "call": 12, "posterior": 12, "over": 12, "subset": 12, "map": 13, "sgd": 13, "singl": 14, "time": 14, "extend": [15, 16, 17], "neural": 15, "network": 15, "1d": 16, "pendulum": 16, "unscent": [16, 17], "smoother": 16, "spiral": 17, "terminologi": 18}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"Documentation": [[0, "documentation"]], "State Space Model (Base class)": [[1, "state-space-model-base-class"]], "Parameters": [[1, "parameters"]], "Hidden Markov Model": [[1, "hidden-markov-model"]], "Abstract classes": [[1, "abstract-classes"]], "High-level models": [[1, "high-level-models"]], "Low-level inference": [[1, "low-level-inference"], [1, "id4"], [1, "id7"], [1, "id10"]], "Types": [[1, "types"], [1, "id5"], [1, "id8"], [1, "id11"]], "Linear Gaussian SSM": [[1, "linear-gaussian-ssm"]], "High-level class": [[1, "high-level-class"], [1, "id6"], [1, "id9"]], "Nonlinear Gaussian GSSM": [[1, "nonlinear-gaussian-gssm"]], "Generalized Gaussian GSSM": [[1, "generalized-gaussian-gssm"]], "Utilities": [[1, "utilities"]], "Welcome to DYNAMAX!": [[2, "welcome-to-dynamax"]], "Installation and Testing": [[2, "installation-and-testing"]], "What are state space models?": [[2, "what-are-state-space-models"]], "Quickstart": [[2, "quickstart"]], "Tutorials": [[2, "tutorials"]], "HMMs": [[2, null]], "Linear Gaussian SSMs": [[2, null]], "Nonlinear Gaussian SSMs": [[2, null]], "Generalized Gaussian SSMs": [[2, null]], "API documentation": [[2, "api-documentation"]], "API Documentation": [[2, null]], "Related Libraries": [[2, "related-libraries"]], "Indices and tables": [[2, "indices-and-tables"]], "Online Logistic Regression using conditional moments Gaussian filter": [[3, "online-logistic-regression-using-conditional-moments-gaussian-filter"]], "Imports": [[3, "imports"]], "Simulation and Plotting": [[3, "simulation-and-plotting"]], "Laplace Estimate": [[3, "laplace-estimate"]], "Dynamical model": [[3, "dynamical-model"]], "Online inference": [[3, "online-inference"], [10, "online-inference"], [15, "online-inference"]], "EKF": [[3, "ekf"]], "UKF": [[3, "ukf"]], "GHKF": [[3, "ghkf"]], "Online learning of an MLP Classifier using conditional moments Gaussian filter": [[4, "online-learning-of-an-mlp-classifier-using-conditional-moments-gaussian-filter"]], "Setup": [[4, "setup"], [6, "setup"], [7, "setup"], [8, "setup"], [9, "setup"], [10, "setup"], [11, "setup"], [12, "setup"], [13, "setup"], [14, "setup"], [15, "setup"], [16, "setup"], [17, "setup"]], "Create data": [[4, "create-data"]], "Plotting code": [[4, "plotting-code"]], "Define MLP": [[4, "define-mlp"]], "Online Training Using CMGF-EKF": [[4, "online-training-using-cmgf-ekf"]], "Fitting an LDS with Poisson Likelihood using conditional moments Gaussian filter": [[5, "fitting-an-lds-with-poisson-likelihood-using-conditional-moments-gaussian-filter"]], "Imports and Plotting Functions": [[5, "imports-and-plotting-functions"]], "Helper functions for plotting": [[5, "helper-functions-for-plotting"], [6, "helper-functions-for-plotting"], [9, "helper-functions-for-plotting"]], "Make data": [[5, "make-data"]], "Model": [[5, "model"], [10, "model"], [14, "model"]], "CMGF-EKF Inference": [[5, "cmgf-ekf-inference"]], "Autoregressive (AR) HMM Demo": [[6, "autoregressive-ar-hmm-demo"]], "Manually construct an ARHMM": [[6, "manually-construct-an-arhmm"]], "Plot dynamics functions": [[6, "plot-dynamics-functions"]], "Sample emissions from the ARHMM": [[6, "sample-emissions-from-the-arhmm"]], "Fit an ARHMM": [[6, "fit-an-arhmm"]], "Plot the log likelihoods against the true likelihood, for comparison": [[6, "plot-the-log-likelihoods-against-the-true-likelihood-for-comparison"]], "Find the most likely states": [[6, "find-the-most-likely-states"]], "Plot the true and inferred discrete states": [[6, "plot-the-true-and-inferred-discrete-states"]], "Sample new data from the fitted model": [[6, "sample-new-data-from-the-fitted-model"]], "Conclusion": [[6, "conclusion"], [7, "conclusion"], [8, "conclusion"], [9, "conclusion"]], "Casino HMM: Inference (state estimation)": [[7, "casino-hmm-inference-state-estimation"]], "Make a Categorical HMM": [[7, "make-a-categorical-hmm"]], "Sample data from model": [[7, "sample-data-from-model"]], "Vectorizing computation": [[7, "vectorizing-computation"]], "Filtering (forwards algorithm)": [[7, "filtering-forwards-algorithm"]], "Plot the filtering distribution": [[7, "plot-the-filtering-distribution"]], "Smoothing (forwards-backwards algorithm)": [[7, "smoothing-forwards-backwards-algorithm"]], "Most likely state sequence (Viterbi algorithm)": [[7, "most-likely-state-sequence-viterbi-algorithm"]], "Casino HMM: Learning (parameter estimation)": [[8, "casino-hmm-learning-parameter-estimation"]], "Sample data from true model": [[8, "sample-data-from-true-model"]], "Learning with Gradient Descent": [[8, "learning-with-gradient-descent"]], "Gradient descent is a special case of stochastic gradient descent": [[8, "gradient-descent-is-a-special-case-of-stochastic-gradient-descent"]], "Stochastic Gradient Descent with Mini-Batches": [[8, "stochastic-gradient-descent-with-mini-batches"]], "Expectation-Maximization": [[8, "expectation-maximization"]], "Compare the learning curves": [[8, "compare-the-learning-curves"]], "Gaussian HMM: Cross-validation and Model Selection": [[9, "gaussian-hmm-cross-validation-and-model-selection"]], "Generate sample data": [[9, "generate-sample-data"]], "Write a helper function to perform leave-one-out cross-validation": [[9, "write-a-helper-function-to-perform-leave-one-out-cross-validation"]], "Plot the individual and average validation log likelihods as a function of number of states": [[9, "plot-the-individual-and-average-validation-log-likelihods-as-a-function-of-number-of-states"]], "Now fit a model to all the training data using the chosen number of states": [[9, "now-fit-a-model-to-all-the-training-data-using-the-chosen-number-of-states"]], "Visualize the fitted model": [[9, "visualize-the-fitted-model"]], "Comparing Gaussian HMMs with different constraints on the covariance": [[9, "comparing-gaussian-hmms-with-different-constraints-on-the-covariance"]], "Online linear regression using Kalman filtering": [[10, "online-linear-regression-using-kalman-filtering"]], "Data": [[10, "data"], [13, "data"], [15, "data"]], "Offline inferenece": [[10, "offline-inferenece"]], "Plot results": [[10, "plot-results"], [13, "plot-results"], [15, "plot-results"]], "Tracking an object using the Kalman filter": [[11, "tracking-an-object-using-the-kalman-filter"]], "Create the model": [[11, "create-the-model"], [17, "create-the-model"]], "Sample some data from the model": [[11, "sample-some-data-from-the-model"], [17, "sample-some-data-from-the-model"]], "Perform online filtering": [[11, "perform-online-filtering"]], "Perform offline smoothing": [[11, "perform-offline-smoothing"]], "Low-level interface to the underlying inference algorithms": [[11, "low-level-interface-to-the-underlying-inference-algorithms"]], "Tracking multiple objects in parallel": [[11, "tracking-multiple-objects-in-parallel"]], "Bayesian parameter estimation for an LG-SSM using HMC": [[12, "bayesian-parameter-estimation-for-an-lg-ssm-using-hmc"]], "Generate synthetic training data": [[12, "generate-synthetic-training-data"]], "Baseline method: use EM to compute MLE": [[12, "baseline-method-use-em-to-compute-mle"]], "Implement HMC wrapper": [[12, "implement-hmc-wrapper"]], "Call HMC": [[12, "call-hmc"]], "Use HMC to infer posterior over a subset of the parameters": [[12, "use-hmc-to-infer-posterior-over-a-subset-of-the-parameters"]], "MAP parameter estimation for an LG-SSM using EM and SGD": [[13, "map-parameter-estimation-for-an-lg-ssm-using-em-and-sgd"]], "Fit with EM": [[13, "fit-with-em"]], "Fit with SGD": [[13, "fit-with-sgd"]], "Parallel filtering and smoothing in an LG-SSM": [[14, "parallel-filtering-and-smoothing-in-an-lg-ssm"]], "Test parallel inference on a single sequence": [[14, "test-parallel-inference-on-a-single-sequence"]], "Timing comparison": [[14, "timing-comparison"]], "Online learning for an MLP using extended Kalman filtering": [[15, "online-learning-for-an-mlp-using-extended-kalman-filtering"]], "Neural network": [[15, "neural-network"]], "Tracking a 1d pendulum using Extended / Unscented Kalman filter/ smoother": [[16, "tracking-a-1d-pendulum-using-extended-unscented-kalman-filter-smoother"]], "Sample data and plot it": [[16, "sample-data-and-plot-it"]], "Extended Kalman Filter / smoother": [[16, "extended-kalman-filter-smoother"]], "Unscented Kalman Filter / smoother": [[16, "unscented-kalman-filter-smoother"]], "Tracking a spiraling object using the extended / unscented Kalman filter": [[17, "tracking-a-spiraling-object-using-the-extended-unscented-kalman-filter"]], "Extended Kalman filter": [[17, "extended-kalman-filter"]], "Unscented Kalman filter": [[17, "unscented-kalman-filter"]], "Terminology for types": [[18, "terminology-for-types"]]}, "indexentries": {"bernoullihmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.BernoulliHMM"]], "categoricalhmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.CategoricalHMM"]], "categoricalregressionhmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.CategoricalRegressionHMM"]], "diagonalgaussianhmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.DiagonalGaussianHMM"]], "diagonalgaussianmixturehmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.DiagonalGaussianMixtureHMM"]], "gammahmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.GammaHMM"]], "gaussianhmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.GaussianHMM"]], "gaussianmixturehmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.GaussianMixtureHMM"]], "generalizedgaussianssm (class in dynamax.generalized_gaussian_ssm)": [[1, "dynamax.generalized_gaussian_ssm.GeneralizedGaussianSSM"]], "hmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.HMM"]], "hmmemissions (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.HMMEmissions"]], "hmminitialstate (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.HMMInitialState"]], "hmmparameterset (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.HMMParameterSet"]], "hmmposterior (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.HMMPosterior"]], "hmmposteriorfiltered (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.HMMPosteriorFiltered"]], "hmmpropertyset (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.HMMPropertySet"]], "hmmtransitions (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.HMMTransitions"]], "linearautoregressivehmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.LinearAutoregressiveHMM"]], "lineargaussianssm (class in dynamax.linear_gaussian_ssm)": [[1, "dynamax.linear_gaussian_ssm.LinearGaussianSSM"]], "linearregressionhmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.LinearRegressionHMM"]], "logisticregressionhmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.LogisticRegressionHMM"]], "lowrankgaussianhmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.LowRankGaussianHMM"]], "multinomialhmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.MultinomialHMM"]], "nonlineargaussianssm (class in dynamax.nonlinear_gaussian_ssm)": [[1, "dynamax.nonlinear_gaussian_ssm.NonlinearGaussianSSM"]], "parameterproperties (class in dynamax.parameters)": [[1, "dynamax.parameters.ParameterProperties"]], "parameterset (class in dynamax.parameters)": [[1, "dynamax.parameters.ParameterSet"]], "paramsggssm (class in dynamax.generalized_gaussian_ssm)": [[1, "dynamax.generalized_gaussian_ssm.ParamsGGSSM"]], "paramslgssm (class in dynamax.linear_gaussian_ssm)": [[1, "dynamax.linear_gaussian_ssm.ParamsLGSSM"]], "paramslgssmdynamics (class in dynamax.linear_gaussian_ssm)": [[1, "dynamax.linear_gaussian_ssm.ParamsLGSSMDynamics"]], "paramslgssmemissions (class in dynamax.linear_gaussian_ssm)": [[1, "dynamax.linear_gaussian_ssm.ParamsLGSSMEmissions"]], "paramslgssminitial (class in dynamax.linear_gaussian_ssm)": [[1, "dynamax.linear_gaussian_ssm.ParamsLGSSMInitial"]], "paramsnlgssm (class in dynamax.nonlinear_gaussian_ssm)": [[1, "dynamax.nonlinear_gaussian_ssm.ParamsNLGSSM"]], "poissonhmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.PoissonHMM"]], "posteriorgssmfiltered (class in dynamax.linear_gaussian_ssm)": [[1, "dynamax.linear_gaussian_ssm.PosteriorGSSMFiltered"]], "posteriorgssmsmoothed (class in dynamax.linear_gaussian_ssm)": [[1, "dynamax.linear_gaussian_ssm.PosteriorGSSMSmoothed"]], "propertyset (class in dynamax.parameters)": [[1, "dynamax.parameters.PropertySet"]], "ssm (class in dynamax.ssm)": [[1, "dynamax.ssm.SSM"]], "sharedcovariancegaussianhmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.SharedCovarianceGaussianHMM"]], "sphericalgaussianhmm (class in dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.SphericalGaussianHMM"]], "collect_suff_stats() (hmmemissions method)": [[1, "dynamax.hidden_markov_model.HMMEmissions.collect_suff_stats"]], "collect_suff_stats() (hmminitialstate method)": [[1, "dynamax.hidden_markov_model.HMMInitialState.collect_suff_stats"]], "collect_suff_stats() (hmmtransitions method)": [[1, "dynamax.hidden_markov_model.HMMTransitions.collect_suff_stats"]], "compute_inputs() (linearautoregressivehmm method)": [[1, "dynamax.hidden_markov_model.LinearAutoregressiveHMM.compute_inputs"]], "conditional_moments_gaussian_filter() (in module dynamax.generalized_gaussian_ssm)": [[1, "dynamax.generalized_gaussian_ssm.conditional_moments_gaussian_filter"]], "conditional_moments_gaussian_smoother() (in module dynamax.generalized_gaussian_ssm)": [[1, "dynamax.generalized_gaussian_ssm.conditional_moments_gaussian_smoother"]], "distribution() (hmmemissions method)": [[1, "dynamax.hidden_markov_model.HMMEmissions.distribution"]], "distribution() (hmminitialstate method)": [[1, "dynamax.hidden_markov_model.HMMInitialState.distribution"]], "distribution() (hmmtransitions method)": [[1, "dynamax.hidden_markov_model.HMMTransitions.distribution"]], "e_step() (hmm method)": [[1, "dynamax.hidden_markov_model.HMM.e_step"]], "e_step() (lineargaussianssm method)": [[1, "dynamax.linear_gaussian_ssm.LinearGaussianSSM.e_step"]], "e_step() (ssm method)": [[1, "dynamax.ssm.SSM.e_step"]], "emission_distribution() (generalizedgaussianssm method)": [[1, "dynamax.generalized_gaussian_ssm.GeneralizedGaussianSSM.emission_distribution"]], "emission_distribution() (hmm method)": [[1, "dynamax.hidden_markov_model.HMM.emission_distribution"]], "emission_distribution() (lineargaussianssm method)": [[1, "dynamax.linear_gaussian_ssm.LinearGaussianSSM.emission_distribution"]], "emission_distribution() (nonlineargaussianssm method)": [[1, "dynamax.nonlinear_gaussian_ssm.NonlinearGaussianSSM.emission_distribution"]], "emission_distribution() (ssm method)": [[1, "dynamax.ssm.SSM.emission_distribution"]], "emission_shape (generalizedgaussianssm property)": [[1, "dynamax.generalized_gaussian_ssm.GeneralizedGaussianSSM.emission_shape"]], "emission_shape (hmm property)": [[1, "dynamax.hidden_markov_model.HMM.emission_shape"]], "emission_shape (hmmemissions property)": [[1, "dynamax.hidden_markov_model.HMMEmissions.emission_shape"]], "emission_shape (lineargaussianssm property)": [[1, "dynamax.linear_gaussian_ssm.LinearGaussianSSM.emission_shape"]], "emission_shape (nonlineargaussianssm property)": [[1, "dynamax.nonlinear_gaussian_ssm.NonlinearGaussianSSM.emission_shape"]], "emission_shape (ssm property)": [[1, "dynamax.ssm.SSM.emission_shape"]], "extended_kalman_filter() (in module dynamax.nonlinear_gaussian_ssm)": [[1, "dynamax.nonlinear_gaussian_ssm.extended_kalman_filter"]], "extended_kalman_smoother() (in module dynamax.nonlinear_gaussian_ssm)": [[1, "dynamax.nonlinear_gaussian_ssm.extended_kalman_smoother"]], "filter() (hmm method)": [[1, "dynamax.hidden_markov_model.HMM.filter"]], "filter() (lineargaussianssm method)": [[1, "dynamax.linear_gaussian_ssm.LinearGaussianSSM.filter"]], "filter() (ssm method)": [[1, "dynamax.ssm.SSM.filter"]], "find_permutation() (in module dynamax.utils.utils)": [[1, "dynamax.utils.utils.find_permutation"]], "fit_em() (ssm method)": [[1, "dynamax.ssm.SSM.fit_em"]], "fit_sgd() (ssm method)": [[1, "dynamax.ssm.SSM.fit_sgd"]], "hmm_filter() (in module dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.hmm_filter"]], "hmm_fixed_lag_smoother() (in module dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.hmm_fixed_lag_smoother"]], "hmm_posterior_mode() (in module dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.hmm_posterior_mode"]], "hmm_posterior_sample() (in module dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.hmm_posterior_sample"]], "hmm_smoother() (in module dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.hmm_smoother"]], "hmm_two_filter_smoother() (in module dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.hmm_two_filter_smoother"]], "initial_distribution() (generalizedgaussianssm method)": [[1, "dynamax.generalized_gaussian_ssm.GeneralizedGaussianSSM.initial_distribution"]], "initial_distribution() (hmm method)": [[1, "dynamax.hidden_markov_model.HMM.initial_distribution"]], "initial_distribution() (lineargaussianssm method)": [[1, "dynamax.linear_gaussian_ssm.LinearGaussianSSM.initial_distribution"]], "initial_distribution() (nonlineargaussianssm method)": [[1, "dynamax.nonlinear_gaussian_ssm.NonlinearGaussianSSM.initial_distribution"]], "initial_distribution() (ssm method)": [[1, "dynamax.ssm.SSM.initial_distribution"]], "initialize() (bernoullihmm method)": [[1, "dynamax.hidden_markov_model.BernoulliHMM.initialize"]], "initialize() (categoricalhmm method)": [[1, "dynamax.hidden_markov_model.CategoricalHMM.initialize"]], "initialize() (categoricalregressionhmm method)": [[1, "dynamax.hidden_markov_model.CategoricalRegressionHMM.initialize"]], "initialize() (diagonalgaussianhmm method)": [[1, "dynamax.hidden_markov_model.DiagonalGaussianHMM.initialize"]], "initialize() (diagonalgaussianmixturehmm method)": [[1, "dynamax.hidden_markov_model.DiagonalGaussianMixtureHMM.initialize"]], "initialize() (gammahmm method)": [[1, "dynamax.hidden_markov_model.GammaHMM.initialize"]], "initialize() (gaussianhmm method)": [[1, "dynamax.hidden_markov_model.GaussianHMM.initialize"]], "initialize() (gaussianmixturehmm method)": [[1, "dynamax.hidden_markov_model.GaussianMixtureHMM.initialize"]], "initialize() (hmmemissions method)": [[1, "dynamax.hidden_markov_model.HMMEmissions.initialize"]], "initialize() (hmminitialstate method)": [[1, "dynamax.hidden_markov_model.HMMInitialState.initialize"]], "initialize() (hmmtransitions method)": [[1, "dynamax.hidden_markov_model.HMMTransitions.initialize"]], "initialize() (linearautoregressivehmm method)": [[1, "dynamax.hidden_markov_model.LinearAutoregressiveHMM.initialize"]], "initialize() (lineargaussianssm method)": [[1, "dynamax.linear_gaussian_ssm.LinearGaussianSSM.initialize"]], "initialize() (linearregressionhmm method)": [[1, "dynamax.hidden_markov_model.LinearRegressionHMM.initialize"]], "initialize() (logisticregressionhmm method)": [[1, "dynamax.hidden_markov_model.LogisticRegressionHMM.initialize"]], "initialize() (lowrankgaussianhmm method)": [[1, "dynamax.hidden_markov_model.LowRankGaussianHMM.initialize"]], "initialize() (multinomialhmm method)": [[1, "dynamax.hidden_markov_model.MultinomialHMM.initialize"]], "initialize() (poissonhmm method)": [[1, "dynamax.hidden_markov_model.PoissonHMM.initialize"]], "initialize() (sharedcovariancegaussianhmm method)": [[1, "dynamax.hidden_markov_model.SharedCovarianceGaussianHMM.initialize"]], "initialize() (sphericalgaussianhmm method)": [[1, "dynamax.hidden_markov_model.SphericalGaussianHMM.initialize"]], "initialize_m_step_state() (hmm method)": [[1, "dynamax.hidden_markov_model.HMM.initialize_m_step_state"]], "initialize_m_step_state() (hmmemissions method)": [[1, "dynamax.hidden_markov_model.HMMEmissions.initialize_m_step_state"]], "initialize_m_step_state() (hmminitialstate method)": [[1, "dynamax.hidden_markov_model.HMMInitialState.initialize_m_step_state"]], "initialize_m_step_state() (hmmtransitions method)": [[1, "dynamax.hidden_markov_model.HMMTransitions.initialize_m_step_state"]], "inputs_shape (lineargaussianssm property)": [[1, "dynamax.linear_gaussian_ssm.LinearGaussianSSM.inputs_shape"]], "inputs_shape (nonlineargaussianssm property)": [[1, "dynamax.nonlinear_gaussian_ssm.NonlinearGaussianSSM.inputs_shape"]], "inputs_shape (ssm property)": [[1, "dynamax.ssm.SSM.inputs_shape"]], "iterated_conditional_moments_gaussian_filter() (in module dynamax.generalized_gaussian_ssm)": [[1, "dynamax.generalized_gaussian_ssm.iterated_conditional_moments_gaussian_filter"]], "iterated_conditional_moments_gaussian_smoother() (in module dynamax.generalized_gaussian_ssm)": [[1, "dynamax.generalized_gaussian_ssm.iterated_conditional_moments_gaussian_smoother"]], "iterated_extended_kalman_filter() (in module dynamax.nonlinear_gaussian_ssm)": [[1, "dynamax.nonlinear_gaussian_ssm.iterated_extended_kalman_filter"]], "iterated_extended_kalman_smoother() (in module dynamax.nonlinear_gaussian_ssm)": [[1, "dynamax.nonlinear_gaussian_ssm.iterated_extended_kalman_smoother"]], "lgssm_filter() (in module dynamax.linear_gaussian_ssm)": [[1, "dynamax.linear_gaussian_ssm.lgssm_filter"]], "lgssm_posterior_sample() (in module dynamax.linear_gaussian_ssm)": [[1, "dynamax.linear_gaussian_ssm.lgssm_posterior_sample"]], "lgssm_smoother() (in module dynamax.linear_gaussian_ssm)": [[1, "dynamax.linear_gaussian_ssm.lgssm_smoother"]], "log_prior() (hmm method)": [[1, "dynamax.hidden_markov_model.HMM.log_prior"]], "log_prior() (hmmemissions method)": [[1, "dynamax.hidden_markov_model.HMMEmissions.log_prior"]], "log_prior() (hmminitialstate method)": [[1, "dynamax.hidden_markov_model.HMMInitialState.log_prior"]], "log_prior() (hmmtransitions method)": [[1, "dynamax.hidden_markov_model.HMMTransitions.log_prior"]], "log_prior() (ssm method)": [[1, "dynamax.ssm.SSM.log_prior"]], "log_prob() (ssm method)": [[1, "dynamax.ssm.SSM.log_prob"]], "m_step() (hmm method)": [[1, "dynamax.hidden_markov_model.HMM.m_step"]], "m_step() (hmmemissions method)": [[1, "dynamax.hidden_markov_model.HMMEmissions.m_step"]], "m_step() (hmminitialstate method)": [[1, "dynamax.hidden_markov_model.HMMInitialState.m_step"]], "m_step() (hmmtransitions method)": [[1, "dynamax.hidden_markov_model.HMMTransitions.m_step"]], "m_step() (lineargaussianssm method)": [[1, "dynamax.linear_gaussian_ssm.LinearGaussianSSM.m_step"]], "m_step() (ssm method)": [[1, "dynamax.ssm.SSM.m_step"]], "marginal_log_prob() (hmm method)": [[1, "dynamax.hidden_markov_model.HMM.marginal_log_prob"]], "marginal_log_prob() (lineargaussianssm method)": [[1, "dynamax.linear_gaussian_ssm.LinearGaussianSSM.marginal_log_prob"]], "marginal_log_prob() (ssm method)": [[1, "dynamax.ssm.SSM.marginal_log_prob"]], "parallel_hmm_filter() (in module dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.parallel_hmm_filter"]], "parallel_hmm_smoother() (in module dynamax.hidden_markov_model)": [[1, "dynamax.hidden_markov_model.parallel_hmm_smoother"]], "posterior_predictive() (lineargaussianssm method)": [[1, "dynamax.linear_gaussian_ssm.LinearGaussianSSM.posterior_predictive"]], "sample() (linearautoregressivehmm method)": [[1, "dynamax.hidden_markov_model.LinearAutoregressiveHMM.sample"]], "sample() (ssm method)": [[1, "dynamax.ssm.SSM.sample"]], "smoother() (hmm method)": [[1, "dynamax.hidden_markov_model.HMM.smoother"]], "smoother() (lineargaussianssm method)": [[1, "dynamax.linear_gaussian_ssm.LinearGaussianSSM.smoother"]], "smoother() (ssm method)": [[1, "dynamax.ssm.SSM.smoother"]], "transition_distribution() (generalizedgaussianssm method)": [[1, "dynamax.generalized_gaussian_ssm.GeneralizedGaussianSSM.transition_distribution"]], "transition_distribution() (hmm method)": [[1, "dynamax.hidden_markov_model.HMM.transition_distribution"]], "transition_distribution() (lineargaussianssm method)": [[1, "dynamax.linear_gaussian_ssm.LinearGaussianSSM.transition_distribution"]], "transition_distribution() (nonlineargaussianssm method)": [[1, "dynamax.nonlinear_gaussian_ssm.NonlinearGaussianSSM.transition_distribution"]], "transition_distribution() (ssm method)": [[1, "dynamax.ssm.SSM.transition_distribution"]], "unscented_kalman_filter() (in module dynamax.nonlinear_gaussian_ssm)": [[1, "dynamax.nonlinear_gaussian_ssm.unscented_kalman_filter"]], "unscented_kalman_smoother() (in module dynamax.nonlinear_gaussian_ssm)": [[1, "dynamax.nonlinear_gaussian_ssm.unscented_kalman_smoother"]]}}) \ No newline at end of file