{"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/neurontune-towards-self-guided-spurious-bias","title":"NeuronTune: Towards Self-Guided Spurious Bias Mitigation","arxiv_id":"2505.24048","date":"2025-05-29","proceeding":null,"authors":["Guangtao Zheng","Wenqian Ye","Aidong Zhang"],"abstract":"Deep neural networks often develop spurious bias, reliance on correlations between non-essential features and classes for predictions. For example, a model may identify objects based on frequently co-occurring backgrounds rather than intrinsic features, resulting in degraded performance on data lacking these correlations. Existing mitigation approaches typically depend on external annotations of spurious correlations, which may be difficult to obtain and are not relevant to the spurious bias in a model. In this paper, we take a step towards self-guided mitigation of spurious bias by proposing NeuronTune, a post hoc method that directly intervenes in a model's internal decision process. Our method probes in a model's latent embedding space to identify and regulate neurons that lead to spurious prediction behaviors. We theoretically justify our approach and show that it brings the model closer to an unbiased one. Unlike previous methods, NeuronTune operates without requiring spurious correlation annotations, making it a practical and effective tool for improving model robustness. Experiments across different architectures and data modalities demonstrate that our method significantly mitigates spurious bias in a self-guided way.","url_abs":"https://arxiv.org/abs/2505.24048v1","url_pdf":"https://arxiv.org/pdf/2505.24048v1.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":"neurontune-towards-self-guided-spurious-bias","repo_url":"https://github.com/gtzheng/neurontune","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[],"methods":[{"method_slug":"hoc","method_name":"HOC"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2505.24048","atlas_url":"https://app.syntology.ai/?focus=2505.24048","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2505.24048"}},"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/gtzheng/neurontune","reach":null}],"summary":{"ran":7,"ran_draft_wrong":1,"unverified":4},"by_repo_kind":{"official":{"samples":12,"ran":8,"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":12,"samples":[{"code_sha256_prefix":"f0e41e9e56aec872","entry":"ClassBalancedSampler","repo":"gtzheng/neurontune","repo_kind":"official","path":"algorithms/neuron_tune.py","file_url":"https://github.com/gtzheng/neurontune/blob/HEAD/algorithms/neuron_tune.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":"f0e41e9e56aec872"}},{"code_sha256_prefix":"a0e653064ea9bb28","entry":"EmbedDataset","repo":"gtzheng/neurontune","repo_kind":"official","path":"algorithms/neuron_tune.py","file_url":"https://github.com/gtzheng/neurontune/blob/HEAD/algorithms/neuron_tune.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":"a0e653064ea9bb28"}},{"code_sha256_prefix":"21f32fcbac2781e6","entry":"GroupBalancedSampler","repo":"gtzheng/neurontune","repo_kind":"official","path":"algorithms/neuron_tune.py","file_url":"https://github.com/gtzheng/neurontune/blob/HEAD/algorithms/neuron_tune.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":"21f32fcbac2781e6"}},{"code_sha256_prefix":"7b44ba5417ec1392","entry":"JointRandomSampler","repo":"gtzheng/neurontune","repo_kind":"official","path":"algorithms/neuron_tune.py","file_url":"https://github.com/gtzheng/neurontune/blob/HEAD/algorithms/neuron_tune.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":"7b44ba5417ec1392"}},{"code_sha256_prefix":"b972838e4feca157","entry":"MaskLayer","repo":"gtzheng/neurontune","repo_kind":"official","path":"algorithms/neuron_tune.py","file_url":"https://github.com/gtzheng/neurontune/blob/HEAD/algorithms/neuron_tune.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":"b972838e4feca157"}},{"code_sha256_prefix":"01aaa3628e4c6a24","entry":"RandomSampler","repo":"gtzheng/neurontune","repo_kind":"official","path":"algorithms/neuron_tune.py","file_url":"https://github.com/gtzheng/neurontune/blob/HEAD/algorithms/neuron_tune.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":"01aaa3628e4c6a24"}},{"code_sha256_prefix":"a57a74a821996c30","entry":"ShortcutSampler","repo":"gtzheng/neurontune","repo_kind":"official","path":"algorithms/neuron_tune.py","file_url":"https://github.com/gtzheng/neurontune/blob/HEAD/algorithms/neuron_tune.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":"a57a74a821996c30"}},{"code_sha256_prefix":"92b6651ceba09ac2","entry":"extract_feature_info","repo":"gtzheng/neurontune","repo_kind":"official","path":"algorithms/neuron_tune.py","file_url":"https://github.com/gtzheng/neurontune/blob/HEAD/algorithms/neuron_tune.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"92b6651ceba09ac2"}},{"code_sha256_prefix":"7a4ce898b756fc69","entry":"Algorithm","repo":"gtzheng/neurontune","repo_kind":"official","path":"algorithms/neuron_tune.py","file_url":"https://github.com/gtzheng/neurontune/blob/HEAD/algorithms/neuron_tune.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":"7a4ce898b756fc69"}},{"code_sha256_prefix":"3834a31863be3927","entry":"MaskedClassifier","repo":"gtzheng/neurontune","repo_kind":"official","path":"algorithms/neuron_tune.py","file_url":"https://github.com/gtzheng/neurontune/blob/HEAD/algorithms/neuron_tune.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":"3834a31863be3927"}},{"code_sha256_prefix":"27146a31d6d6752d","entry":"NeuronTune","repo":"gtzheng/neurontune","repo_kind":"official","path":"algorithms/neuron_tune.py","file_url":"https://github.com/gtzheng/neurontune/blob/HEAD/algorithms/neuron_tune.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":"27146a31d6d6752d"}},{"code_sha256_prefix":"ef12d101ba623542","entry":"prepare_data","repo":"gtzheng/neurontune","repo_kind":"official","path":"algorithms/neuron_tune.py","file_url":"https://github.com/gtzheng/neurontune/blob/HEAD/algorithms/neuron_tune.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":"ef12d101ba623542"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}