{"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/ssd-a-unified-framework-for-self-supervised-1","title":"SSD: A Unified Framework for Self-Supervised Outlier Detection","arxiv_id":"2103.12051","date":"2021-03-22","proceeding":"ICLR 2021 1","authors":["Vikash Sehwag","Mung Chiang","Prateek Mittal"],"abstract":"We ask the following question: what training information is required to design an effective outlier/out-of-distribution (OOD) detector, i.e., detecting samples that lie far away from the training distribution? Since unlabeled data is easily accessible for many applications, the most compelling approach is to develop detectors based on only unlabeled in-distribution data. However, we observe that most existing detectors based on unlabeled data perform poorly, often equivalent to a random prediction. In contrast, existing state-of-the-art OOD detectors achieve impressive performance but require access to fine-grained data labels for supervised training. We propose SSD, an outlier detector based on only unlabeled in-distribution data. We use self-supervised representation learning followed by a Mahalanobis distance based detection in the feature space. We demonstrate that SSD outperforms most existing detectors based on unlabeled data by a large margin. Additionally, SSD even achieves performance on par, and sometimes even better, with supervised training based detectors. Finally, we expand our detection framework with two key extensions. First, we formulate few-shot OOD detection, in which the detector has access to only one to five samples from each class of the targeted OOD dataset. Second, we extend our framework to incorporate training data labels, if available. We find that our novel detection framework based on SSD displays enhanced performance with these extensions, and achieves state-of-the-art performance. Our code is publicly available at https://github.com/inspire-group/SSD.","url_abs":"https://arxiv.org/abs/2103.12051v1","url_pdf":"https://arxiv.org/pdf/2103.12051v1.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":"ssd-a-unified-framework-for-self-supervised-1","repo_url":"https://github.com/inspire-group/SSD","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null},{"paper_slug":"ssd-a-unified-framework-for-self-supervised-1","repo_url":"https://github.com/marclafon/heatood","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"ssd-a-unified-framework-for-self-supervised-1","repo_url":"https://github.com/2023-MindSpore-1/ms-code-223/tree/main/SSD","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"mindspore","reach":null}],"tasks":[{"task_slug":"anomaly-detection","task_name":"Anomaly Detection"},{"task_slug":"ood-detection","task_name":"Out of Distribution (OOD) Detection"},{"task_slug":"out-of-distribution-detection","task_name":"Out-of-Distribution Detection"},{"task_slug":"outlier-detection","task_name":"Outlier Detection"},{"task_slug":"representation-learning","task_name":"Representation Learning"}],"methods":[{"method_slug":"1x1-convolution","method_name":"1x1 Convolution"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"non-maximum-suppression","method_name":"Non Maximum Suppression"},{"method_slug":"ssd","method_name":"SSD"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/anomaly-detection-on-anomaly-detection-on","task":"Anomaly Detection","dataset":"Anomaly Detection on Unlabeled CIFAR-10 vs LSUN (Fix)","model":"SSD","rank_in_archive_order":2,"of":8,"metrics":{"Network":"ResNet-34","ROC-AUC":"96.5"},"uses_additional_data":false},{"leaderboard":"/sota/anomaly-detection-on-one-class-cifar-10","task":"Anomaly Detection","dataset":"One-class CIFAR-10","model":"SSD","rank_in_archive_order":20,"of":36,"metrics":{"AUROC":"90.0"},"uses_additional_data":false},{"leaderboard":"/sota/anomaly-detection-on-unlabeled-cifar-10-vs","task":"Anomaly Detection","dataset":"Unlabeled CIFAR-10 vs CIFAR-100","model":"SSD","rank_in_archive_order":6,"of":13,"metrics":{"AUROC":"89.6","Network":"ResNet-18"},"uses_additional_data":false},{"leaderboard":"/sota/out-of-distribution-detection-on-imagenet-1k-10","task":"Out-of-Distribution Detection","dataset":"ImageNet-1k vs Textures","model":"SSD","rank_in_archive_order":24,"of":34,"metrics":{"AUROC":"85.4","FPR95":"57.2"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2103.12051","atlas_url":"https://app.syntology.ai/?focus=2103.12051","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2103.12051"}},"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/marclafon/heatood","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/2023-MindSpore-1/ms-code-223/tree/main/SSD","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/inspire-group/SSD","reach":null}],"summary":{"ran_fixture":1},"by_repo_kind":{"official":{"samples":1,"ran":1,"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":"1c82b403bc72b7cd","entry":"get_scores_multi_cluster","repo":"inspire-group/SSD","repo_kind":"official","path":"eval_ssd.py","file_url":"https://github.com/inspire-group/SSD/blob/HEAD/eval_ssd.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1c82b403bc72b7cd"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}