{"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/particle-semi-implicit-variational-inference","title":"Particle Semi-Implicit Variational Inference","arxiv_id":"2407.00649","date":"2024-06-30","proceeding":null,"authors":["Jen Ning Lim","Adam M. Johansen"],"abstract":"Semi-implicit variational inference (SIVI) enriches the expressiveness of variational families by utilizing a kernel and a mixing distribution to hierarchically define the variational distribution. Existing SIVI methods parameterize the mixing distribution using implicit distributions, leading to intractable variational densities. As a result, directly maximizing the evidence lower bound (ELBO) is not possible, so they resort to one of the following: optimizing bounds on the ELBO, employing costly inner-loop Markov chain Monte Carlo runs, or solving minimax objectives. In this paper, we propose a novel method for SIVI called Particle Variational Inference (PVI) which employs empirical measures to approximate the optimal mixing distributions characterized as the minimizer of a free energy functional. PVI arises naturally as a particle approximation of a Euclidean--Wasserstein gradient flow and, unlike prior works, it directly optimizes the ELBO whilst making no parametric assumption about the mixing distribution. Our empirical results demonstrate that PVI performs favourably compared to other SIVI methods across various tasks. Moreover, we provide a theoretical analysis of the behaviour of the gradient flow of a related free energy functional: establishing the existence and uniqueness of solutions as well as propagation of chaos results.","url_abs":"https://arxiv.org/abs/2407.00649v3","url_pdf":"https://arxiv.org/pdf/2407.00649v3.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":"particle-semi-implicit-variational-inference","repo_url":"https://github.com/jenninglim/pvi","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"jax","reach":null},{"paper_slug":"particle-semi-implicit-variational-inference","repo_url":"https://github.com/longinyu/sivism","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"variational-inference","task_name":"Variational Inference"}],"methods":[{"method_slug":"variational-inference","method_name":"Variational Inference"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2407.00649","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2407.00649"}},"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/jenninglim/pvi","reach":null},{"provenance":"deterministic:regex_extraction","url":"https://github.com/longinYu/SIVISM","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/longinyu/sivism","reach":{"status":"ok"}}],"summary":{"ran":3,"ran_fixture":1,"unverified":7},"by_repo_kind":{"official":{"samples":11,"ran":4,"repositories":2}},"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":3,"samples":[{"code_sha256_prefix":"2bbf1397f3429464","entry":"PID","repo":"jenninglim/pvi","repo_kind":"official","path":"src/trainers/pvi.py","file_url":"https://github.com/jenninglim/pvi/blob/HEAD/src/trainers/pvi.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2bbf1397f3429464"}},{"code_sha256_prefix":"5ee9582619fa14ed","entry":"PIDOpt","repo":"jenninglim/pvi","repo_kind":"official","path":"src/trainers/pvi.py","file_url":"https://github.com/jenninglim/pvi/blob/HEAD/src/trainers/pvi.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5ee9582619fa14ed"}},{"code_sha256_prefix":"d3956a1572644a78","entry":"PIDParameters","repo":"jenninglim/pvi","repo_kind":"official","path":"src/trainers/pvi.py","file_url":"https://github.com/jenninglim/pvi/blob/HEAD/src/trainers/pvi.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d3956a1572644a78"}},{"code_sha256_prefix":"1f9e355031d1ccd1","entry":"density_estimation","repo":"longinYu/SIVISM","repo_kind":"official","path":"utils/density_estimation.py","file_url":"https://github.com/longinYu/SIVISM/blob/HEAD/utils/density_estimation.py","link_basis":"plan_row","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":"1f9e355031d1ccd1"}},{"code_sha256_prefix":"7451ba00a6821b26","entry":"ID","repo":"jenninglim/pvi","repo_kind":"official","path":"src/trainers/pvi.py","file_url":"https://github.com/jenninglim/pvi/blob/HEAD/src/trainers/pvi.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7451ba00a6821b26"}},{"code_sha256_prefix":"26762bfc7db6f0e4","entry":"PIDCarry","repo":"jenninglim/pvi","repo_kind":"official","path":"src/trainers/pvi.py","file_url":"https://github.com/jenninglim/pvi/blob/HEAD/src/trainers/pvi.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"26762bfc7db6f0e4"}},{"code_sha256_prefix":"dd340ac35b3291e4","entry":"SGLD_lr","repo":"longinYu/SIVISM","repo_kind":"official","path":"sgld_lr.py","file_url":"https://github.com/longinYu/SIVISM/blob/HEAD/sgld_lr.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":"dd340ac35b3291e4"}},{"code_sha256_prefix":"0e8133c37fe32af2","entry":"SGLD_toy","repo":"longinYu/SIVISM","repo_kind":"official","path":"sgld_toyexample.py","file_url":"https://github.com/longinYu/SIVISM/blob/HEAD/sgld_toyexample.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":"0e8133c37fe32af2"}},{"code_sha256_prefix":"03bec2405a6becc0","entry":"Target","repo":"jenninglim/pvi","repo_kind":"official","path":"src/trainers/pvi.py","file_url":"https://github.com/jenninglim/pvi/blob/HEAD/src/trainers/pvi.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"03bec2405a6becc0"}},{"code_sha256_prefix":"8c022fb203bde4f5","entry":"de_particle_grad","repo":"jenninglim/pvi","repo_kind":"official","path":"src/trainers/pvi.py","file_url":"https://github.com/jenninglim/pvi/blob/HEAD/src/trainers/pvi.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8c022fb203bde4f5"}},{"code_sha256_prefix":"a30f6968ced8a8c9","entry":"de_particle_step","repo":"jenninglim/pvi","repo_kind":"official","path":"src/trainers/pvi.py","file_url":"https://github.com/jenninglim/pvi/blob/HEAD/src/trainers/pvi.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a30f6968ced8a8c9"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}