{"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/noise-contrastive-estimation-with-soft","title":"Towards noise contrastive estimation with soft targets for conditional models","arxiv_id":"2404.14076","date":"2024-04-22","proceeding":null,"authors":["Johannes Hugger","Virginie Uhlmann"],"abstract":"Soft targets combined with the cross-entropy loss have shown to improve generalization performance of deep neural networks on supervised classification tasks. The standard cross-entropy loss however assumes data to be categorically distributed, which may often not be the case in practice. In contrast, InfoNCE does not rely on such an explicit assumption but instead implicitly estimates the true conditional through negative sampling. Unfortunately, it cannot be combined with soft targets in its standard formulation, hindering its use in combination with sophisticated training strategies. In this paper, we address this limitation by proposing a loss function that is compatible with probabilistic targets. Our new soft target InfoNCE loss is conceptually simple, efficient to compute, and can be motivated through the framework of noise contrastive estimation. Using a toy example, we demonstrate shortcomings of the categorical distribution assumption of cross-entropy, and discuss implications of sampling from soft distributions. We observe that soft target InfoNCE performs on par with strong soft target cross-entropy baselines and outperforms hard target NLL and InfoNCE losses on popular benchmarks, including ImageNet. Finally, we provide a simple implementation of our loss, geared towards supervised classification and fully compatible with deep classification models trained with cross-entropy.","url_abs":"https://arxiv.org/abs/2404.14076v2","url_pdf":"https://arxiv.org/pdf/2404.14076v2.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":"noise-contrastive-estimation-with-soft","repo_url":"https://github.com/uhlmanngroup/soft-target-infonce","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[],"methods":[{"method_slug":"infonce","method_name":"InfoNCE"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2404.14076","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2404.14076"}},"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/uhlmanngroup/soft-target-infonce","reach":{"status":"ok"}}],"summary":{"ran":4,"unverified":2},"by_repo_kind":{"official":{"samples":6,"ran":4,"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":6,"samples":[{"code_sha256_prefix":"8df2b0d7de3b78bb","entry":"build_transform","repo":"uhlmanngroup/soft-target-infonce","repo_kind":"official","path":"util/data.py","file_url":"https://github.com/uhlmanngroup/soft-target-infonce/blob/HEAD/util/data.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":"8df2b0d7de3b78bb"}},{"code_sha256_prefix":"66d034d2868cf2e3","entry":"mlp","repo":"uhlmanngroup/soft-target-infonce","repo_kind":"official","path":"util/vit.py","file_url":"https://github.com/uhlmanngroup/soft-target-infonce/blob/HEAD/util/vit.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":"66d034d2868cf2e3"}},{"code_sha256_prefix":"6caffa789f1bdabe","entry":"one_hot","repo":"uhlmanngroup/soft-target-infonce","repo_kind":"official","path":"util/transforms.py","file_url":"https://github.com/uhlmanngroup/soft-target-infonce/blob/HEAD/util/transforms.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":"6caffa789f1bdabe"}},{"code_sha256_prefix":"ddfe3428e11f6357","entry":"smooth_one_hot","repo":"uhlmanngroup/soft-target-infonce","repo_kind":"official","path":"util/transforms.py","file_url":"https://github.com/uhlmanngroup/soft-target-infonce/blob/HEAD/util/transforms.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":"ddfe3428e11f6357"}},{"code_sha256_prefix":"1f2ddd312fd8be3d","entry":"build_dataset","repo":"uhlmanngroup/soft-target-infonce","repo_kind":"official","path":"util/data.py","file_url":"https://github.com/uhlmanngroup/soft-target-infonce/blob/HEAD/util/data.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":"1f2ddd312fd8be3d"}},{"code_sha256_prefix":"73cecca9f3575f09","entry":"concat_all_gather","repo":"uhlmanngroup/soft-target-infonce","repo_kind":"official","path":"loss.py","file_url":"https://github.com/uhlmanngroup/soft-target-infonce/blob/HEAD/loss.py","link_basis":"harvester_set","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":"73cecca9f3575f09"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}