{"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/discover-the-unknown-biased-attribute-of-an","title":"Discover the Unknown Biased Attribute of an Image Classifier","arxiv_id":"2104.14556","date":"2021-04-29","proceeding":"ICCV 2021 10","authors":["Zhiheng Li","Chenliang Xu"],"abstract":"Recent works find that AI algorithms learn biases from data. Therefore, it is urgent and vital to identify biases in AI algorithms. However, the previous bias identification pipeline overly relies on human experts to conjecture potential biases (e.g., gender), which may neglect other underlying biases not realized by humans. To help human experts better find the AI algorithms' biases, we study a new problem in this work -- for a classifier that predicts a target attribute of the input image, discover its unknown biased attribute. To solve this challenging problem, we use a hyperplane in the generative model's latent space to represent an image attribute; thus, the original problem is transformed to optimizing the hyperplane's normal vector and offset. We propose a novel total-variation loss within this framework as the objective function and a new orthogonalization penalty as a constraint. The latter prevents trivial solutions in which the discovered biased attribute is identical with the target or one of the known-biased attributes. Extensive experiments on both disentanglement datasets and real-world datasets show that our method can discover biased attributes and achieve better disentanglement w.r.t. target attributes. Furthermore, the qualitative results show that our method can discover unnoticeable biased attributes for various object and scene classifiers, proving our method's generalizability for detecting biased attributes in diverse domains of images. The code is available at https://git.io/J3kMh.","url_abs":"https://arxiv.org/abs/2104.14556v3","url_pdf":"https://arxiv.org/pdf/2104.14556v3.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":"discover-the-unknown-biased-attribute-of-an","repo_url":"https://github.com/zhihengli-UR/discover_unknown_biases","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"attribute","task_name":"Attribute"},{"task_slug":"disentanglement","task_name":"Disentanglement"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2104.14556","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2104.14556"}},"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/zhihengli-UR/discover_unknown_biases","reach":null}],"summary":{"ran_draft_wrong":3,"ran_honours":1,"ran_fixture":2},"by_repo_kind":{"official":{"samples":6,"ran":6,"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":"6fb15ec9ea6a955e","entry":"hessian_penalty","repo":"zhihengli-UR/discover_unknown_biases","repo_kind":"official","path":"models/hessian_penalty.py","file_url":"https://github.com/zhihengli-UR/discover_unknown_biases/blob/HEAD/models/hessian_penalty.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6fb15ec9ea6a955e"}},{"code_sha256_prefix":"47b42795fd222ceb","entry":"listify","repo":"zhihengli-UR/discover_unknown_biases","repo_kind":"official","path":"models/hessian_penalty.py","file_url":"https://github.com/zhihengli-UR/discover_unknown_biases/blob/HEAD/models/hessian_penalty.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"47b42795fd222ceb"}},{"code_sha256_prefix":"58a0095670c590f1","entry":"multi_layer_second_directional_derivative","repo":"zhihengli-UR/discover_unknown_biases","repo_kind":"official","path":"models/hessian_penalty.py","file_url":"https://github.com/zhihengli-UR/discover_unknown_biases/blob/HEAD/models/hessian_penalty.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"58a0095670c590f1"}},{"code_sha256_prefix":"c56dd27d2f985a09","entry":"multi_stack_var_and_reduce","repo":"zhihengli-UR/discover_unknown_biases","repo_kind":"official","path":"models/hessian_penalty.py","file_url":"https://github.com/zhihengli-UR/discover_unknown_biases/blob/HEAD/models/hessian_penalty.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c56dd27d2f985a09"}},{"code_sha256_prefix":"8de600fe2220e241","entry":"rademacher","repo":"zhihengli-UR/discover_unknown_biases","repo_kind":"official","path":"models/hessian_penalty.py","file_url":"https://github.com/zhihengli-UR/discover_unknown_biases/blob/HEAD/models/hessian_penalty.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8de600fe2220e241"}},{"code_sha256_prefix":"a80c3a078c0322d9","entry":"stack_var_and_reduce","repo":"zhihengli-UR/discover_unknown_biases","repo_kind":"official","path":"models/hessian_penalty.py","file_url":"https://github.com/zhihengli-UR/discover_unknown_biases/blob/HEAD/models/hessian_penalty.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a80c3a078c0322d9"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}