{"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/homomorphism-autoencoder-learning-group","title":"Homomorphism Autoencoder -- Learning Group Structured Representations from Observed Transitions","arxiv_id":"2207.12067","date":"2022-07-25","proceeding":null,"authors":["Hamza Keurti","Hsiao-Ru Pan","Michel Besserve","Benjamin F. Grewe","Bernhard Schölkopf"],"abstract":"How can agents learn internal models that veridically represent interactions with the real world is a largely open question. As machine learning is moving towards representations containing not just observational but also interventional knowledge, we study this problem using tools from representation learning and group theory. We propose methods enabling an agent acting upon the world to learn internal representations of sensory information that are consistent with actions that modify it. We use an autoencoder equipped with a group representation acting on its latent space, trained using an equivariance-derived loss in order to enforce a suitable homomorphism property on the group representation. In contrast to existing work, our approach does not require prior knowledge of the group and does not restrict the set of actions the agent can perform. We motivate our method theoretically, and show empirically that it can learn a group representation of the actions, thereby capturing the structure of the set of transformations applied to the environment. We further show that this allows agents to predict the effect of sequences of future actions with improved accuracy.","url_abs":"https://arxiv.org/abs/2207.12067v3","url_pdf":"https://arxiv.org/pdf/2207.12067v3.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":"homomorphism-autoencoder-learning-group","repo_url":"https://github.com/hamzakeurti/homomorphismvae","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"open-question","task_name":"Open-Ended Question Answering"},{"task_slug":"representation-learning","task_name":"Representation Learning"},{"task_slug":"trajectory-prediction","task_name":"Trajectory Prediction"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2207.12067","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2207.12067"}},"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/hamzakeurti/homomorphismvae","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":3},"by_repo_kind":{"official":{"samples":3,"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":"85534bf1994bca32","entry":"bce_loss","repo":"hamzakeurti/homomorphismvae","repo_kind":"official","path":"displacementae/networks/variational_utils.py","file_url":"https://github.com/hamzakeurti/homomorphismvae/blob/HEAD/displacementae/networks/variational_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"85534bf1994bca32"}},{"code_sha256_prefix":"323342ee98882ccc","entry":"kl_loss","repo":"hamzakeurti/homomorphismvae","repo_kind":"official","path":"displacementae/networks/variational_utils.py","file_url":"https://github.com/hamzakeurti/homomorphismvae/blob/HEAD/displacementae/networks/variational_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"323342ee98882ccc"}},{"code_sha256_prefix":"057e9ffecaa961b8","entry":"reparametrize","repo":"hamzakeurti/homomorphismvae","repo_kind":"official","path":"displacementae/networks/variational_utils.py","file_url":"https://github.com/hamzakeurti/homomorphismvae/blob/HEAD/displacementae/networks/variational_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"057e9ffecaa961b8"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}