{"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/sf-da-2-source-free-domain-adaptation-through","title":"SF(DA)$^2$: Source-free Domain Adaptation Through the Lens of Data Augmentation","arxiv_id":"2403.10834","date":"2024-03-16","proceeding":null,"authors":["Uiwon Hwang","Jonghyun Lee","Juhyeon Shin","Sungroh Yoon"],"abstract":"In the face of the deep learning model's vulnerability to domain shift, source-free domain adaptation (SFDA) methods have been proposed to adapt models to new, unseen target domains without requiring access to source domain data. Although the potential benefits of applying data augmentation to SFDA are attractive, several challenges arise such as the dependence on prior knowledge of class-preserving transformations and the increase in memory and computational requirements. In this paper, we propose Source-free Domain Adaptation Through the Lens of Data Augmentation (SF(DA)$^2$), a novel approach that leverages the benefits of data augmentation without suffering from these challenges. We construct an augmentation graph in the feature space of the pretrained model using the neighbor relationships between target features and propose spectral neighborhood clustering to identify partitions in the prediction space. Furthermore, we propose implicit feature augmentation and feature disentanglement as regularization loss functions that effectively utilize class semantic information within the feature space. These regularizers simulate the inclusion of an unlimited number of augmented target features into the augmentation graph while minimizing computational and memory demands. Our method shows superior adaptation performance in SFDA scenarios, including 2D image and 3D point cloud datasets and a highly imbalanced dataset.","url_abs":"https://arxiv.org/abs/2403.10834v1","url_pdf":"https://arxiv.org/pdf/2403.10834v1.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":"sf-da-2-source-free-domain-adaptation-through","repo_url":"https://github.com/shinyflight/sfda2","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"data-augmentation","task_name":"Data Augmentation"},{"task_slug":"disentanglement","task_name":"Disentanglement"},{"task_slug":"domain-adaptation","task_name":"Domain Adaptation"},{"task_slug":"source-free-domain-adaptation","task_name":"Source-Free Domain Adaptation"},{"task_slug":"unsupervised-domain-adaptation","task_name":"Unsupervised Domain Adaptation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/domain-adaptation-on-domainnet-1","task":"Domain Adaptation","dataset":"DomainNet","model":"SFDA2","rank_in_archive_order":2,"of":4,"metrics":{"Accuracy":"68.3"},"uses_additional_data":false},{"leaderboard":"/sota/domain-adaptation-on-office-31","task":"Domain Adaptation","dataset":"Office-31","model":"SFDA2","rank_in_archive_order":16,"of":40,"metrics":{"Average Accuracy":"89.9"},"uses_additional_data":false},{"leaderboard":"/sota/domain-adaptation-on-visda2017","task":"Domain Adaptation","dataset":"VisDA2017","model":"SFDA2++","rank_in_archive_order":8,"of":28,"metrics":{"Accuracy":"89.6"},"uses_additional_data":false},{"leaderboard":"/sota/domain-adaptation-on-visda2017","task":"Domain Adaptation","dataset":"VisDA2017","model":"SFDA2","rank_in_archive_order":12,"of":28,"metrics":{"Accuracy":"88.1"},"uses_additional_data":false},{"leaderboard":"/sota/source-free-domain-adaptation-on-visda-2017","task":"Source-Free Domain Adaptation","dataset":"VisDA-2017","model":"SFDA2++","rank_in_archive_order":2,"of":10,"metrics":{"Accuracy":"89.6"},"uses_additional_data":false},{"leaderboard":"/sota/source-free-domain-adaptation-on-visda-2017","task":"Source-Free Domain Adaptation","dataset":"VisDA-2017","model":"SFDA2","rank_in_archive_order":4,"of":10,"metrics":{"Accuracy":"88.1"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-domain-adaptation-on-visda2017","task":"Unsupervised Domain Adaptation","dataset":"VisDA2017","model":"SFDA2++","rank_in_archive_order":6,"of":13,"metrics":{"Accuracy":"89.6"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-domain-adaptation-on-visda2017","task":"Unsupervised Domain Adaptation","dataset":"VisDA2017","model":"SFDA2","rank_in_archive_order":9,"of":13,"metrics":{"Accuracy":"88.1"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2403.10834","atlas_url":"https://app.syntology.ai/?focus=2403.10834","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2403.10834"}},"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/shinyflight/sfda2","reach":null}],"summary":{"ran_fixture":1,"unverified":4},"by_repo_kind":{"official":{"samples":5,"ran":1,"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":5,"samples":[{"code_sha256_prefix":"d6d96524f26e5205","entry":"cal_acc","repo":"shinyflight/sfda2","repo_kind":"official","path":"tar_adaptation.py","file_url":"https://github.com/shinyflight/sfda2/blob/HEAD/tar_adaptation.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"d6d96524f26e5205"}},{"code_sha256_prefix":"5dfadd4956614c5e","entry":"IFA","repo":"shinyflight/sfda2","repo_kind":"official","path":"tar_adaptation.py","file_url":"https://github.com/shinyflight/sfda2/blob/HEAD/tar_adaptation.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"5dfadd4956614c5e"}},{"code_sha256_prefix":"fccc39f7a8d71f70","entry":"data_load","repo":"shinyflight/sfda2","repo_kind":"official","path":"tar_adaptation.py","file_url":"https://github.com/shinyflight/sfda2/blob/HEAD/tar_adaptation.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"fccc39f7a8d71f70"}},{"code_sha256_prefix":"0aa61f2cdc031467","entry":"train_target","repo":"shinyflight/sfda2","repo_kind":"official","path":"tar_adaptation.py","file_url":"https://github.com/shinyflight/sfda2/blob/HEAD/tar_adaptation.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"0aa61f2cdc031467"}},{"code_sha256_prefix":"6cc43b5c980946f4","entry":"update_CV","repo":"shinyflight/sfda2","repo_kind":"official","path":"tar_adaptation.py","file_url":"https://github.com/shinyflight/sfda2/blob/HEAD/tar_adaptation.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"6cc43b5c980946f4"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}