{"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/uncovering-the-structure-of-clinical-eeg","title":"Uncovering the structure of clinical EEG signals with self-supervised learning","arxiv_id":"2007.16104","date":"2020-07-31","proceeding":null,"authors":["Hubert Banville","Omar Chehab","Aapo Hyvärinen","Denis-Alexander Engemann","Alexandre Gramfort"],"abstract":"Objective. Supervised learning paradigms are often limited by the amount of labeled data that is available. This phenomenon is particularly problematic in clinically-relevant data, such as electroencephalography (EEG), where labeling can be costly in terms of specialized expertise and human processing time. Consequently, deep learning architectures designed to learn on EEG data have yielded relatively shallow models and performances at best similar to those of traditional feature-based approaches. However, in most situations, unlabeled data is available in abundance. By extracting information from this unlabeled data, it might be possible to reach competitive performance with deep neural networks despite limited access to labels. Approach. We investigated self-supervised learning (SSL), a promising technique for discovering structure in unlabeled data, to learn representations of EEG signals. Specifically, we explored two tasks based on temporal context prediction as well as contrastive predictive coding on two clinically-relevant problems: EEG-based sleep staging and pathology detection. We conducted experiments on two large public datasets with thousands of recordings and performed baseline comparisons with purely supervised and hand-engineered approaches. Main results. Linear classifiers trained on SSL-learned features consistently outperformed purely supervised deep neural networks in low-labeled data regimes while reaching competitive performance when all labels were available. Additionally, the embeddings learned with each method revealed clear latent structures related to physiological and clinical phenomena, such as age effects. Significance. We demonstrate the benefit of self-supervised learning approaches on EEG data. Our results suggest that SSL may pave the way to a wider use of deep learning models on EEG data.","url_abs":"https://arxiv.org/abs/2007.16104v1","url_pdf":"https://arxiv.org/pdf/2007.16104v1.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":"uncovering-the-structure-of-clinical-eeg","repo_url":"https://github.com/jstranne/mouse_self_supervision","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"uncovering-the-structure-of-clinical-eeg","repo_url":"https://github.com/zacharycbrown/ssl_baselines_for_biosignal_feature_extraction","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"eeg-1","task_name":"EEG"},{"task_slug":"eeg-based-sleep-staging","task_name":"EEG based sleep staging"},{"task_slug":"eeg","task_name":"Electroencephalogram (EEG)"},{"task_slug":"self-supervised-learning","task_name":"Self-Supervised Learning"},{"task_slug":"sleep-staging","task_name":"Sleep Staging"}],"methods":[{"method_slug":"contrastive-predictive-coding","method_name":"Contrastive Predictive Coding"},{"method_slug":"infonce","method_name":"InfoNCE"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2007.16104","atlas_url":"https://app.syntology.ai/?focus=2007.16104","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2007.16104"}},"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/jstranne/mouse_self_supervision","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/zacharycbrown/ssl_baselines_for_biosignal_feature_extraction","reach":null}],"summary":{"unverified":3},"by_repo_kind":{"listed":{"samples":3,"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":"46cf51ffd4d2b6aa","entry":"load_Downstream_Dataset","repo":"zacharycbrown/ssl_baselines_for_biosignal_feature_extraction","repo_kind":"listed","path":"data_loaders.py","file_url":"https://github.com/zacharycbrown/ssl_baselines_for_biosignal_feature_extraction/blob/HEAD/data_loaders.py","link_basis":"first_harvest_node","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":"46cf51ffd4d2b6aa"}},{"code_sha256_prefix":"f4f12633ae07a75b","entry":"load_SSL_Dataset","repo":"zacharycbrown/ssl_baselines_for_biosignal_feature_extraction","repo_kind":"listed","path":"data_loaders.py","file_url":"https://github.com/zacharycbrown/ssl_baselines_for_biosignal_feature_extraction/blob/HEAD/data_loaders.py","link_basis":"first_harvest_node","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":"f4f12633ae07a75b"}},{"code_sha256_prefix":"2f78bb63508eb10e","entry":"load_SSL_Dataset_Based_On_Subjects","repo":"zacharycbrown/ssl_baselines_for_biosignal_feature_extraction","repo_kind":"listed","path":"data_loaders.py","file_url":"https://github.com/zacharycbrown/ssl_baselines_for_biosignal_feature_extraction/blob/HEAD/data_loaders.py","link_basis":"first_harvest_node","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":"2f78bb63508eb10e"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}