{"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/neural-cdes-for-long-time-series-via-the-log","title":"Neural Rough Differential Equations for Long Time Series","arxiv_id":"2009.08295","date":"2020-09-17","proceeding":null,"authors":["James Morrill","Cristopher Salvi","Patrick Kidger","James Foster","Terry Lyons"],"abstract":"Neural controlled differential equations (CDEs) are the continuous-time analogue of recurrent neural networks, as Neural ODEs are to residual networks, and offer a memory-efficient continuous-time way to model functions of potentially irregular time series. Existing methods for computing the forward pass of a Neural CDE involve embedding the incoming time series into path space, often via interpolation, and using evaluations of this path to drive the hidden state. Here, we use rough path theory to extend this formulation. Instead of directly embedding into path space, we instead represent the input signal over small time intervals through its \\textit{log-signature}, which are statistics describing how the signal drives a CDE. This is the approach for solving \\textit{rough differential equations} (RDEs), and correspondingly we describe our main contribution as the introduction of Neural RDEs. This extension has a purpose: by generalising the Neural CDE approach to a broader class of driving signals, we demonstrate particular advantages for tackling long time series. In this regime, we demonstrate efficacy on problems of length up to 17k observations and observe significant training speed-ups, improvements in model performance, and reduced memory requirements compared to existing approaches.","url_abs":"https://arxiv.org/abs/2009.08295v4","url_pdf":"https://arxiv.org/pdf/2009.08295v4.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":"neural-cdes-for-long-time-series-via-the-log","repo_url":"https://github.com/jambo6/neuralCDEs-via-logODEs","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"neural-cdes-for-long-time-series-via-the-log","repo_url":"https://github.com/jambo6/neuralRDEs","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"neural-cdes-for-long-time-series-via-the-log","repo_url":"https://github.com/patrick-kidger/torchcde","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"neural-cdes-for-long-time-series-via-the-log","repo_url":"https://github.com/benjamin-walker/log-neural-cdes","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"jax","reach":null}],"tasks":[{"task_slug":"irregular-time-series","task_name":"Irregular Time Series"},{"task_slug":"time-series-1","task_name":"Time Series"},{"task_slug":"time-series","task_name":"Time Series Analysis"},{"task_slug":"time-series-classification","task_name":"Time Series Classification"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/time-series-classification-on-eigenworms","task":"Time Series Classification","dataset":"EigenWorms","model":"NRDE","rank_in_archive_order":4,"of":8,"metrics":{"% Test Accuracy":"83.8"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2009.08295","atlas_url":"https://app.syntology.ai/?focus=2009.08295","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2009.08295"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/patrick-kidger/torchcde","reach":null},{"provenance":"deterministic:regex_extraction","url":"https://github.com/jambo6/neuralRDEs","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/jambo6/neuralCDEs-via-logODEs","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/benjamin-walker/log-neural-cdes","reach":null}],"summary":{"ran":3,"ran_draft_wrong":2,"unverified":1},"by_repo_kind":{"official":{"samples":6,"ran":5,"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":6,"samples":[{"code_sha256_prefix":"03c0b3b1f931762a","entry":"_NRDECell","repo":"jambo6/neuralRDEs","repo_kind":"official","path":"ncdes/model.py","file_url":"https://github.com/jambo6/neuralRDEs/blob/HEAD/ncdes/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"03c0b3b1f931762a"}},{"code_sha256_prefix":"be6b99ac1c282eca","entry":"_NRDECell","repo":"jambo6/neuralCDEs-via-logODEs","repo_kind":"official","path":"ncdes/rdeint.py","file_url":"https://github.com/jambo6/neuralCDEs-via-logODEs/blob/HEAD/ncdes/rdeint.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"be6b99ac1c282eca"}},{"code_sha256_prefix":"479e4990b04f81c7","entry":"_NRDEFunc","repo":"jambo6/neuralRDEs","repo_kind":"official","path":"ncdes/model.py","file_url":"https://github.com/jambo6/neuralRDEs/blob/HEAD/ncdes/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"479e4990b04f81c7"}},{"code_sha256_prefix":"efd219212fca45f4","entry":"rdeint","repo":"jambo6/neuralRDEs","repo_kind":"official","path":"ncdes/model.py","file_url":"https://github.com/jambo6/neuralRDEs/blob/HEAD/ncdes/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"efd219212fca45f4"}},{"code_sha256_prefix":"0905577b4357b699","entry":"rdeint","repo":"jambo6/neuralCDEs-via-logODEs","repo_kind":"official","path":"ncdes/rdeint.py","file_url":"https://github.com/jambo6/neuralCDEs-via-logODEs/blob/HEAD/ncdes/rdeint.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0905577b4357b699"}},{"code_sha256_prefix":"65f51b70e5f7b175","entry":"NeuralRDE","repo":"jambo6/neuralRDEs","repo_kind":"official","path":"ncdes/model.py","file_url":"https://github.com/jambo6/neuralRDEs/blob/HEAD/ncdes/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"65f51b70e5f7b175"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}