{"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/improving-entropic-out-of-distribution","title":"Enhanced Isotropy Maximization Loss: Seamless and High-Performance Out-of-Distribution Detection Simply Replacing the SoftMax Loss","arxiv_id":"2105.14399","date":"2021-05-30","proceeding":null,"authors":["David Macêdo","Teresa Ludermir"],"abstract":"Current out-of-distribution detection approaches usually present special requirements (e.g., collecting outlier data and hyperparameter validation) and produce side effects (e.g., classification accuracy drop and slow/inefficient inferences). Recently, entropic out-of-distribution detection has been proposed as a seamless approach (i.e., a solution that avoids all previously mentioned drawbacks). The entropic out-of-distribution detection solution uses the IsoMax loss for training and the entropic score for out-of-distribution detection. The IsoMax loss works as a drop-in replacement of the SoftMax loss (i.e., the combination of the output linear layer, the SoftMax activation, and the cross-entropy loss) because swapping the SoftMax loss with the IsoMax loss requires no changes in the model's architecture or training procedures/hyperparameters. In this paper, we perform what we call an isometrization of the distances used in the IsoMax loss. Additionally, we propose replacing the entropic score with the minimum distance score. Experiments showed that these modifications significantly increase out-of-distribution detection performance while keeping the solution seamless. Besides being competitive with or outperforming all major current approaches, the proposed solution avoids all their current limitations in addition to being much easier to use because only a simple loss replacement for training the neural network is required. The code to replace the SoftMax loss with the IsoMax+ loss and reproduce the results is available at https://github.com/dlmacedo/entropic-out-of-distribution-detection.","url_abs":"https://arxiv.org/abs/2105.14399v9","url_pdf":"https://arxiv.org/pdf/2105.14399v9.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":"improving-entropic-out-of-distribution","repo_url":"https://github.com/dlmacedo/entropic-out-of-distribution-detection","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"out-of-distribution-detection","task_name":"Out-of-Distribution Detection"}],"methods":[{"method_slug":"softmax","method_name":"Softmax"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2105.14399","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2105.14399"}},"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":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/dlmacedo/entropic-out-of-distribution-detection","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_draft_wrong":1,"unverified":8},"by_repo_kind":{"official":{"samples":9,"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":"8d7ec010c29e813b","entry":"format_time","repo":"dlmacedo/entropic-out-of-distribution-detection","repo_kind":"official","path":"tools.py","file_url":"https://github.com/dlmacedo/entropic-out-of-distribution-detection/blob/HEAD/tools.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8d7ec010c29e813b"}},{"code_sha256_prefix":"2e1f852e640490f8","entry":"ResNet110","repo":"dlmacedo/entropic-out-of-distribution-detection","repo_kind":"official","path":"models/proper_resnet.py","file_url":"https://github.com/dlmacedo/entropic-out-of-distribution-detection/blob/HEAD/models/proper_resnet.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":"2e1f852e640490f8"}},{"code_sha256_prefix":"5f5d80dbb2ac3d2d","entry":"ResNet32","repo":"dlmacedo/entropic-out-of-distribution-detection","repo_kind":"official","path":"models/proper_resnet.py","file_url":"https://github.com/dlmacedo/entropic-out-of-distribution-detection/blob/HEAD/models/proper_resnet.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":"5f5d80dbb2ac3d2d"}},{"code_sha256_prefix":"cd685832edf82a88","entry":"ResNet56","repo":"dlmacedo/entropic-out-of-distribution-detection","repo_kind":"official","path":"models/proper_resnet.py","file_url":"https://github.com/dlmacedo/entropic-out-of-distribution-detection/blob/HEAD/models/proper_resnet.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":"cd685832edf82a88"}},{"code_sha256_prefix":"976b8db044b3d56e","entry":"getCIFAR10","repo":"dlmacedo/entropic-out-of-distribution-detection","repo_kind":"official","path":"data_loader.py","file_url":"https://github.com/dlmacedo/entropic-out-of-distribution-detection/blob/HEAD/data_loader.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":"976b8db044b3d56e"}},{"code_sha256_prefix":"cc1807df0262cc5b","entry":"getCIFAR100","repo":"dlmacedo/entropic-out-of-distribution-detection","repo_kind":"official","path":"data_loader.py","file_url":"https://github.com/dlmacedo/entropic-out-of-distribution-detection/blob/HEAD/data_loader.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":"cc1807df0262cc5b"}},{"code_sha256_prefix":"87ada4b019deb68f","entry":"getSVHN","repo":"dlmacedo/entropic-out-of-distribution-detection","repo_kind":"official","path":"data_loader.py","file_url":"https://github.com/dlmacedo/entropic-out-of-distribution-detection/blob/HEAD/data_loader.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":"87ada4b019deb68f"}},{"code_sha256_prefix":"73ff0adcd82b148b","entry":"get_curve","repo":"dlmacedo/entropic-out-of-distribution-detection","repo_kind":"official","path":"calculate_log.py","file_url":"https://github.com/dlmacedo/entropic-out-of-distribution-detection/blob/HEAD/calculate_log.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":"73ff0adcd82b148b"}},{"code_sha256_prefix":"b84ce30ecbbc77e4","entry":"metric","repo":"dlmacedo/entropic-out-of-distribution-detection","repo_kind":"official","path":"calculate_log.py","file_url":"https://github.com/dlmacedo/entropic-out-of-distribution-detection/blob/HEAD/calculate_log.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":"b84ce30ecbbc77e4"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}