{"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/optimal-variance-control-of-the-score","title":"Optimal Variance Control of the Score Function Gradient Estimator for Importance Weighted Bounds","arxiv_id":"2008.01998","date":"2020-08-05","proceeding":null,"authors":["Valentin Liévin","Andrea Dittadi","Anders Christensen","Ole Winther"],"abstract":"This paper introduces novel results for the score function gradient estimator of the importance weighted variational bound (IWAE). We prove that in the limit of large $K$ (number of importance samples) one can choose the control variate such that the Signal-to-Noise ratio (SNR) of the estimator grows as $\\sqrt{K}$. This is in contrast to the standard pathwise gradient estimator where the SNR decreases as $1/\\sqrt{K}$. Based on our theoretical findings we develop a novel control variate that extends on VIMCO. Empirically, for the training of both continuous and discrete generative models, the proposed method yields superior variance reduction, resulting in an SNR for IWAE that increases with $K$ without relying on the reparameterization trick. The novel estimator is competitive with state-of-the-art reparameterization-free gradient estimators such as Reweighted Wake-Sleep (RWS) and the thermodynamic variational objective (TVO) when training generative models.","url_abs":"https://arxiv.org/abs/2008.01998v2","url_pdf":"https://arxiv.org/pdf/2008.01998v2.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":"optimal-variance-control-of-the-score","repo_url":"https://github.com/vlievin/ovis","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2008.01998","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2008.01998"}},"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":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/vlievin/ovis","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":6},"by_repo_kind":{"official":{"samples":6,"ran":0,"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":0,"samples":[{"code_sha256_prefix":"04c14f45577151b4","entry":"H","repo":"vlievin/ovis","repo_kind":"official","path":"ovis/models/template.py","file_url":"https://github.com/vlievin/ovis/blob/HEAD/ovis/models/template.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":"04c14f45577151b4"}},{"code_sha256_prefix":"ab7404dcc5622e61","entry":"cosine","repo":"vlievin/ovis","repo_kind":"official","path":"ovis/analysis/utils.py","file_url":"https://github.com/vlievin/ovis/blob/HEAD/ovis/analysis/utils.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":"ab7404dcc5622e61"}},{"code_sha256_prefix":"f6b66fec0aad6e85","entry":"covariance","repo":"vlievin/ovis","repo_kind":"official","path":"ovis/analysis/utils.py","file_url":"https://github.com/vlievin/ovis/blob/HEAD/ovis/analysis/utils.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":"f6b66fec0aad6e85"}},{"code_sha256_prefix":"dcd83985dc94ab49","entry":"init_mlp","repo":"vlievin/ovis","repo_kind":"official","path":"ovis/models/tvo_sbm.py","file_url":"https://github.com/vlievin/ovis/blob/HEAD/ovis/models/tvo_sbm.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":"dcd83985dc94ab49"}},{"code_sha256_prefix":"600b22cc5cb915d2","entry":"init_normal_mlp","repo":"vlievin/ovis","repo_kind":"official","path":"ovis/models/tvo_gaussian.py","file_url":"https://github.com/vlievin/ovis/blob/HEAD/ovis/models/tvo_gaussian.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":"600b22cc5cb915d2"}},{"code_sha256_prefix":"290d2878c24757d5","entry":"percentile","repo":"vlievin/ovis","repo_kind":"official","path":"ovis/analysis/utils.py","file_url":"https://github.com/vlievin/ovis/blob/HEAD/ovis/analysis/utils.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":"290d2878c24757d5"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}