{"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/hessian-based-analysis-of-large-batch","title":"Hessian-based Analysis of Large Batch Training and Robustness to Adversaries","arxiv_id":"1802.08241","date":"2018-02-22","proceeding":"NeurIPS 2018 12","authors":["Zhewei Yao","Amir Gholami","Qi Lei","Kurt Keutzer","Michael W. Mahoney"],"abstract":"Large batch size training of Neural Networks has been shown to incur accuracy\nloss when trained with the current methods. The exact underlying reasons for\nthis are still not completely understood. Here, we study large batch size\ntraining through the lens of the Hessian operator and robust optimization. In\nparticular, we perform a Hessian based study to analyze exactly how the\nlandscape of the loss function changes when training with large batch size. We\ncompute the true Hessian spectrum, without approximation, by back-propagating\nthe second derivative. Extensive experiments on multiple networks show that\nsaddle-points are not the cause for generalization gap of large batch size\ntraining, and the results consistently show that large batch converges to\npoints with noticeably higher Hessian spectrum. Furthermore, we show that\nrobust training allows one to favor flat areas, as points with large Hessian\nspectrum show poor robustness to adversarial perturbation. We further study\nthis relationship, and provide empirical and theoretical proof that the inner\nloop for robust training is a saddle-free optimization problem \\textit{almost\neverywhere}. We present detailed experiments with five different network\narchitectures, including a residual network, tested on MNIST, CIFAR-10, and\nCIFAR-100 datasets. We have open sourced our method which can be accessed at\n[1].","url_abs":"http://arxiv.org/abs/1802.08241v4","url_pdf":"http://arxiv.org/pdf/1802.08241v4.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":"hessian-based-analysis-of-large-batch","repo_url":"https://github.com/amirgholami/pyhessian","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"hessian-based-analysis-of-large-batch","repo_url":"https://github.com/amirgholami/hessianflow","is_official":0,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"GPL-3.0"}},{"paper_slug":"hessian-based-analysis-of-large-batch","repo_url":"https://github.com/ABadCandy/HessianDL","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"hessian-based-analysis-of-large-batch","repo_url":"https://github.com/mtkwT/Hessian-analysis-with-tensorflow1.x","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok"}},{"paper_slug":"hessian-based-analysis-of-large-batch","repo_url":"https://github.com/mtkwT/Hessian-based-analysis-tensorflow","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok"}},{"paper_slug":"hessian-based-analysis-of-large-batch","repo_url":"https://github.com/noahgolmant/pytorch-hessian-eigenthings","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1802.08241","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1802.08241"}},"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/ABadCandy/HessianDL","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/noahgolmant/pytorch-hessian-eigenthings","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/mtkwT/Hessian-based-analysis-tensorflow","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/amirgholami/pyhessian","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/mtkwT/Hessian-analysis-with-tensorflow1.x","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/amirgholami/hessianflow","reach":{"status":"ok","spdx":"GPL-3.0"}}],"summary":{"ran_draft_wrong":2,"unverified":9},"by_repo_kind":{"listed":{"samples":11,"ran":2,"repositories":2}},"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":"4532c973ff280886","entry":"deflated_power_iteration","repo":"ABadCandy/HessianDL","repo_kind":"listed","path":"hessian_eigenthings/power_iter.py","file_url":"https://github.com/ABadCandy/HessianDL/blob/HEAD/hessian_eigenthings/power_iter.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4532c973ff280886"}},{"code_sha256_prefix":"604f7701e0559dac","entry":"power_iteration","repo":"ABadCandy/HessianDL","repo_kind":"listed","path":"hessian_eigenthings/power_iter.py","file_url":"https://github.com/ABadCandy/HessianDL/blob/HEAD/hessian_eigenthings/power_iter.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"604f7701e0559dac"}},{"code_sha256_prefix":"14b80a5196e7bbc3","entry":"compiled_ce_hvp","repo":"noahgolmant/pytorch-hessian-eigenthings","repo_kind":"listed","path":"hessian_eigenthings/loss_fns/_fused_ce_hvp.py","file_url":"https://github.com/noahgolmant/pytorch-hessian-eigenthings/blob/HEAD/hessian_eigenthings/loss_fns/_fused_ce_hvp.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":"14b80a5196e7bbc3"}},{"code_sha256_prefix":"2aad088de22e5375","entry":"move_batch_to_device","repo":"noahgolmant/pytorch-hessian-eigenthings","repo_kind":"listed","path":"hessian_eigenthings/batching.py","file_url":"https://github.com/noahgolmant/pytorch-hessian-eigenthings/blob/HEAD/hessian_eigenthings/batching.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":"2aad088de22e5375"}},{"code_sha256_prefix":"afb38db4bcfbd007","entry":"params_to_vector","repo":"noahgolmant/pytorch-hessian-eigenthings","repo_kind":"listed","path":"hessian_eigenthings/param_utils.py","file_url":"https://github.com/noahgolmant/pytorch-hessian-eigenthings/blob/HEAD/hessian_eigenthings/param_utils.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":"afb38db4bcfbd007"}},{"code_sha256_prefix":"73fdac2eac4bb1ca","entry":"select_parameters","repo":"noahgolmant/pytorch-hessian-eigenthings","repo_kind":"listed","path":"hessian_eigenthings/param_utils.py","file_url":"https://github.com/noahgolmant/pytorch-hessian-eigenthings/blob/HEAD/hessian_eigenthings/param_utils.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":"73fdac2eac4bb1ca"}},{"code_sha256_prefix":"1ff9aef5e997ef41","entry":"supervised_forward","repo":"noahgolmant/pytorch-hessian-eigenthings","repo_kind":"listed","path":"hessian_eigenthings/loss_fns/standard.py","file_url":"https://github.com/noahgolmant/pytorch-hessian-eigenthings/blob/HEAD/hessian_eigenthings/loss_fns/standard.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":"1ff9aef5e997ef41"}},{"code_sha256_prefix":"631fe6f0c718ea1f","entry":"supervised_loss","repo":"noahgolmant/pytorch-hessian-eigenthings","repo_kind":"listed","path":"hessian_eigenthings/loss_fns/standard.py","file_url":"https://github.com/noahgolmant/pytorch-hessian-eigenthings/blob/HEAD/hessian_eigenthings/loss_fns/standard.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":"631fe6f0c718ea1f"}},{"code_sha256_prefix":"c6d693d00d07065a","entry":"supervised_loss_of_output","repo":"noahgolmant/pytorch-hessian-eigenthings","repo_kind":"listed","path":"hessian_eigenthings/loss_fns/standard.py","file_url":"https://github.com/noahgolmant/pytorch-hessian-eigenthings/blob/HEAD/hessian_eigenthings/loss_fns/standard.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":"c6d693d00d07065a"}},{"code_sha256_prefix":"2a6e6bf2f11014cd","entry":"total_size","repo":"noahgolmant/pytorch-hessian-eigenthings","repo_kind":"listed","path":"hessian_eigenthings/param_utils.py","file_url":"https://github.com/noahgolmant/pytorch-hessian-eigenthings/blob/HEAD/hessian_eigenthings/param_utils.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":"2a6e6bf2f11014cd"}},{"code_sha256_prefix":"48740a084aa48f93","entry":"triton_ce_hvp","repo":"noahgolmant/pytorch-hessian-eigenthings","repo_kind":"listed","path":"hessian_eigenthings/loss_fns/_fused_ce_hvp.py","file_url":"https://github.com/noahgolmant/pytorch-hessian-eigenthings/blob/HEAD/hessian_eigenthings/loss_fns/_fused_ce_hvp.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":"48740a084aa48f93"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}