{"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/arxiv-2512-00239","title":"Self-Supervised Dynamical System Representations for Physiological Time-Series","arxiv_id":"2512.00239","date":"2025-11-28","proceeding":"ICML","authors":["Yenho Chen","Maxwell A. Xu","James M. Rehg","Christopher J. Rozell"],"abstract":"The effectiveness of self-supervised learning (SSL) for physiological time series depends on the ability of a pretraining objective to preserve information about the underlying physiological state while filtering out unrelated noise. However, existing strategies are limited due to reliance on heuristic principles or poorly constrained generative tasks. To address this limitation, we propose a pretraining framework that exploits the information structure of a dynamical systems generative model across multiple time-series. This framework reveals our key insight that class identity can be efficiently captured by extracting information about the generative variables related to the system parameters shared across similar time series samples, while noise unique to individual samples should be discarded. Building on this insight, we propose PULSE, a cross-reconstruction-based pretraining objective for physiological time series datasets that explicitly extracts system information while discarding non-transferrable sample-specific ones. We establish theory that provides sufficient conditions for the system information to be recovered, and empirically validate it using a synthetic dynamical systems experiment. Furthermore, we apply our method to diverse real-world datasets, demonstrating that PULSE learns representations that can broadly distinguish semantic classes, increase label efficiency, and improve transfer learning.","url_abs":"https://arxiv.org/abs/2512.00239","url_pdf":"https://arxiv.org/pdf/2512.00239","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2512.00239","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2512.00239"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/yuezhihan/ts2vec","reach":null},{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/maxxu05/rebar","reach":null},{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/yuqinie98/PatchTST","reach":{"status":"ok","spdx":"Apache-2.0"}},{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/yenhochen/PULSE","reach":null},{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/Mingyue-Cheng/TimeMAE","reach":{"status":"ok"}},{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/arsedler9/lfads-torch","reach":{"status":"ok","spdx":"NOASSERTION"}}],"summary":{"ran_draft_wrong":1,"ran_fixture":1,"unverified":25},"by_repo_kind":{"found_in_text":{"samples":27,"ran":2,"repositories":4}},"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":15,"samples":[{"code_sha256_prefix":"2501bcbdbdc51f74","entry":"resolve_save_dir","repo":"yenhochen/PULSE","repo_kind":"found_in_text","path":"scripts/run/transfer.py","file_url":"https://github.com/yenhochen/PULSE/blob/HEAD/scripts/run/transfer.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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2501bcbdbdc51f74"}},{"code_sha256_prefix":"cd59ac6456cef2c5","entry":"supervised_classification","repo":"yenhochen/PULSE","repo_kind":"found_in_text","path":"scripts/run/pretrain.py","file_url":"https://github.com/yenhochen/PULSE/blob/HEAD/scripts/run/pretrain.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cd59ac6456cef2c5"}},{"code_sha256_prefix":"e44e57b951a765b2","entry":"bits_per_spike","repo":"arsedler9/lfads-torch","repo_kind":"found_in_text","path":"lfads_torch/metrics.py","file_url":"https://github.com/arsedler9/lfads-torch/blob/HEAD/lfads_torch/metrics.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":"e44e57b951a765b2"}},{"code_sha256_prefix":"286f46042ec53f91","entry":"compute_l2_penalty","repo":"arsedler9/lfads-torch","repo_kind":"found_in_text","path":"lfads_torch/modules/l2.py","file_url":"https://github.com/arsedler9/lfads-torch/blob/HEAD/lfads_torch/modules/l2.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":"286f46042ec53f91"}},{"code_sha256_prefix":"e540fde478fcfbaa","entry":"default_device","repo":"yuqinie98/PatchTST","repo_kind":"found_in_text","path":"PatchTST_self_supervised/src/basics.py","file_url":"https://github.com/yuqinie98/PatchTST/blob/HEAD/PatchTST_self_supervised/src/basics.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e540fde478fcfbaa"}},{"code_sha256_prefix":"d354e00aa94a14de","entry":"fit_lr","repo":"Mingyue-Cheng/TimeMAE","repo_kind":"found_in_text","path":"classification.py","file_url":"https://github.com/Mingyue-Cheng/TimeMAE/blob/HEAD/classification.py","link_basis":"plan_row","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":"d354e00aa94a14de"}},{"code_sha256_prefix":"4ac8e022e2aa0b43","entry":"flatten_dict","repo":"yuqinie98/PatchTST","repo_kind":"found_in_text","path":"PatchTST_self_supervised/src/utils.py","file_url":"https://github.com/yuqinie98/PatchTST/blob/HEAD/PatchTST_self_supervised/src/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4ac8e022e2aa0b43"}},{"code_sha256_prefix":"129e9af6b7bc7405","entry":"get_available_cuda","repo":"yuqinie98/PatchTST","repo_kind":"found_in_text","path":"PatchTST_self_supervised/src/basics.py","file_url":"https://github.com/yuqinie98/PatchTST/blob/HEAD/PatchTST_self_supervised/src/basics.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"129e9af6b7bc7405"}},{"code_sha256_prefix":"e9773590d2d18ec2","entry":"get_device","repo":"yuqinie98/PatchTST","repo_kind":"found_in_text","path":"PatchTST_self_supervised/src/basics.py","file_url":"https://github.com/yuqinie98/PatchTST/blob/HEAD/PatchTST_self_supervised/src/basics.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e9773590d2d18ec2"}},{"code_sha256_prefix":"53d79ebc1fd8ae72","entry":"get_model","repo":"yuqinie98/PatchTST","repo_kind":"found_in_text","path":"PatchTST_self_supervised/src/learner.py","file_url":"https://github.com/yuqinie98/PatchTST/blob/HEAD/PatchTST_self_supervised/src/learner.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"53d79ebc1fd8ae72"}},{"code_sha256_prefix":"df9f400e259f725e","entry":"has_image_loggers","repo":"arsedler9/lfads-torch","repo_kind":"found_in_text","path":"lfads_torch/callbacks.py","file_url":"https://github.com/arsedler9/lfads-torch/blob/HEAD/lfads_torch/callbacks.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":"df9f400e259f725e"}},{"code_sha256_prefix":"400d8718dacb52b2","entry":"join_path_file","repo":"yuqinie98/PatchTST","repo_kind":"found_in_text","path":"PatchTST_self_supervised/src/learner.py","file_url":"https://github.com/yuqinie98/PatchTST/blob/HEAD/PatchTST_self_supervised/src/learner.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"400d8718dacb52b2"}},{"code_sha256_prefix":"360457508fde988c","entry":"load_HAR","repo":"Mingyue-Cheng/TimeMAE","repo_kind":"found_in_text","path":"datautils.py","file_url":"https://github.com/Mingyue-Cheng/TimeMAE/blob/HEAD/datautils.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":"360457508fde988c"}},{"code_sha256_prefix":"d3bc4a1920a996ab","entry":"load_UCR","repo":"Mingyue-Cheng/TimeMAE","repo_kind":"found_in_text","path":"datautils.py","file_url":"https://github.com/Mingyue-Cheng/TimeMAE/blob/HEAD/datautils.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":"d3bc4a1920a996ab"}},{"code_sha256_prefix":"4d345bf5bfa84ace","entry":"mae","repo":"yuqinie98/PatchTST","repo_kind":"found_in_text","path":"PatchTST_self_supervised/src/metrics.py","file_url":"https://github.com/yuqinie98/PatchTST/blob/HEAD/PatchTST_self_supervised/src/metrics.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4d345bf5bfa84ace"}},{"code_sha256_prefix":"5ef21ce9effc9300","entry":"mse","repo":"yuqinie98/PatchTST","repo_kind":"found_in_text","path":"PatchTST_self_supervised/src/metrics.py","file_url":"https://github.com/yuqinie98/PatchTST/blob/HEAD/PatchTST_self_supervised/src/metrics.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"5ef21ce9effc9300"}},{"code_sha256_prefix":"b7c5899bb16035d3","entry":"nested_children","repo":"yuqinie98/PatchTST","repo_kind":"found_in_text","path":"PatchTST_self_supervised/src/utils.py","file_url":"https://github.com/yuqinie98/PatchTST/blob/HEAD/PatchTST_self_supervised/src/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b7c5899bb16035d3"}},{"code_sha256_prefix":"746e0e6bbeb89c5b","entry":"pad_mask","repo":"arsedler9/lfads-torch","repo_kind":"found_in_text","path":"lfads_torch/modules/augmentations.py","file_url":"https://github.com/arsedler9/lfads-torch/blob/HEAD/lfads_torch/modules/augmentations.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":"746e0e6bbeb89c5b"}},{"code_sha256_prefix":"de18456a7e019a9d","entry":"padding_varying_length","repo":"Mingyue-Cheng/TimeMAE","repo_kind":"found_in_text","path":"datautils.py","file_url":"https://github.com/Mingyue-Cheng/TimeMAE/blob/HEAD/datautils.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":"de18456a7e019a9d"}},{"code_sha256_prefix":"a27593d38113b6a5","entry":"r2_score","repo":"arsedler9/lfads-torch","repo_kind":"found_in_text","path":"lfads_torch/metrics.py","file_url":"https://github.com/arsedler9/lfads-torch/blob/HEAD/lfads_torch/metrics.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":"a27593d38113b6a5"}},{"code_sha256_prefix":"c59c3677a8ada751","entry":"recalls_and_ndcgs_for_ks","repo":"Mingyue-Cheng/TimeMAE","repo_kind":"found_in_text","path":"loss.py","file_url":"https://github.com/Mingyue-Cheng/TimeMAE/blob/HEAD/loss.py","link_basis":"plan_row","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":"c59c3677a8ada751"}},{"code_sha256_prefix":"b2719609b2d567a8","entry":"regional_bits_per_spike","repo":"arsedler9/lfads-torch","repo_kind":"found_in_text","path":"lfads_torch/metrics.py","file_url":"https://github.com/arsedler9/lfads-torch/blob/HEAD/lfads_torch/metrics.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":"b2719609b2d567a8"}},{"code_sha256_prefix":"f399660b7aaaf996","entry":"reshuffle_train_valid","repo":"arsedler9/lfads-torch","repo_kind":"found_in_text","path":"lfads_torch/datamodules.py","file_url":"https://github.com/arsedler9/lfads-torch/blob/HEAD/lfads_torch/datamodules.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":"f399660b7aaaf996"}},{"code_sha256_prefix":"1799dcc70885ac60","entry":"rmse","repo":"yuqinie98/PatchTST","repo_kind":"found_in_text","path":"PatchTST_self_supervised/src/metrics.py","file_url":"https://github.com/yuqinie98/PatchTST/blob/HEAD/PatchTST_self_supervised/src/metrics.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1799dcc70885ac60"}},{"code_sha256_prefix":"99ba6555f6cb1bc6","entry":"to_tensor","repo":"arsedler9/lfads-torch","repo_kind":"found_in_text","path":"lfads_torch/datamodules.py","file_url":"https://github.com/arsedler9/lfads-torch/blob/HEAD/lfads_torch/datamodules.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":"99ba6555f6cb1bc6"}},{"code_sha256_prefix":"81ff9ec6d6ca9477","entry":"transfer_weights","repo":"yuqinie98/PatchTST","repo_kind":"found_in_text","path":"PatchTST_self_supervised/src/learner.py","file_url":"https://github.com/yuqinie98/PatchTST/blob/HEAD/PatchTST_self_supervised/src/learner.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"81ff9ec6d6ca9477"}},{"code_sha256_prefix":"3cc94cf719642c1f","entry":"unwrap_model","repo":"yuqinie98/PatchTST","repo_kind":"found_in_text","path":"PatchTST_self_supervised/src/utils.py","file_url":"https://github.com/yuqinie98/PatchTST/blob/HEAD/PatchTST_self_supervised/src/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3cc94cf719642c1f"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_api"},"syntology_extracted_results":null}