{"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/dyslim-dynamics-stable-learning-by-invariant","title":"DySLIM: Dynamics Stable Learning by Invariant Measure for Chaotic Systems","arxiv_id":"2402.04467","date":"2024-02-06","proceeding":null,"authors":["Yair Schiff","Zhong Yi Wan","Jeffrey B. Parker","Stephan Hoyer","Volodymyr Kuleshov","Fei Sha","Leonardo Zepeda-Núñez"],"abstract":"Learning dynamics from dissipative chaotic systems is notoriously difficult due to their inherent instability, as formalized by their positive Lyapunov exponents, which exponentially amplify errors in the learned dynamics. However, many of these systems exhibit ergodicity and an attractor: a compact and highly complex manifold, to which trajectories converge in finite-time, that supports an invariant measure, i.e., a probability distribution that is invariant under the action of the dynamics, which dictates the long-term statistical behavior of the system. In this work, we leverage this structure to propose a new framework that targets learning the invariant measure as well as the dynamics, in contrast with typical methods that only target the misfit between trajectories, which often leads to divergence as the trajectories' length increases. We use our framework to propose a tractable and sample efficient objective that can be used with any existing learning objectives. Our Dynamics Stable Learning by Invariant Measure (DySLIM) objective enables model training that achieves better point-wise tracking and long-term statistical accuracy relative to other learning objectives. By targeting the distribution with a scalable regularization term, we hope that this approach can be extended to more complex systems exhibiting slowly-variant distributions, such as weather and climate models.","url_abs":"https://arxiv.org/abs/2402.04467v2","url_pdf":"https://arxiv.org/pdf/2402.04467v2.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":"dyslim-dynamics-stable-learning-by-invariant","repo_url":"https://github.com/google-research/swirl-dynamics","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"jax","reach":{"status":"ok","spdx":"NOASSERTION"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2402.04467","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2402.04467"}},"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/google-research/swirl-dynamics","reach":{"status":"ok","spdx":"NOASSERTION"}}],"summary":{"ran":8,"unverified":1},"by_repo_kind":{"official":{"samples":9,"ran":8,"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":9,"samples":[{"code_sha256_prefix":"4ddae757fbf45c59","entry":"ConvLayer","repo":"google-research/swirl-dynamics","repo_kind":"official","path":"swirl_dynamics/lib/layers/convolutions.py","file_url":"https://github.com/google-research/swirl-dynamics/blob/HEAD/swirl_dynamics/lib/layers/convolutions.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"4ddae757fbf45c59"}},{"code_sha256_prefix":"5aeb858a9d4f09ef","entry":"default_init","repo":"google-research/swirl-dynamics","repo_kind":"official","path":"swirl_dynamics/lib/diffusion/unets.py","file_url":"https://github.com/google-research/swirl-dynamics/blob/HEAD/swirl_dynamics/lib/diffusion/unets.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"5aeb858a9d4f09ef"}},{"code_sha256_prefix":"8b0f3ba3d78744f5","entry":"get_fixed_sincos_position_embedding","repo":"google-research/swirl-dynamics","repo_kind":"official","path":"swirl_dynamics/lib/diffusion/vivit.py","file_url":"https://github.com/google-research/swirl-dynamics/blob/HEAD/swirl_dynamics/lib/diffusion/vivit.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"8b0f3ba3d78744f5"}},{"code_sha256_prefix":"0dedf57c9f9834aa","entry":"logsnr2sigma","repo":"google-research/swirl-dynamics","repo_kind":"official","path":"swirl_dynamics/lib/diffusion/diffusion.py","file_url":"https://github.com/google-research/swirl-dynamics/blob/HEAD/swirl_dynamics/lib/diffusion/diffusion.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"0dedf57c9f9834aa"}},{"code_sha256_prefix":"e807b0b621b7ab69","entry":"reshape_2d_to_1d_factorized","repo":"google-research/swirl-dynamics","repo_kind":"official","path":"swirl_dynamics/lib/diffusion/reshape_utils.py","file_url":"https://github.com/google-research/swirl-dynamics/blob/HEAD/swirl_dynamics/lib/diffusion/reshape_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"e807b0b621b7ab69"}},{"code_sha256_prefix":"6cf5d97549e344fd","entry":"reshape_3d_to_1d_factorized","repo":"google-research/swirl-dynamics","repo_kind":"official","path":"swirl_dynamics/lib/diffusion/reshape_utils.py","file_url":"https://github.com/google-research/swirl-dynamics/blob/HEAD/swirl_dynamics/lib/diffusion/reshape_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"6cf5d97549e344fd"}},{"code_sha256_prefix":"05b7120cabeae3d3","entry":"reshape_to_2d_factorized","repo":"google-research/swirl-dynamics","repo_kind":"official","path":"swirl_dynamics/lib/diffusion/reshape_utils.py","file_url":"https://github.com/google-research/swirl-dynamics/blob/HEAD/swirl_dynamics/lib/diffusion/reshape_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"05b7120cabeae3d3"}},{"code_sha256_prefix":"d2baaeb01b155412","entry":"sigma2logsnr","repo":"google-research/swirl-dynamics","repo_kind":"official","path":"swirl_dynamics/lib/diffusion/diffusion.py","file_url":"https://github.com/google-research/swirl-dynamics/blob/HEAD/swirl_dynamics/lib/diffusion/diffusion.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"d2baaeb01b155412"}},{"code_sha256_prefix":"e586d3a42e63085d","entry":"position_embedding","repo":"google-research/swirl-dynamics","repo_kind":"official","path":"swirl_dynamics/lib/diffusion/unets.py","file_url":"https://github.com/google-research/swirl-dynamics/blob/HEAD/swirl_dynamics/lib/diffusion/unets.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"e586d3a42e63085d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}