{"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/metaalign-coordinating-domain-alignment-and","title":"MetaAlign: Coordinating Domain Alignment and Classification for Unsupervised Domain Adaptation","arxiv_id":"2103.13575","date":"2021-03-25","proceeding":"CVPR 2021 1","authors":["Guoqiang Wei","Cuiling Lan","Wenjun Zeng","Zhibo Chen"],"abstract":"For unsupervised domain adaptation (UDA), to alleviate the effect of domain shift, many approaches align the source and target domains in the feature space by adversarial learning or by explicitly aligning their statistics. However, the optimization objective of such domain alignment is generally not coordinated with that of the object classification task itself such that their descent directions for optimization may be inconsistent. This will reduce the effectiveness of domain alignment in improving the performance of UDA. In this paper, we aim to study and alleviate the optimization inconsistency problem between the domain alignment and classification tasks. We address this by proposing an effective meta-optimization based strategy dubbed MetaAlign, where we treat the domain alignment objective and the classification objective as the meta-train and meta-test tasks in a meta-learning scheme. MetaAlign encourages both tasks to be optimized in a coordinated way, which maximizes the inner product of the gradients of the two tasks during training. Experimental results demonstrate the effectiveness of our proposed method on top of various alignment-based baseline approaches, for tasks of object classification and object detection. MetaAlign helps achieve the state-of-the-art performance.","url_abs":"https://arxiv.org/abs/2103.13575v1","url_pdf":"https://arxiv.org/pdf/2103.13575v1.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":"metaalign-coordinating-domain-alignment-and","repo_url":"https://github.com/microsoft/UDA","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"classification-1","task_name":"Classification"},{"task_slug":"domain-adaptation","task_name":"Domain Adaptation"},{"task_slug":"classification","task_name":"General Classification"},{"task_slug":"meta-learning","task_name":"Meta-Learning"},{"task_slug":"object","task_name":"Object"},{"task_slug":"object-detection","task_name":"Object Detection"},{"task_slug":"unsupervised-domain-adaptation","task_name":"Unsupervised Domain Adaptation"},{"task_slug":"object-detection-1","task_name":"object-detection"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2103.13575","atlas_url":"https://app.syntology.ai/?focus=2103.13575","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2103.13575"}},"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/microsoft/UDA","reach":null}],"summary":{"ran":1,"ran_draft_wrong":3,"ran_honours":1,"unverified":7},"by_repo_kind":{"listed":{"samples":12,"ran":5,"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":"1abfdd785dd465dc","entry":"WeightBCE","repo":"microsoft/UDA","repo_kind":"listed","path":"trainer/da/toalign.py","file_url":"https://github.com/microsoft/UDA/blob/HEAD/trainer/da/toalign.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1abfdd785dd465dc"}},{"code_sha256_prefix":"0684cec8a1bb4ee7","entry":"d_align_uda","repo":"microsoft/UDA","repo_kind":"listed","path":"trainer/da/toalign.py","file_url":"https://github.com/microsoft/UDA/blob/HEAD/trainer/da/toalign.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":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0684cec8a1bb4ee7"}},{"code_sha256_prefix":"8b9cea73effc2f3f","entry":"entropy_func","repo":"microsoft/UDA","repo_kind":"listed","path":"trainer/da/toalign.py","file_url":"https://github.com/microsoft/UDA/blob/HEAD/trainer/da/toalign.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8b9cea73effc2f3f"}},{"code_sha256_prefix":"1374e0a62b470535","entry":"grl_hook","repo":"microsoft/UDA","repo_kind":"listed","path":"trainer/da/toalign.py","file_url":"https://github.com/microsoft/UDA/blob/HEAD/trainer/da/toalign.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":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1374e0a62b470535"}},{"code_sha256_prefix":"0a5764019d61e108","entry":"inv_lr_scheduler","repo":"microsoft/UDA","repo_kind":"listed","path":"trainer/da/toalign.py","file_url":"https://github.com/microsoft/UDA/blob/HEAD/trainer/da/toalign.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0a5764019d61e108"}},{"code_sha256_prefix":"e4d8b30d56dbb7f3","entry":"BaseTrainer","repo":"microsoft/UDA","repo_kind":"listed","path":"trainer/da/toalign.py","file_url":"https://github.com/microsoft/UDA/blob/HEAD/trainer/da/toalign.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e4d8b30d56dbb7f3"}},{"code_sha256_prefix":"41a98ec5329fd73f","entry":"DANN","repo":"microsoft/UDA","repo_kind":"listed","path":"trainer/da/toalign.py","file_url":"https://github.com/microsoft/UDA/blob/HEAD/trainer/da/toalign.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"41a98ec5329fd73f"}},{"code_sha256_prefix":"749e206ff3a3ceb8","entry":"ToAlign","repo":"microsoft/UDA","repo_kind":"listed","path":"trainer/da/toalign.py","file_url":"https://github.com/microsoft/UDA/blob/HEAD/trainer/da/toalign.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"749e206ff3a3ceb8"}},{"code_sha256_prefix":"4233973b97f8665f","entry":"d_align_msda","repo":"microsoft/UDA","repo_kind":"listed","path":"trainer/da/toalign.py","file_url":"https://github.com/microsoft/UDA/blob/HEAD/trainer/da/toalign.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4233973b97f8665f"}},{"code_sha256_prefix":"d56aff948c2f12a0","entry":"get_coeff","repo":"microsoft/UDA","repo_kind":"listed","path":"trainer/da/toalign.py","file_url":"https://github.com/microsoft/UDA/blob/HEAD/trainer/da/toalign.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d56aff948c2f12a0"}},{"code_sha256_prefix":"e320fa657d11368b","entry":"save_model","repo":"microsoft/UDA","repo_kind":"listed","path":"trainer/da/toalign.py","file_url":"https://github.com/microsoft/UDA/blob/HEAD/trainer/da/toalign.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e320fa657d11368b"}},{"code_sha256_prefix":"e04cd9b9c5fb70e0","entry":"write_log","repo":"microsoft/UDA","repo_kind":"listed","path":"trainer/da/toalign.py","file_url":"https://github.com/microsoft/UDA/blob/HEAD/trainer/da/toalign.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e04cd9b9c5fb70e0"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}