{"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/systematic-evaluation-of-causal-discovery-in-1","title":"Systematic Evaluation of Causal Discovery in Visual Model Based Reinforcement Learning","arxiv_id":"2107.00848","date":"2021-07-02","proceeding":null,"authors":["Nan Rosemary Ke","Aniket Didolkar","Sarthak Mittal","Anirudh Goyal","Guillaume Lajoie","Stefan Bauer","Danilo Rezende","Yoshua Bengio","Michael Mozer","Christopher Pal"],"abstract":"Inducing causal relationships from observations is a classic problem in machine learning. Most work in causality starts from the premise that the causal variables themselves are observed. However, for AI agents such as robots trying to make sense of their environment, the only observables are low-level variables like pixels in images. To generalize well, an agent must induce high-level variables, particularly those which are causal or are affected by causal variables. A central goal for AI and causality is thus the joint discovery of abstract representations and causal structure. However, we note that existing environments for studying causal induction are poorly suited for this objective because they have complicated task-specific causal graphs which are impossible to manipulate parametrically (e.g., number of nodes, sparsity, causal chain length, etc.). In this work, our goal is to facilitate research in learning representations of high-level variables as well as causal structures among them. In order to systematically probe the ability of methods to identify these variables and structures, we design a suite of benchmarking RL environments. We evaluate various representation learning algorithms from the literature and find that explicitly incorporating structure and modularity in models can help causal induction in model-based reinforcement learning.","url_abs":"https://arxiv.org/abs/2107.00848v1","url_pdf":"https://arxiv.org/pdf/2107.00848v1.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":"systematic-evaluation-of-causal-discovery-in-1","repo_url":"https://github.com/dido1998/CausalMBRL","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"benchmarking","task_name":"Benchmarking"},{"task_slug":"causal-discovery","task_name":"Causal Discovery"},{"task_slug":"model-based-reinforcement-learning","task_name":"Model-based Reinforcement Learning"},{"task_slug":"reinforcement-learning-1","task_name":"Reinforcement Learning (RL)"},{"task_slug":"representation-learning","task_name":"Representation Learning"},{"task_slug":"reinforcement-learning-2","task_name":"reinforcement-learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2107.00848","atlas_url":"https://app.syntology.ai/?focus=2107.00848","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2107.00848"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/dido1998/CausalMBRL","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":14},"by_repo_kind":{"official":{"samples":14,"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":"4d34bf6b39947167","entry":"contrastive_loss","repo":"dido1998/CausalMBRL","repo_kind":"official","path":"cswm/models/losses.py","file_url":"https://github.com/dido1998/CausalMBRL/blob/HEAD/cswm/models/losses.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":"4d34bf6b39947167"}},{"code_sha256_prefix":"962a1bc92a316173","entry":"crop_normalize","repo":"dido1998/CausalMBRL","repo_kind":"official","path":"data_gen/env.py","file_url":"https://github.com/dido1998/CausalMBRL/blob/HEAD/data_gen/env.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":"962a1bc92a316173"}},{"code_sha256_prefix":"c384344f5bf6ceff","entry":"diamond","repo":"dido1998/CausalMBRL","repo_kind":"official","path":"envs/chemistry_env.py","file_url":"https://github.com/dido1998/CausalMBRL/blob/HEAD/envs/chemistry_env.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":"c384344f5bf6ceff"}},{"code_sha256_prefix":"1dd9382c7e7b0741","entry":"energy","repo":"dido1998/CausalMBRL","repo_kind":"official","path":"cswm/models/losses.py","file_url":"https://github.com/dido1998/CausalMBRL/blob/HEAD/cswm/models/losses.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":"1dd9382c7e7b0741"}},{"code_sha256_prefix":"730a49531670258a","entry":"fig2rgb_array","repo":"dido1998/CausalMBRL","repo_kind":"official","path":"envs/block_pushing.py","file_url":"https://github.com/dido1998/CausalMBRL/blob/HEAD/envs/block_pushing.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":"730a49531670258a"}},{"code_sha256_prefix":"9f5f70ce63ff3076","entry":"generate_episode","repo":"dido1998/CausalMBRL","repo_kind":"official","path":"data_gen/env.py","file_url":"https://github.com/dido1998/CausalMBRL/blob/HEAD/data_gen/env.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":"9f5f70ce63ff3076"}},{"code_sha256_prefix":"3ad1b4670dbfe46d","entry":"get_cmap","repo":"dido1998/CausalMBRL","repo_kind":"official","path":"cswm/utils.py","file_url":"https://github.com/dido1998/CausalMBRL/blob/HEAD/cswm/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":"3ad1b4670dbfe46d"}},{"code_sha256_prefix":"59b0d3a48965d4ca","entry":"image_loss","repo":"dido1998/CausalMBRL","repo_kind":"official","path":"cswm/models/losses.py","file_url":"https://github.com/dido1998/CausalMBRL/blob/HEAD/cswm/models/losses.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":"59b0d3a48965d4ca"}},{"code_sha256_prefix":"8e0583d19b2de35a","entry":"load_dict_h5py","repo":"dido1998/CausalMBRL","repo_kind":"official","path":"cswm/utils.py","file_url":"https://github.com/dido1998/CausalMBRL/blob/HEAD/cswm/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":"8e0583d19b2de35a"}},{"code_sha256_prefix":"15362d0dcd6a886f","entry":"load_list_dict_h5py","repo":"dido1998/CausalMBRL","repo_kind":"official","path":"cswm/utils.py","file_url":"https://github.com/dido1998/CausalMBRL/blob/HEAD/cswm/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":"15362d0dcd6a886f"}},{"code_sha256_prefix":"3d2f99bfac8446e8","entry":"random_dag","repo":"dido1998/CausalMBRL","repo_kind":"official","path":"envs/chemistry_env.py","file_url":"https://github.com/dido1998/CausalMBRL/blob/HEAD/envs/chemistry_env.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":"3d2f99bfac8446e8"}},{"code_sha256_prefix":"056c87133dcaa814","entry":"square","repo":"dido1998/CausalMBRL","repo_kind":"official","path":"envs/block_pushing.py","file_url":"https://github.com/dido1998/CausalMBRL/blob/HEAD/envs/block_pushing.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":"056c87133dcaa814"}},{"code_sha256_prefix":"d15591e079c2aced","entry":"triangle","repo":"dido1998/CausalMBRL","repo_kind":"official","path":"envs/block_pushing.py","file_url":"https://github.com/dido1998/CausalMBRL/blob/HEAD/envs/block_pushing.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":"d15591e079c2aced"}},{"code_sha256_prefix":"33719af496938230","entry":"try_generate_episode","repo":"dido1998/CausalMBRL","repo_kind":"official","path":"data_gen/env.py","file_url":"https://github.com/dido1998/CausalMBRL/blob/HEAD/data_gen/env.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":"33719af496938230"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}