{"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/an-alternative-surrogate-loss-for-pgd-based","title":"An Alternative Surrogate Loss for PGD-based Adversarial Testing","arxiv_id":"1910.09338","date":"2019-10-21","proceeding":null,"authors":["Sven Gowal","Jonathan Uesato","Chongli Qin","Po-Sen Huang","Timothy Mann","Pushmeet Kohli"],"abstract":"Adversarial testing methods based on Projected Gradient Descent (PGD) are widely used for searching norm-bounded perturbations that cause the inputs of neural networks to be misclassified. This paper takes a deeper look at these methods and explains the effect of different hyperparameters (i.e., optimizer, step size and surrogate loss). We introduce the concept of MultiTargeted testing, which makes clever use of alternative surrogate losses, and explain when and how MultiTargeted is guaranteed to find optimal perturbations. Finally, we demonstrate that MultiTargeted outperforms more sophisticated methods and often requires less iterative steps than other variants of PGD found in the literature. Notably, MultiTargeted ranks first on MadryLab's white-box MNIST and CIFAR-10 leaderboards, reducing the accuracy of their MNIST model to 88.36% (with $\\ell_\\infty$ perturbations of $\\epsilon = 0.3$) and the accuracy of their CIFAR-10 model to 44.03% (at $\\epsilon = 8/255$). MultiTargeted also ranks first on the TRADES leaderboard reducing the accuracy of their CIFAR-10 model to 53.07% (with $\\ell_\\infty$ perturbations of $\\epsilon = 0.031$).","url_abs":"https://arxiv.org/abs/1910.09338v1","url_pdf":"https://arxiv.org/pdf/1910.09338v1.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":"an-alternative-surrogate-loss-for-pgd-based","repo_url":"https://github.com/MadryLab/cifar10_challenge","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"an-alternative-surrogate-loss-for-pgd-based","repo_url":"https://github.com/MadryLab/mnist_challenge","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"an-alternative-surrogate-loss-for-pgd-based","repo_url":"https://github.com/yaodongyu/TRADES","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"an-alternative-surrogate-loss-for-pgd-based","repo_url":"https://github.com/LayneH/self-adaptive-training","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1910.09338","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1910.09338"}},"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/LayneH/self-adaptive-training","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yaodongyu/TRADES","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/MadryLab/cifar10_challenge","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/MadryLab/mnist_challenge","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":3},"by_repo_kind":{"official":{"samples":3,"ran":3,"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":"bbffec6aadbbfd95","entry":"l2_norm","repo":"yaodongyu/TRADES","repo_kind":"official","path":"trades.py","file_url":"https://github.com/yaodongyu/TRADES/blob/HEAD/trades.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bbffec6aadbbfd95"}},{"code_sha256_prefix":"724c88e3f81d2123","entry":"squared_l2_norm","repo":"yaodongyu/TRADES","repo_kind":"official","path":"trades.py","file_url":"https://github.com/yaodongyu/TRADES/blob/HEAD/trades.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"724c88e3f81d2123"}},{"code_sha256_prefix":"0dbf499b0160d7e3","entry":"trades_loss","repo":"yaodongyu/TRADES","repo_kind":"official","path":"trades.py","file_url":"https://github.com/yaodongyu/TRADES/blob/HEAD/trades.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":"0dbf499b0160d7e3"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}