{"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/latent-state-marginalization-as-a-low-cost","title":"Latent State Marginalization as a Low-cost Approach for Improving Exploration","arxiv_id":"2210.00999","date":"2022-10-03","proceeding":null,"authors":["Dinghuai Zhang","Aaron Courville","Yoshua Bengio","Qinqing Zheng","Amy Zhang","Ricky T. Q. Chen"],"abstract":"While the maximum entropy (MaxEnt) reinforcement learning (RL) framework -- often touted for its exploration and robustness capabilities -- is usually motivated from a probabilistic perspective, the use of deep probabilistic models has not gained much traction in practice due to their inherent complexity. In this work, we propose the adoption of latent variable policies within the MaxEnt framework, which we show can provably approximate any policy distribution, and additionally, naturally emerges under the use of world models with a latent belief state. We discuss why latent variable policies are difficult to train, how naive approaches can fail, then subsequently introduce a series of improvements centered around low-cost marginalization of the latent state, allowing us to make full use of the latent state at minimal additional cost. We instantiate our method under the actor-critic framework, marginalizing both the actor and critic. The resulting algorithm, referred to as Stochastic Marginal Actor-Critic (SMAC), is simple yet effective. We experimentally validate our method on continuous control tasks, showing that effective marginalization can lead to better exploration and more robust training. Our implementation is open sourced at https://github.com/zdhNarsil/Stochastic-Marginal-Actor-Critic.","url_abs":"https://arxiv.org/abs/2210.00999v2","url_pdf":"https://arxiv.org/pdf/2210.00999v2.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":"latent-state-marginalization-as-a-low-cost","repo_url":"https://github.com/zdhnarsil/stochastic-marginal-actor-critic","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"continuous-control","task_name":"Continuous Control"},{"task_slug":"reinforcement-learning-1","task_name":"Reinforcement Learning (RL)"},{"task_slug":"smac","task_name":"SMAC"},{"task_slug":"smac-1","task_name":"SMAC+"},{"task_slug":"continuous-control","task_name":"continuous-control"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2210.00999","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2210.00999"}},"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/zdhnarsil/stochastic-marginal-actor-critic","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":1,"ran_honours":1,"unverified":4},"by_repo_kind":{"official":{"samples":5,"ran":1,"repositories":1},"community":{"samples":1,"ran":1,"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":1,"samples":[{"code_sha256_prefix":"43dccae99adf8546","entry":"parse_smacv2_distribution","repo":"devindeng94/smac-hard","repo_kind":"community","path":"previous-versions/v1/on-policy-smac-hard/onpolicy/scripts/train/train_smac.py","file_url":"https://github.com/devindeng94/smac-hard/blob/HEAD/previous-versions/v1/on-policy-smac-hard/onpolicy/scripts/train/train_smac.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"43dccae99adf8546"}},{"code_sha256_prefix":"13bc23344ef8bd53","entry":"safe_log","repo":"zdhnarsil/stochastic-marginal-actor-critic","repo_kind":"official","path":"lib/utils.py","file_url":"https://github.com/zdhnarsil/stochastic-marginal-actor-critic/blob/HEAD/lib/utils.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"13bc23344ef8bd53"}},{"code_sha256_prefix":"0c9ebac8c4ff8e79","entry":"count_parameters","repo":"zdhnarsil/stochastic-marginal-actor-critic","repo_kind":"official","path":"lib/utils.py","file_url":"https://github.com/zdhnarsil/stochastic-marginal-actor-critic/blob/HEAD/lib/utils.py","link_basis":"harvester_set","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":"0c9ebac8c4ff8e79"}},{"code_sha256_prefix":"32699f094e88ca63","entry":"dreamer_cal_mlmc","repo":"zdhnarsil/stochastic-marginal-actor-critic","repo_kind":"official","path":"visual_control/network.py","file_url":"https://github.com/zdhnarsil/stochastic-marginal-actor-critic/blob/HEAD/visual_control/network.py","link_basis":"harvester_set","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":"32699f094e88ca63"}},{"code_sha256_prefix":"29e96c8a8bdeae38","entry":"make_mlp","repo":"zdhnarsil/stochastic-marginal-actor-critic","repo_kind":"official","path":"lib/network.py","file_url":"https://github.com/zdhnarsil/stochastic-marginal-actor-critic/blob/HEAD/lib/network.py","link_basis":"harvester_set","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":"29e96c8a8bdeae38"}},{"code_sha256_prefix":"b86ab8fb8c757fcc","entry":"makedirs","repo":"zdhnarsil/stochastic-marginal-actor-critic","repo_kind":"official","path":"lib/utils.py","file_url":"https://github.com/zdhnarsil/stochastic-marginal-actor-critic/blob/HEAD/lib/utils.py","link_basis":"harvester_set","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":"b86ab8fb8c757fcc"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}