{"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/pads-policy-adapted-sampling-for-visual","title":"PADS: Policy-Adapted Sampling for Visual Similarity Learning","arxiv_id":"2003.11113","date":"2020-03-24","proceeding":"CVPR 2020 6","authors":["Karsten Roth","Timo Milbich","Björn Ommer"],"abstract":"Learning visual similarity requires to learn relations, typically between triplets of images. Albeit triplet approaches being powerful, their computational complexity mostly limits training to only a subset of all possible training triplets. Thus, sampling strategies that decide when to use which training sample during learning are crucial. Currently, the prominent paradigm are fixed or curriculum sampling strategies that are predefined before training starts. However, the problem truly calls for a sampling process that adjusts based on the actual state of the similarity representation during training. We, therefore, employ reinforcement learning and have a teacher network adjust the sampling distribution based on the current state of the learner network, which represents visual similarity. Experiments on benchmark datasets using standard triplet-based losses show that our adaptive sampling strategy significantly outperforms fixed sampling strategies. Moreover, although our adaptive sampling is only applied on top of basic triplet-learning frameworks, we reach competitive results to state-of-the-art approaches that employ diverse additional learning signals or strong ensemble architectures. Code can be found under https://github.com/Confusezius/CVPR2020_PADS.","url_abs":"https://arxiv.org/abs/2003.11113v2","url_pdf":"https://arxiv.org/pdf/2003.11113v2.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":"pads-policy-adapted-sampling-for-visual","repo_url":"https://github.com/Confusezius/CVPR2020_PADS","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"metric-learning","task_name":"Metric Learning"},{"task_slug":"reinforcement-learning","task_name":"Reinforcement Learning"},{"task_slug":null,"task_name":"Triplet"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/metric-learning-on-cars196","task":"Metric Learning","dataset":"CARS196","model":"ResNet50 (128) + PADS","rank_in_archive_order":29,"of":36,"metrics":{"R@1":"83.5"},"uses_additional_data":true},{"leaderboard":"/sota/metric-learning-on-cub-200-2011","task":"Metric Learning","dataset":"CUB-200-2011","model":"ResNet50 (128) + PADS","rank_in_archive_order":17,"of":30,"metrics":{"R@1":"67.3"},"uses_additional_data":true},{"leaderboard":"/sota/metric-learning-on-stanford-online-products-1","task":"Metric Learning","dataset":"Stanford Online Products","model":"ResNet50 (128) + PADS","rank_in_archive_order":32,"of":33,"metrics":{"R@1":"76.5"},"uses_additional_data":true}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2003.11113","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2003.11113"}},"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":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Confusezius/CVPR2020_PADS","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":10},"by_repo_kind":{"official":{"samples":10,"ran":0,"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":"eb6f6a8712b895c2","entry":"distance_measure","repo":"Confusezius/CVPR2020_PADS","repo_kind":"official","path":"evaluate.py","file_url":"https://github.com/Confusezius/CVPR2020_PADS/blob/HEAD/evaluate.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":"eb6f6a8712b895c2"}},{"code_sha256_prefix":"667f22002df30035","entry":"f1_score","repo":"Confusezius/CVPR2020_PADS","repo_kind":"official","path":"auxiliaries.py","file_url":"https://github.com/Confusezius/CVPR2020_PADS/blob/HEAD/auxiliaries.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":"667f22002df30035"}},{"code_sha256_prefix":"e893025d6b83f9c4","entry":"gimme_params","repo":"Confusezius/CVPR2020_PADS","repo_kind":"official","path":"auxiliaries.py","file_url":"https://github.com/Confusezius/CVPR2020_PADS/blob/HEAD/auxiliaries.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":"e893025d6b83f9c4"}},{"code_sha256_prefix":"cae4f556b09f25d9","entry":"gimme_save_string","repo":"Confusezius/CVPR2020_PADS","repo_kind":"official","path":"auxiliaries.py","file_url":"https://github.com/Confusezius/CVPR2020_PADS/blob/HEAD/auxiliaries.py","link_basis":"harvester_set","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":"cae4f556b09f25d9"}},{"code_sha256_prefix":"0f763cf3b0f17255","entry":"give_CARS196_datasets","repo":"Confusezius/CVPR2020_PADS","repo_kind":"official","path":"datasets.py","file_url":"https://github.com/Confusezius/CVPR2020_PADS/blob/HEAD/datasets.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":"0f763cf3b0f17255"}},{"code_sha256_prefix":"97b7e4f5f24b8a40","entry":"give_CUB200_datasets","repo":"Confusezius/CVPR2020_PADS","repo_kind":"official","path":"datasets.py","file_url":"https://github.com/Confusezius/CVPR2020_PADS/blob/HEAD/datasets.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":"97b7e4f5f24b8a40"}},{"code_sha256_prefix":"3528797a933b875e","entry":"give_dataloaders","repo":"Confusezius/CVPR2020_PADS","repo_kind":"official","path":"datasets.py","file_url":"https://github.com/Confusezius/CVPR2020_PADS/blob/HEAD/datasets.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":"3528797a933b875e"}},{"code_sha256_prefix":"b3cf33b121707ec1","entry":"include_pads_args","repo":"Confusezius/CVPR2020_PADS","repo_kind":"official","path":"PADS_utilities.py","file_url":"https://github.com/Confusezius/CVPR2020_PADS/blob/HEAD/PADS_utilities.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":"b3cf33b121707ec1"}},{"code_sha256_prefix":"ac8bd7c0c9d5cc4c","entry":"loss_select","repo":"Confusezius/CVPR2020_PADS","repo_kind":"official","path":"losses.py","file_url":"https://github.com/Confusezius/CVPR2020_PADS/blob/HEAD/losses.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":"ac8bd7c0c9d5cc4c"}},{"code_sha256_prefix":"bdf29c0d682591c7","entry":"multi_getattr","repo":"Confusezius/CVPR2020_PADS","repo_kind":"official","path":"netlib.py","file_url":"https://github.com/Confusezius/CVPR2020_PADS/blob/HEAD/netlib.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":"bdf29c0d682591c7"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}