{"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/improving-the-accuracy-robustness-trade-off","title":"Improving the Accuracy-Robustness Trade-Off of Classifiers via Adaptive Smoothing","arxiv_id":"2301.12554","date":"2023-01-29","proceeding":null,"authors":["Yatong Bai","Brendon G. Anderson","Aerin Kim","Somayeh Sojoudi"],"abstract":"While prior research has proposed a plethora of methods that build neural classifiers robust against adversarial robustness, practitioners are still reluctant to adopt them due to their unacceptably severe clean accuracy penalties. This paper significantly alleviates this accuracy-robustness trade-off by mixing the output probabilities of a standard classifier and a robust classifier, where the standard network is optimized for clean accuracy and is not robust in general. We show that the robust base classifier's confidence difference for correct and incorrect examples is the key to this improvement. In addition to providing intuitions and empirical evidence, we theoretically certify the robustness of the mixed classifier under realistic assumptions. Furthermore, we adapt an adversarial input detector into a mixing network that adaptively adjusts the mixture of the two base models, further reducing the accuracy penalty of achieving robustness. The proposed flexible method, termed \"adaptive smoothing\", can work in conjunction with existing or even future methods that improve clean accuracy, robustness, or adversary detection. Our empirical evaluation considers strong attack methods, including AutoAttack and adaptive attack. On the CIFAR-100 dataset, our method achieves an 85.21% clean accuracy while maintaining a 38.72% $\\ell_\\infty$-AutoAttacked ($\\epsilon = 8/255$) accuracy, becoming the second most robust method on the RobustBench CIFAR-100 benchmark as of submission, while improving the clean accuracy by ten percentage points compared with all listed models. The code that implements our method is available at https://github.com/Bai-YT/AdaptiveSmoothing.","url_abs":"https://arxiv.org/abs/2301.12554v5","url_pdf":"https://arxiv.org/pdf/2301.12554v5.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":"improving-the-accuracy-robustness-trade-off","repo_url":"https://github.com/bai-yt/adaptivesmoothing","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"improving-the-accuracy-robustness-trade-off","repo_url":"https://github.com/codelion/adaptive-classifier","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"adversarial-robustness","task_name":"Adversarial Robustness"}],"methods":[{"method_slug":"base","method_name":"BASE"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/adversarial-robustness-on-cifar-10","task":"Adversarial Robustness","dataset":"CIFAR-10","model":"Mixed classifier","rank_in_archive_order":1,"of":5,"metrics":{"Accuracy":"95.23","Attack: AutoAttack":"68.06","Robust Accuracy":"68.06"},"uses_additional_data":true},{"leaderboard":"/sota/adversarial-robustness-on-cifar-100","task":"Adversarial Robustness","dataset":"CIFAR-100","model":"Mixed Classifier","rank_in_archive_order":1,"of":2,"metrics":{"AutoAttacked Accuracy":"38.72","Clean Accuracy":"85.21"},"uses_additional_data":true}],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2301.12554","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2301.12554"}},"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/codelion/adaptive-classifier","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/bai-yt/adaptivesmoothing","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":8},"by_repo_kind":{"official":{"samples":8,"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":"1c16a011a0349571","entry":"L1_projection","repo":"bai-yt/adaptivesmoothing","repo_kind":"official","path":"comp_autoattack/autopgd_base.py","file_url":"https://github.com/bai-yt/adaptivesmoothing/blob/HEAD/comp_autoattack/autopgd_base.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":"1c16a011a0349571"}},{"code_sha256_prefix":"4734cca6699e8aac","entry":"assemble_data","repo":"bai-yt/adaptivesmoothing","repo_kind":"official","path":"adaptive_smoothing/prepare_data.py","file_url":"https://github.com/bai-yt/adaptivesmoothing/blob/HEAD/adaptive_smoothing/prepare_data.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":"4734cca6699e8aac"}},{"code_sha256_prefix":"f219074d942e3b32","entry":"check_range_output","repo":"bai-yt/adaptivesmoothing","repo_kind":"official","path":"comp_autoattack/checks.py","file_url":"https://github.com/bai-yt/adaptivesmoothing/blob/HEAD/comp_autoattack/checks.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":"f219074d942e3b32"}},{"code_sha256_prefix":"9d155aa2b6ebc707","entry":"comp_pgd_attack","repo":"bai-yt/adaptivesmoothing","repo_kind":"official","path":"adaptive_smoothing/attacks.py","file_url":"https://github.com/bai-yt/adaptivesmoothing/blob/HEAD/adaptive_smoothing/attacks.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":"9d155aa2b6ebc707"}},{"code_sha256_prefix":"070460386bfb8f43","entry":"load_data","repo":"bai-yt/adaptivesmoothing","repo_kind":"official","path":"adaptive_smoothing/prepare_data.py","file_url":"https://github.com/bai-yt/adaptivesmoothing/blob/HEAD/adaptive_smoothing/prepare_data.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":"070460386bfb8f43"}},{"code_sha256_prefix":"cc49f7b6dd72223e","entry":"pgd_update","repo":"bai-yt/adaptivesmoothing","repo_kind":"official","path":"adaptive_smoothing/attacks.py","file_url":"https://github.com/bai-yt/adaptivesmoothing/blob/HEAD/adaptive_smoothing/attacks.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":"cc49f7b6dd72223e"}},{"code_sha256_prefix":"849d15297f8360ce","entry":"reduce","repo":"bai-yt/adaptivesmoothing","repo_kind":"official","path":"adaptive_smoothing/losses.py","file_url":"https://github.com/bai-yt/adaptivesmoothing/blob/HEAD/adaptive_smoothing/losses.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":"849d15297f8360ce"}},{"code_sha256_prefix":"f484c71520aed670","entry":"single_pgd_attack","repo":"bai-yt/adaptivesmoothing","repo_kind":"official","path":"adaptive_smoothing/attacks.py","file_url":"https://github.com/bai-yt/adaptivesmoothing/blob/HEAD/adaptive_smoothing/attacks.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":"f484c71520aed670"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}