{"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/when-to-learn-what-model-adaptive-data","title":"When to Learn What: Model-Adaptive Data Augmentation Curriculum","arxiv_id":"2309.04747","date":"2023-09-09","proceeding":"ICCV 2023 1","authors":["Chengkai Hou","Jieyu Zhang","Tianyi Zhou"],"abstract":"Data augmentation (DA) is widely used to improve the generalization of neural networks by enforcing the invariances and symmetries to pre-defined transformations applied to input data. However, a fixed augmentation policy may have different effects on each sample in different training stages but existing approaches cannot adjust the policy to be adaptive to each sample and the training model. In this paper, we propose Model Adaptive Data Augmentation (MADAug) that jointly trains an augmentation policy network to teach the model when to learn what. Unlike previous work, MADAug selects augmentation operators for each input image by a model-adaptive policy varying between training stages, producing a data augmentation curriculum optimized for better generalization. In MADAug, we train the policy through a bi-level optimization scheme, which aims to minimize a validation-set loss of a model trained using the policy-produced data augmentations. We conduct an extensive evaluation of MADAug on multiple image classification tasks and network architectures with thorough comparisons to existing DA approaches. MADAug outperforms or is on par with other baselines and exhibits better fairness: it brings improvement to all classes and more to the difficult ones. Moreover, MADAug learned policy shows better performance when transferred to fine-grained datasets. In addition, the auto-optimized policy in MADAug gradually introduces increasing perturbations and naturally forms an easy-to-hard curriculum.","url_abs":"https://arxiv.org/abs/2309.04747v2","url_pdf":"https://arxiv.org/pdf/2309.04747v2.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":"when-to-learn-what-model-adaptive-data","repo_url":"https://github.com/jackhck/madaug","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"data-augmentation","task_name":"Data Augmentation"},{"task_slug":"fairness","task_name":"Fairness"},{"task_slug":"image-classification","task_name":"Image Classification"},{"task_slug":"image-classification","task_name":"image-classification"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2309.04747","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2309.04747"}},"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":"deterministic:regex_extraction","url":"https://github.com/JackHck/MADAug","reach":null}],"summary":{"ran_draft_wrong":6,"ran_fixture":14,"ran_violates":1,"ran":1,"ran_honours":1,"unverified":1},"by_repo_kind":{"official":{"samples":24,"ran":23,"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":24,"samples":[{"code_sha256_prefix":"231310cc94015850","entry":"AutoContrast","repo":"JackHck/MADAug","repo_kind":"official","path":"adaptive_augmentor.py","file_url":"https://github.com/JackHck/MADAug/blob/HEAD/adaptive_augmentor.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":"231310cc94015850"}},{"code_sha256_prefix":"75ed82aa32df43b7","entry":"Brightness","repo":"JackHck/MADAug","repo_kind":"official","path":"adaptive_augmentor.py","file_url":"https://github.com/JackHck/MADAug/blob/HEAD/adaptive_augmentor.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":"75ed82aa32df43b7"}},{"code_sha256_prefix":"de171eb052fc4c75","entry":"Color","repo":"JackHck/MADAug","repo_kind":"official","path":"adaptive_augmentor.py","file_url":"https://github.com/JackHck/MADAug/blob/HEAD/adaptive_augmentor.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":"de171eb052fc4c75"}},{"code_sha256_prefix":"c30c561be0548783","entry":"Contrast","repo":"JackHck/MADAug","repo_kind":"official","path":"adaptive_augmentor.py","file_url":"https://github.com/JackHck/MADAug/blob/HEAD/adaptive_augmentor.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":"c30c561be0548783"}},{"code_sha256_prefix":"1b34ee8bad446181","entry":"Cutout","repo":"JackHck/MADAug","repo_kind":"official","path":"adaptive_augmentor.py","file_url":"https://github.com/JackHck/MADAug/blob/HEAD/adaptive_augmentor.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":"1b34ee8bad446181"}},{"code_sha256_prefix":"6485359d69298193","entry":"CutoutAbs","repo":"JackHck/MADAug","repo_kind":"official","path":"adaptive_augmentor.py","file_url":"https://github.com/JackHck/MADAug/blob/HEAD/adaptive_augmentor.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":"6485359d69298193"}},{"code_sha256_prefix":"8c6c7db6bb443e07","entry":"Equalize","repo":"JackHck/MADAug","repo_kind":"official","path":"adaptive_augmentor.py","file_url":"https://github.com/JackHck/MADAug/blob/HEAD/adaptive_augmentor.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":"8c6c7db6bb443e07"}},{"code_sha256_prefix":"342c3edf6c22ff5f","entry":"Flip","repo":"JackHck/MADAug","repo_kind":"official","path":"adaptive_augmentor.py","file_url":"https://github.com/JackHck/MADAug/blob/HEAD/adaptive_augmentor.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":"342c3edf6c22ff5f"}},{"code_sha256_prefix":"5adb748bc6564a2e","entry":"Identity","repo":"JackHck/MADAug","repo_kind":"official","path":"adaptive_augmentor.py","file_url":"https://github.com/JackHck/MADAug/blob/HEAD/adaptive_augmentor.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5adb748bc6564a2e"}},{"code_sha256_prefix":"065cd9cb0840a037","entry":"Invert","repo":"JackHck/MADAug","repo_kind":"official","path":"adaptive_augmentor.py","file_url":"https://github.com/JackHck/MADAug/blob/HEAD/adaptive_augmentor.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":"065cd9cb0840a037"}},{"code_sha256_prefix":"b4ab295dcde498bd","entry":"PolicyHistory","repo":"JackHck/MADAug","repo_kind":"official","path":"adaptive_augmentor.py","file_url":"https://github.com/JackHck/MADAug/blob/HEAD/adaptive_augmentor.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":"b4ab295dcde498bd"}},{"code_sha256_prefix":"5728c22d6623c134","entry":"Posterize","repo":"JackHck/MADAug","repo_kind":"official","path":"adaptive_augmentor.py","file_url":"https://github.com/JackHck/MADAug/blob/HEAD/adaptive_augmentor.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":"5728c22d6623c134"}},{"code_sha256_prefix":"21c6427b09f14649","entry":"Rotate","repo":"JackHck/MADAug","repo_kind":"official","path":"adaptive_augmentor.py","file_url":"https://github.com/JackHck/MADAug/blob/HEAD/adaptive_augmentor.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":"21c6427b09f14649"}},{"code_sha256_prefix":"e3d6ffe8ddee37bf","entry":"Sharpness","repo":"JackHck/MADAug","repo_kind":"official","path":"adaptive_augmentor.py","file_url":"https://github.com/JackHck/MADAug/blob/HEAD/adaptive_augmentor.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":"e3d6ffe8ddee37bf"}},{"code_sha256_prefix":"f6ae043c08b1cad6","entry":"ShearX","repo":"JackHck/MADAug","repo_kind":"official","path":"adaptive_augmentor.py","file_url":"https://github.com/JackHck/MADAug/blob/HEAD/adaptive_augmentor.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":"f6ae043c08b1cad6"}},{"code_sha256_prefix":"b6880407116d0216","entry":"ShearY","repo":"JackHck/MADAug","repo_kind":"official","path":"adaptive_augmentor.py","file_url":"https://github.com/JackHck/MADAug/blob/HEAD/adaptive_augmentor.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":"b6880407116d0216"}},{"code_sha256_prefix":"4f6921b7200a8bda","entry":"Solarize","repo":"JackHck/MADAug","repo_kind":"official","path":"adaptive_augmentor.py","file_url":"https://github.com/JackHck/MADAug/blob/HEAD/adaptive_augmentor.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":"4f6921b7200a8bda"}},{"code_sha256_prefix":"097a4e4e1779e301","entry":"TranslateX","repo":"JackHck/MADAug","repo_kind":"official","path":"adaptive_augmentor.py","file_url":"https://github.com/JackHck/MADAug/blob/HEAD/adaptive_augmentor.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":"097a4e4e1779e301"}},{"code_sha256_prefix":"44a5c51db514e860","entry":"TranslateY","repo":"JackHck/MADAug","repo_kind":"official","path":"adaptive_augmentor.py","file_url":"https://github.com/JackHck/MADAug/blob/HEAD/adaptive_augmentor.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":"44a5c51db514e860"}},{"code_sha256_prefix":"0a90a9e0ab96ceaf","entry":"apply_augment","repo":"JackHck/MADAug","repo_kind":"official","path":"adaptive_augmentor.py","file_url":"https://github.com/JackHck/MADAug/blob/HEAD/adaptive_augmentor.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":"0a90a9e0ab96ceaf"}},{"code_sha256_prefix":"c491601c2e8534c4","entry":"get_augment","repo":"JackHck/MADAug","repo_kind":"official","path":"adaptive_augmentor.py","file_url":"https://github.com/JackHck/MADAug/blob/HEAD/adaptive_augmentor.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":"c491601c2e8534c4"}},{"code_sha256_prefix":"6f6ba9be02bf7c9c","entry":"perturb_param","repo":"JackHck/MADAug","repo_kind":"official","path":"adaptive_augmentor.py","file_url":"https://github.com/JackHck/MADAug/blob/HEAD/adaptive_augmentor.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6f6ba9be02bf7c9c"}},{"code_sha256_prefix":"f86c9dd77bb5afe7","entry":"stop_gradient","repo":"JackHck/MADAug","repo_kind":"official","path":"adaptive_augmentor.py","file_url":"https://github.com/JackHck/MADAug/blob/HEAD/adaptive_augmentor.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"DEP_MISSING","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f86c9dd77bb5afe7"}},{"code_sha256_prefix":"d8765ed2b78dd264","entry":"MDAAug","repo":"JackHck/MADAug","repo_kind":"official","path":"adaptive_augmentor.py","file_url":"https://github.com/JackHck/MADAug/blob/HEAD/adaptive_augmentor.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":"d8765ed2b78dd264"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}