{"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/on-non-random-missing-labels-in-semi-1","title":"On Non-Random Missing Labels in Semi-Supervised Learning","arxiv_id":"2206.14923","date":"2022-06-29","proceeding":"ICLR 2022 4","authors":["Xinting Hu","Yulei Niu","Chunyan Miao","Xian-Sheng Hua","Hanwang Zhang"],"abstract":"Semi-Supervised Learning (SSL) is fundamentally a missing label problem, in which the label Missing Not At Random (MNAR) problem is more realistic and challenging, compared to the widely-adopted yet naive Missing Completely At Random assumption where both labeled and unlabeled data share the same class distribution. Different from existing SSL solutions that overlook the role of \"class\" in causing the non-randomness, e.g., users are more likely to label popular classes, we explicitly incorporate \"class\" into SSL. Our method is three-fold: 1) We propose Class-Aware Propensity (CAP) that exploits the unlabeled data to train an improved classifier using the biased labeled data. 2) To encourage rare class training, whose model is low-recall but high-precision that discards too many pseudo-labeled data, we propose Class-Aware Imputation (CAI) that dynamically decreases (or increases) the pseudo-label assignment threshold for rare (or frequent) classes. 3) Overall, we integrate CAP and CAI into a Class-Aware Doubly Robust (CADR) estimator for training an unbiased SSL model. Under various MNAR settings and ablations, our method not only significantly outperforms existing baselines but also surpasses other label bias removal SSL methods. Please check our code at: https://github.com/JoyHuYY1412/CADR-FixMatch.","url_abs":"https://arxiv.org/abs/2206.14923v1","url_pdf":"https://arxiv.org/pdf/2206.14923v1.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":"on-non-random-missing-labels-in-semi-1","repo_url":"https://github.com/joyhuyy1412/cadr-fixmatch","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"imputation","task_name":"Imputation"},{"task_slug":"missing-labels","task_name":"Missing Labels"},{"task_slug":"pseudo-label","task_name":"Pseudo Label"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2206.14923","atlas_url":"https://app.syntology.ai/?focus=2206.14923","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2206.14923"}},"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/joyhuyy1412/cadr-fixmatch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":1,"unverified":5},"by_repo_kind":{"official":{"samples":6,"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":"31b25b344c1f2a8d","entry":"categorical_crossentropy_logdomain","repo":"joyhuyy1412/cadr-fixmatch","repo_kind":"official","path":"fixmatch.py","file_url":"https://github.com/joyhuyy1412/cadr-fixmatch/blob/HEAD/fixmatch.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"31b25b344c1f2a8d"}},{"code_sha256_prefix":"adbbd64e2d9a7066","entry":"CAP_CE_Loss","repo":"joyhuyy1412/cadr-fixmatch","repo_kind":"official","path":"fixmatch.py","file_url":"https://github.com/joyhuyy1412/cadr-fixmatch/blob/HEAD/fixmatch.py","link_basis":"harvester_set","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":"adbbd64e2d9a7066"}},{"code_sha256_prefix":"0802d913d5d3694d","entry":"entropy_from_logits","repo":"joyhuyy1412/cadr-fixmatch","repo_kind":"official","path":"libml/layers.py","file_url":"https://github.com/joyhuyy1412/cadr-fixmatch/blob/HEAD/libml/layers.py","link_basis":"harvester_set","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":"0802d913d5d3694d"}},{"code_sha256_prefix":"d5592d7541ebcb31","entry":"entropy_penalty","repo":"joyhuyy1412/cadr-fixmatch","repo_kind":"official","path":"libml/layers.py","file_url":"https://github.com/joyhuyy1412/cadr-fixmatch/blob/HEAD/libml/layers.py","link_basis":"harvester_set","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":"d5592d7541ebcb31"}},{"code_sha256_prefix":"7545a8bbdc78da08","entry":"log_softmax","repo":"joyhuyy1412/cadr-fixmatch","repo_kind":"official","path":"fixmatch.py","file_url":"https://github.com/joyhuyy1412/cadr-fixmatch/blob/HEAD/fixmatch.py","link_basis":"harvester_set","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":"7545a8bbdc78da08"}},{"code_sha256_prefix":"5d8684fa279a5f80","entry":"smart_shape","repo":"joyhuyy1412/cadr-fixmatch","repo_kind":"official","path":"libml/layers.py","file_url":"https://github.com/joyhuyy1412/cadr-fixmatch/blob/HEAD/libml/layers.py","link_basis":"harvester_set","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":"5d8684fa279a5f80"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}