{"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/mdp-homomorphic-networks-group-symmetries-in","title":"MDP Homomorphic Networks: Group Symmetries in Reinforcement Learning","arxiv_id":"2006.16908","date":"2020-06-30","proceeding":"NeurIPS 2020 12","authors":["Elise van der Pol","Daniel E. Worrall","Herke van Hoof","Frans A. Oliehoek","Max Welling"],"abstract":"This paper introduces MDP homomorphic networks for deep reinforcement learning. MDP homomorphic networks are neural networks that are equivariant under symmetries in the joint state-action space of an MDP. Current approaches to deep reinforcement learning do not usually exploit knowledge about such structure. By building this prior knowledge into policy and value networks using an equivariance constraint, we can reduce the size of the solution space. We specifically focus on group-structured symmetries (invertible transformations). Additionally, we introduce an easy method for constructing equivariant network layers numerically, so the system designer need not solve the constraints by hand, as is typically done. We construct MDP homomorphic MLPs and CNNs that are equivariant under either a group of reflections or rotations. We show that such networks converge faster than unstructured baselines on CartPole, a grid world and Pong.","url_abs":"https://arxiv.org/abs/2006.16908v2","url_pdf":"https://arxiv.org/pdf/2006.16908v2.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":"mdp-homomorphic-networks-group-symmetries-in","repo_url":"https://github.com/ElisevanderPol/mdp-homomorphic-networks","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"mdp-homomorphic-networks-group-symmetries-in","repo_url":"https://github.com/ElisevanderPol/symmetrizer","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"deep-reinforcement-learning","task_name":"Deep Reinforcement Learning"},{"task_slug":"reinforcement-learning","task_name":"Reinforcement Learning"},{"task_slug":"reinforcement-learning-1","task_name":"Reinforcement Learning (RL)"},{"task_slug":"reinforcement-learning-2","task_name":"reinforcement-learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2006.16908","atlas_url":"https://app.syntology.ai/?focus=2006.16908","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2006.16908"}},"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/ElisevanderPol/mdp-homomorphic-networks","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ElisevanderPol/symmetrizer","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":5,"unverified":2},"by_repo_kind":{"official":{"samples":2,"ran":0,"repositories":1},"listed":{"samples":5,"ran":5,"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":"8a531fe4a9ab6edd","entry":"closed_group","repo":"ElisevanderPol/symmetrizer","repo_kind":"listed","path":"symmetrizer/groups/ops.py","file_url":"https://github.com/ElisevanderPol/symmetrizer/blob/HEAD/symmetrizer/groups/ops.py","link_basis":"harvester_set","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":"8a531fe4a9ab6edd"}},{"code_sha256_prefix":"4f1f3a4c76b650d9","entry":"get_basis","repo":"ElisevanderPol/symmetrizer","repo_kind":"listed","path":"symmetrizer/ops/ops.py","file_url":"https://github.com/ElisevanderPol/symmetrizer/blob/HEAD/symmetrizer/ops/ops.py","link_basis":"harvester_set","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":"4f1f3a4c76b650d9"}},{"code_sha256_prefix":"8e74655af7acc904","entry":"get_element_index","repo":"ElisevanderPol/symmetrizer","repo_kind":"listed","path":"symmetrizer/groups/ops.py","file_url":"https://github.com/ElisevanderPol/symmetrizer/blob/HEAD/symmetrizer/groups/ops.py","link_basis":"harvester_set","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":"8e74655af7acc904"}},{"code_sha256_prefix":"772c37cc22f9d339","entry":"symmetrize","repo":"ElisevanderPol/symmetrizer","repo_kind":"listed","path":"symmetrizer/ops/ops.py","file_url":"https://github.com/ElisevanderPol/symmetrizer/blob/HEAD/symmetrizer/ops/ops.py","link_basis":"harvester_set","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":"772c37cc22f9d339"}},{"code_sha256_prefix":"c2487dde239bbdd1","entry":"symmetrize_invariant_out","repo":"ElisevanderPol/symmetrizer","repo_kind":"listed","path":"symmetrizer/ops/ops.py","file_url":"https://github.com/ElisevanderPol/symmetrizer/blob/HEAD/symmetrizer/ops/ops.py","link_basis":"harvester_set","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":"c2487dde239bbdd1"}},{"code_sha256_prefix":"fc2d9d7f350a539e","entry":"conv2d_output_shape","repo":"ElisevanderPol/mdp-homomorphic-networks","repo_kind":"official","path":"rlpyt/models/utils.py","file_url":"https://github.com/ElisevanderPol/mdp-homomorphic-networks/blob/HEAD/rlpyt/models/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":"fc2d9d7f350a539e"}},{"code_sha256_prefix":"1a929bb446f49571","entry":"strip_ddp_state_dict","repo":"ElisevanderPol/mdp-homomorphic-networks","repo_kind":"official","path":"rlpyt/models/utils.py","file_url":"https://github.com/ElisevanderPol/mdp-homomorphic-networks/blob/HEAD/rlpyt/models/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":"1a929bb446f49571"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}