{"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/bias-amplification-enhances-minority-group","title":"Bias Amplification Enhances Minority Group Performance","arxiv_id":"2309.06717","date":"2023-09-13","proceeding":null,"authors":["Gaotang Li","Jiarui Liu","Wei Hu"],"abstract":"Neural networks produced by standard training are known to suffer from poor accuracy on rare subgroups despite achieving high accuracy on average, due to the correlations between certain spurious features and labels. Previous approaches based on worst-group loss minimization (e.g. Group-DRO) are effective in improving worse-group accuracy but require expensive group annotations for all the training samples. In this paper, we focus on the more challenging and realistic setting where group annotations are only available on a small validation set or are not available at all. We propose BAM, a novel two-stage training algorithm: in the first stage, the model is trained using a bias amplification scheme via introducing a learnable auxiliary variable for each training sample; in the second stage, we upweight the samples that the bias-amplified model misclassifies, and then continue training the same model on the reweighted dataset. Empirically, BAM achieves competitive performance compared with existing methods evaluated on spurious correlation benchmarks in computer vision and natural language processing. Moreover, we find a simple stopping criterion based on minimum class accuracy difference that can remove the need for group annotations, with little or no loss in worst-group accuracy. We perform extensive analyses and ablations to verify the effectiveness and robustness of our algorithm in varying class and group imbalance ratios.","url_abs":"https://arxiv.org/abs/2309.06717v2","url_pdf":"https://arxiv.org/pdf/2309.06717v2.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":"bias-amplification-enhances-minority-group","repo_url":"https://github.com/motivationss/bam","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[],"methods":[{"method_slug":"bam","method_name":"BAM"},{"method_slug":"focus","method_name":"Focus"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2309.06717","atlas_url":"https://app.syntology.ai/?focus=2309.06717","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2309.06717"}},"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/motivationss/bam","reach":{"status":"ok"}}],"summary":{"ran_fixture":1,"ran":6,"ran_draft_wrong":1,"unverified":1},"by_repo_kind":{"official":{"samples":9,"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":9,"samples":[{"code_sha256_prefix":"cac113ca87b9d9f3","entry":"acc_and_f1","repo":"motivationss/bam","repo_kind":"official","path":"utils_glue.py","file_url":"https://github.com/motivationss/bam/blob/HEAD/utils_glue.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cac113ca87b9d9f3"}},{"code_sha256_prefix":"621de5dd9c62c06d","entry":"accuracy","repo":"motivationss/bam","repo_kind":"official","path":"utils.py","file_url":"https://github.com/motivationss/bam/blob/HEAD/utils.py","link_basis":"harvester_set","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":"621de5dd9c62c06d"}},{"code_sha256_prefix":"48239cb88a898293","entry":"convert_examples_to_features","repo":"motivationss/bam","repo_kind":"official","path":"utils_glue.py","file_url":"https://github.com/motivationss/bam/blob/HEAD/utils_glue.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":"48239cb88a898293"}},{"code_sha256_prefix":"2b8de0efd0313a25","entry":"cvar_value","repo":"motivationss/bam","repo_kind":"official","path":"joint_dro.py","file_url":"https://github.com/motivationss/bam/blob/HEAD/joint_dro.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2b8de0efd0313a25"}},{"code_sha256_prefix":"61b1e0d52ad3cf0d","entry":"generate_random","repo":"motivationss/bam","repo_kind":"official","path":"run_expt.py","file_url":"https://github.com/motivationss/bam/blob/HEAD/run_expt.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"61b1e0d52ad3cf0d"}},{"code_sha256_prefix":"b87d45353a72914f","entry":"huber_loss","repo":"motivationss/bam","repo_kind":"official","path":"utils.py","file_url":"https://github.com/motivationss/bam/blob/HEAD/utils.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":"b87d45353a72914f"}},{"code_sha256_prefix":"99d63b1599cabd6b","entry":"l1_loss","repo":"motivationss/bam","repo_kind":"official","path":"utils.py","file_url":"https://github.com/motivationss/bam/blob/HEAD/utils.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":"99d63b1599cabd6b"}},{"code_sha256_prefix":"66f24088c5c65dc9","entry":"sub_args_input","repo":"motivationss/bam","repo_kind":"official","path":"run_metaScript.py","file_url":"https://github.com/motivationss/bam/blob/HEAD/run_metaScript.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"66f24088c5c65dc9"}},{"code_sha256_prefix":"3c241ecfe3749a6d","entry":"simple_accuracy","repo":"motivationss/bam","repo_kind":"official","path":"utils_glue.py","file_url":"https://github.com/motivationss/bam/blob/HEAD/utils_glue.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":"3c241ecfe3749a6d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}