{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/online-variational-filtering-and-parameter","title":"Online Variational Filtering and Parameter Learning","arxiv_id":"2110.13549","date":"2021-10-26","proceeding":"NeurIPS 2021 12","authors":["Andrew Campbell","Yuyang Shi","Tom Rainforth","Arnaud Doucet"],"abstract":"We present a variational method for online state estimation and parameter learning in state-space models (SSMs), a ubiquitous class of latent variable models for sequential data. As per standard batch variational techniques, we use stochastic gradients to simultaneously optimize a lower bound on the log evidence with respect to both model parameters and a variational approximation of the states' posterior distribution. However, unlike existing approaches, our method is able to operate in an entirely online manner, such that historic observations do not require revisitation after being incorporated and the cost of updates at each time step remains constant, despite the growing dimensionality of the joint posterior distribution of the states. This is achieved by utilizing backward decompositions of this joint posterior distribution and of its variational approximation, combined with Bellman-type recursions for the evidence lower bound and its gradients. We demonstrate the performance of this methodology across several examples, including high-dimensional SSMs and sequential Variational Auto-Encoders.","url_abs":"https://arxiv.org/abs/2110.13549v2","url_pdf":"https://arxiv.org/pdf/2110.13549v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"online-variational-filtering-and-parameter","repo_url":"https://github.com/andrew-cr/online_var_fil","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"state-estimation","task_name":"State Estimation"},{"task_slug":"state-space-models","task_name":"State Space Models"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2110.13549","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2110.13549"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"deterministic:regex_extraction","url":"https://github.com/andrewcr/online_var_fil","reach":{"status":"gone","observed_at":"2026-09-17","how":"tree_404+repo_404"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/andrew-cr/online_var_fil","reach":null}],"summary":{"ran":1,"ran_draft_wrong":1,"ran_fixture":1,"unverified":2},"by_repo_kind":{"official":{"samples":5,"ran":3,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":5,"samples":[{"code_sha256_prefix":"53892da1b3aad021","entry":"NonAmortizedModelBase","repo":"andrew-cr/online_var_fil","repo_kind":"official","path":"core/nonamortised_models.py","file_url":"https://github.com/andrew-cr/online_var_fil/blob/HEAD/core/nonamortised_models.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"53892da1b3aad021"}},{"code_sha256_prefix":"dd2fdd24fcb5cdc7","entry":"gaussian_posterior","repo":"andrew-cr/online_var_fil","repo_kind":"official","path":"core/nonamortised_models.py","file_url":"https://github.com/andrew-cr/online_var_fil/blob/HEAD/core/nonamortised_models.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"dd2fdd24fcb5cdc7"}},{"code_sha256_prefix":"59d11c5d74faeed5","entry":"sample_cov","repo":"andrew-cr/online_var_fil","repo_kind":"official","path":"core/nonamortised_models.py","file_url":"https://github.com/andrew-cr/online_var_fil/blob/HEAD/core/nonamortised_models.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"59d11c5d74faeed5"}},{"code_sha256_prefix":"896bac2f48b06533","entry":"TimeStore","repo":"andrew-cr/online_var_fil","repo_kind":"official","path":"core/nonamortised_models.py","file_url":"https://github.com/andrew-cr/online_var_fil/blob/HEAD/core/nonamortised_models.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"896bac2f48b06533"}},{"code_sha256_prefix":"a5f643844d544dca","entry":"VJF_Model","repo":"andrew-cr/online_var_fil","repo_kind":"official","path":"core/nonamortised_models.py","file_url":"https://github.com/andrew-cr/online_var_fil/blob/HEAD/core/nonamortised_models.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a5f643844d544dca"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}