{"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/learning-plannable-representations-with","title":"Learning Plannable Representations with Causal InfoGAN","arxiv_id":"1807.09341","date":"2018-07-24","proceeding":"NeurIPS 2018 12","authors":["Thanard Kurutach","Aviv Tamar","Ge Yang","Stuart Russell","Pieter Abbeel"],"abstract":"In recent years, deep generative models have been shown to 'imagine'\nconvincing high-dimensional observations such as images, audio, and even video,\nlearning directly from raw data. In this work, we ask how to imagine\ngoal-directed visual plans -- a plausible sequence of observations that\ntransition a dynamical system from its current configuration to a desired goal\nstate, which can later be used as a reference trajectory for control. We focus\non systems with high-dimensional observations, such as images, and propose an\napproach that naturally combines representation learning and planning. Our\nframework learns a generative model of sequential observations, where the\ngenerative process is induced by a transition in a low-dimensional planning\nmodel, and an additional noise. By maximizing the mutual information between\nthe generated observations and the transition in the planning model, we obtain\na low-dimensional representation that best explains the causal nature of the\ndata. We structure the planning model to be compatible with efficient planning\nalgorithms, and we propose several such models based on either discrete or\ncontinuous states. Finally, to generate a visual plan, we project the current\nand goal observations onto their respective states in the planning model, plan\na trajectory, and then use the generative model to transform the trajectory to\na sequence of observations. We demonstrate our method on imagining plausible\nvisual plans of rope manipulation.","url_abs":"http://arxiv.org/abs/1807.09341v1","url_pdf":"http://arxiv.org/pdf/1807.09341v1.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":"learning-plannable-representations-with","repo_url":"https://github.com/thanard/causal-infogan","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"representation-learning","task_name":"Representation Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1807.09341","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1807.09341"}},"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/thanard/causal-infogan","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":9},"by_repo_kind":{"official":{"samples":9,"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":"c73e58cf108ab89e","entry":"discretize","repo":"thanard/causal-infogan","repo_kind":"official","path":"planning.py","file_url":"https://github.com/thanard/causal-infogan/blob/HEAD/planning.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":"c73e58cf108ab89e"}},{"code_sha256_prefix":"6d4b3a9b281492a1","entry":"from_numpy_to_var","repo":"thanard/causal-infogan","repo_kind":"official","path":"utils.py","file_url":"https://github.com/thanard/causal-infogan/blob/HEAD/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":"6d4b3a9b281492a1"}},{"code_sha256_prefix":"9a1438c6ed648de4","entry":"from_tensor_to_var","repo":"thanard/causal-infogan","repo_kind":"official","path":"utils.py","file_url":"https://github.com/thanard/causal-infogan/blob/HEAD/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":"9a1438c6ed648de4"}},{"code_sha256_prefix":"74d0d915170abb86","entry":"get_causal_classifier","repo":"thanard/causal-infogan","repo_kind":"official","path":"model.py","file_url":"https://github.com/thanard/causal-infogan/blob/HEAD/model.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":"74d0d915170abb86"}},{"code_sha256_prefix":"d117c7aae111220a","entry":"make_dataset","repo":"thanard/causal-infogan","repo_kind":"official","path":"dataset.py","file_url":"https://github.com/thanard/causal-infogan/blob/HEAD/dataset.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":"d117c7aae111220a"}},{"code_sha256_prefix":"1f2dd05e9159a937","entry":"make_pair","repo":"thanard/causal-infogan","repo_kind":"official","path":"dataset.py","file_url":"https://github.com/thanard/causal-infogan/blob/HEAD/dataset.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":"1f2dd05e9159a937"}},{"code_sha256_prefix":"ca447a26c8b3545d","entry":"normalize_row","repo":"thanard/causal-infogan","repo_kind":"official","path":"utils.py","file_url":"https://github.com/thanard/causal-infogan/blob/HEAD/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":"ca447a26c8b3545d"}},{"code_sha256_prefix":"4f92585dabcf4bb5","entry":"plan_traj","repo":"thanard/causal-infogan","repo_kind":"official","path":"planning.py","file_url":"https://github.com/thanard/causal-infogan/blob/HEAD/planning.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":"4f92585dabcf4bb5"}},{"code_sha256_prefix":"11993ef65e7b9b42","entry":"undiscretize","repo":"thanard/causal-infogan","repo_kind":"official","path":"planning.py","file_url":"https://github.com/thanard/causal-infogan/blob/HEAD/planning.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":"11993ef65e7b9b42"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}