{"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/self-supervised-evolution-operator-learning","title":"Self-Supervised Evolution Operator Learning for High-Dimensional Dynamical Systems","arxiv_id":"2505.18671","date":"2025-05-24","proceeding":null,"authors":["Giacomo Turri","Luigi Bonati","Kai Zhu","Massimiliano Pontil","Pietro Novelli"],"abstract":"We introduce an encoder-only approach to learn the evolution operators of large-scale non-linear dynamical systems, such as those describing complex natural phenomena. Evolution operators are particularly well-suited for analyzing systems that exhibit complex spatio-temporal patterns and have become a key analytical tool across various scientific communities. As terabyte-scale weather datasets and simulation tools capable of running millions of molecular dynamics steps per day are becoming commodities, our approach provides an effective tool to make sense of them from a data-driven perspective. The core of it lies in a remarkable connection between self-supervised representation learning methods and the recently established learning theory of evolution operators. To show the usefulness of the proposed method, we test it across multiple scientific domains: explaining the folding dynamics of small proteins, the binding process of drug-like molecules in host sites, and autonomously finding patterns in climate data. Code and data to reproduce the experiments are made available open source.","url_abs":"https://arxiv.org/abs/2505.18671v1","url_pdf":"https://arxiv.org/pdf/2505.18671v1.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":"self-supervised-evolution-operator-learning","repo_url":"https://github.com/pietronvll/encoderops","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"learning-theory","task_name":"Learning Theory"},{"task_slug":"operator-learning","task_name":"Operator learning"},{"task_slug":"representation-learning","task_name":"Representation Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2505.18671","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2505.18671"}},"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/pietronvll/encoderops","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":8},"by_repo_kind":{"official":{"samples":8,"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":"3e01c3520d46f4ba","entry":"compute_second_moment","repo":"pietronvll/encoderops","repo_kind":"official","path":"src/loss.py","file_url":"https://github.com/pietronvll/encoderops/blob/HEAD/src/loss.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":"3e01c3520d46f4ba"}},{"code_sha256_prefix":"09f2ff6d6d5b417d","entry":"effective_rank","repo":"pietronvll/encoderops","repo_kind":"official","path":"src/utils.py","file_url":"https://github.com/pietronvll/encoderops/blob/HEAD/src/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":"09f2ff6d6d5b417d"}},{"code_sha256_prefix":"465d22529fc61f2c","entry":"joint_LoRA","repo":"pietronvll/encoderops","repo_kind":"official","path":"src/loss.py","file_url":"https://github.com/pietronvll/encoderops/blob/HEAD/src/loss.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":"465d22529fc61f2c"}},{"code_sha256_prefix":"d50ddf8ea3cbb9b1","entry":"lin_svdvals","repo":"pietronvll/encoderops","repo_kind":"official","path":"src/utils.py","file_url":"https://github.com/pietronvll/encoderops/blob/HEAD/src/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":"d50ddf8ea3cbb9b1"}},{"code_sha256_prefix":"0f5f7c3defa7ce9b","entry":"mdtraj_load","repo":"pietronvll/encoderops","repo_kind":"official","path":"src/data.py","file_url":"https://github.com/pietronvll/encoderops/blob/HEAD/src/data.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":"0f5f7c3defa7ce9b"}},{"code_sha256_prefix":"970a3069c685abac","entry":"normalize_linear_layer","repo":"pietronvll/encoderops","repo_kind":"official","path":"src/utils.py","file_url":"https://github.com/pietronvll/encoderops/blob/HEAD/src/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":"970a3069c685abac"}},{"code_sha256_prefix":"0b53236846981525","entry":"seq_LoRA","repo":"pietronvll/encoderops","repo_kind":"official","path":"src/loss.py","file_url":"https://github.com/pietronvll/encoderops/blob/HEAD/src/loss.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":"0b53236846981525"}},{"code_sha256_prefix":"9c7802a1eaa6de33","entry":"traj_to_confs","repo":"pietronvll/encoderops","repo_kind":"official","path":"src/data.py","file_url":"https://github.com/pietronvll/encoderops/blob/HEAD/src/data.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":"9c7802a1eaa6de33"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}