{"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/no-equations-needed-learning-system-dynamics","title":"No Equations Needed: Learning System Dynamics Without Relying on Closed-Form ODEs","arxiv_id":"2501.18563","date":"2025-01-30","proceeding":null,"authors":["Krzysztof Kacprzyk","Mihaela van der Schaar"],"abstract":"Data-driven modeling of dynamical systems is a crucial area of machine learning. In many scenarios, a thorough understanding of the model's behavior becomes essential for practical applications. For instance, understanding the behavior of a pharmacokinetic model, constructed as part of drug development, may allow us to both verify its biological plausibility (e.g., the drug concentration curve is non-negative and decays to zero) and to design dosing guidelines. Discovery of closed-form ordinary differential equations (ODEs) can be employed to obtain such insights by finding a compact mathematical equation and then analyzing it (a two-step approach). However, its widespread use is currently hindered because the analysis process may be time-consuming, requiring substantial mathematical expertise, or even impossible if the equation is too complex. Moreover, if the found equation's behavior does not satisfy the requirements, editing it or influencing the discovery algorithms to rectify it is challenging as the link between the symbolic form of an ODE and its behavior can be elusive. This paper proposes a conceptual shift to modeling low-dimensional dynamical systems by departing from the traditional two-step modeling process. Instead of first discovering a closed-form equation and then analyzing it, our approach, direct semantic modeling, predicts the semantic representation of the dynamical system (i.e., description of its behavior) directly from data, bypassing the need for complex post-hoc analysis. This direct approach also allows the incorporation of intuitive inductive biases into the optimization algorithm and editing the model's behavior directly, ensuring that the model meets the desired specifications. Our approach not only simplifies the modeling pipeline but also enhances the transparency and flexibility of the resulting models compared to traditional closed-form ODEs.","url_abs":"https://arxiv.org/abs/2501.18563v1","url_pdf":"https://arxiv.org/pdf/2501.18563v1.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":"no-equations-needed-learning-system-dynamics","repo_url":"https://github.com/krzysztof-kacprzyk/SemanticODE","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"form","task_name":"Form"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2501.18563","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2501.18563"}},"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":"deterministic:regex_extraction","url":"https://github.com/vanderschaarlab/SemanticODE","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/krzysztof-kacprzyk/SemanticODE","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":2,"ran_draft_wrong":2,"ran_violates":3},"by_repo_kind":{"official":{"samples":1,"ran":1,"repositories":1},"found_in_text":{"samples":6,"ran":6,"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":"22670b4943d4a85f","entry":"Knot","repo":"vanderschaarlab/SemanticODE","repo_kind":"found_in_text","path":"semantic_odes/trajectory_predictors.py","file_url":"https://github.com/vanderschaarlab/SemanticODE/blob/HEAD/semantic_odes/trajectory_predictors.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":"22670b4943d4a85f"}},{"code_sha256_prefix":"7586a49dea800127","entry":"WrappedCubicSpline","repo":"vanderschaarlab/SemanticODE","repo_kind":"found_in_text","path":"semantic_odes/trajectory_predictors.py","file_url":"https://github.com/vanderschaarlab/SemanticODE/blob/HEAD/semantic_odes/trajectory_predictors.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":"7586a49dea800127"}},{"code_sha256_prefix":"f47091a804873629","entry":"create_full_composition_library","repo":"krzysztof-kacprzyk/semanticode","repo_kind":"official","path":"semantic_odes/api.py","file_url":"https://github.com/krzysztof-kacprzyk/semanticode/blob/HEAD/semantic_odes/api.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f47091a804873629"}},{"code_sha256_prefix":"c13f060e770fa143","entry":"is_bounded_motif","repo":"vanderschaarlab/SemanticODE","repo_kind":"found_in_text","path":"semantic_odes/trajectory_predictors.py","file_url":"https://github.com/vanderschaarlab/SemanticODE/blob/HEAD/semantic_odes/trajectory_predictors.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c13f060e770fa143"}},{"code_sha256_prefix":"5219e152da820761","entry":"is_unbounded_composition","repo":"vanderschaarlab/SemanticODE","repo_kind":"found_in_text","path":"semantic_odes/trajectory_predictors.py","file_url":"https://github.com/vanderschaarlab/SemanticODE/blob/HEAD/semantic_odes/trajectory_predictors.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5219e152da820761"}},{"code_sha256_prefix":"9cb5cec659e4ed5b","entry":"is_unbounded_motif","repo":"vanderschaarlab/SemanticODE","repo_kind":"found_in_text","path":"semantic_odes/trajectory_predictors.py","file_url":"https://github.com/vanderschaarlab/SemanticODE/blob/HEAD/semantic_odes/trajectory_predictors.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9cb5cec659e4ed5b"}},{"code_sha256_prefix":"c2a4934fc75b7191","entry":"type_of_transition_point","repo":"vanderschaarlab/SemanticODE","repo_kind":"found_in_text","path":"semantic_odes/trajectory_predictors.py","file_url":"https://github.com/vanderschaarlab/SemanticODE/blob/HEAD/semantic_odes/trajectory_predictors.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c2a4934fc75b7191"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}