{"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/a-canonization-perspective-on-invariant-and","title":"A Canonicalization Perspective on Invariant and Equivariant Learning","arxiv_id":"2405.18378","date":"2024-05-28","proceeding":null,"authors":["George Ma","Yifei Wang","Derek Lim","Stefanie Jegelka","Yisen Wang"],"abstract":"In many applications, we desire neural networks to exhibit invariance or equivariance to certain groups due to symmetries inherent in the data. Recently, frame-averaging methods emerged to be a unified framework for attaining symmetries efficiently by averaging over input-dependent subsets of the group, i.e., frames. What we currently lack is a principled understanding of the design of frames. In this work, we introduce a canonicalization perspective that provides an essential and complete view of the design of frames. Canonicalization is a classic approach for attaining invariance by mapping inputs to their canonical forms. We show that there exists an inherent connection between frames and canonical forms. Leveraging this connection, we can efficiently compare the complexity of frames as well as determine the optimality of certain frames. Guided by this principle, we design novel frames for eigenvectors that are strictly superior to existing methods -- some are even optimal -- both theoretically and empirically. The reduction to the canonicalization perspective further uncovers equivalences between previous methods. These observations suggest that canonicalization provides a fundamental understanding of existing frame-averaging methods and unifies existing equivariant and invariant learning methods. Code is available at https://github.com/PKU-ML/canonicalization.","url_abs":"https://arxiv.org/abs/2405.18378v4","url_pdf":"https://arxiv.org/pdf/2405.18378v4.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":"a-canonization-perspective-on-invariant-and","repo_url":"https://github.com/PKU-ML/canonicalization","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null},{"paper_slug":"a-canonization-perspective-on-invariant-and","repo_url":"https://github.com/georgemlp/canonicalization","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"graph-classification","task_name":"Graph Classification"},{"task_slug":"graph-embedding","task_name":"Graph Embedding"},{"task_slug":"graph-regression","task_name":"Graph Regression"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2405.18378","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2405.18378"}},"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/PKU-ML/canonicalization","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/georgemlp/canonicalization","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":2,"ran":2,"unverified":2},"by_repo_kind":{"official":{"samples":5,"ran":3,"repositories":2}},"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":"f72434c0dcd5d11b","entry":"gpu_setup","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"f72434c0dcd5d11b"}},{"code_sha256_prefix":"88653752e2a17792","entry":"handle_lap","repo":"PKU-ML/canonicalization","repo_kind":"official","path":"train/train_OGBMOL_graph_classification.py","file_url":"https://github.com/PKU-ML/canonicalization/blob/HEAD/train/train_OGBMOL_graph_classification.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"88653752e2a17792"}},{"code_sha256_prefix":"700de849477f93ce","entry":"imp_exp_attn","repo":"georgemlp/canonicalization","repo_kind":"official","path":"layers/graphit_gt_layer.py","file_url":"https://github.com/georgemlp/canonicalization/blob/HEAD/layers/graphit_gt_layer.py","link_basis":"first_harvest_node","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":"700de849477f93ce"}},{"code_sha256_prefix":"a3fb87a259b15eae","entry":"scaling","repo":"georgemlp/canonicalization","repo_kind":"official","path":"layers/graphit_gt_layer.py","file_url":"https://github.com/georgemlp/canonicalization/blob/HEAD/layers/graphit_gt_layer.py","link_basis":"first_harvest_node","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":"a3fb87a259b15eae"}},{"code_sha256_prefix":"9408c2ca6e799410","entry":"src_dot_dst","repo":"georgemlp/canonicalization","repo_kind":"official","path":"layers/graphit_gt_layer.py","file_url":"https://github.com/georgemlp/canonicalization/blob/HEAD/layers/graphit_gt_layer.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":"9408c2ca6e799410"}},{"code_sha256_prefix":"c742c7f627d895ea","entry":"train_epoch_sparse","repo":"PKU-ML/canonicalization","repo_kind":"official","path":"train/train_OGBMOL_graph_classification.py","file_url":"https://github.com/PKU-ML/canonicalization/blob/HEAD/train/train_OGBMOL_graph_classification.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":"c742c7f627d895ea"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}