{"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/adahessian-an-adaptive-second-order-optimizer","title":"ADAHESSIAN: An Adaptive Second Order Optimizer for Machine Learning","arxiv_id":"2006.00719","date":"2020-06-01","proceeding":null,"authors":["Zhewei Yao","Amir Gholami","Sheng Shen","Mustafa Mustafa","Kurt Keutzer","Michael W. Mahoney"],"abstract":"We introduce ADAHESSIAN, a second order stochastic optimization algorithm which dynamically incorporates the curvature of the loss function via ADAptive estimates of the HESSIAN. Second order algorithms are among the most powerful optimization algorithms with superior convergence properties as compared to first order methods such as SGD and Adam. The main disadvantage of traditional second order methods is their heavier per iteration computation and poor accuracy as compared to first order methods. To address these, we incorporate several novel approaches in ADAHESSIAN, including: (i) a fast Hutchinson based method to approximate the curvature matrix with low computational overhead; (ii) a root-mean-square exponential moving average to smooth out variations of the Hessian diagonal across different iterations; and (iii) a block diagonal averaging to reduce the variance of Hessian diagonal elements. We show that ADAHESSIAN achieves new state-of-the-art results by a large margin as compared to other adaptive optimization methods, including variants of Adam. In particular, we perform extensive tests on CV, NLP, and recommendation system tasks and find that ADAHESSIAN: (i) achieves 1.80%/1.45% higher accuracy on ResNets20/32 on Cifar10, and 5.55% higher accuracy on ImageNet as compared to Adam; (ii) outperforms AdamW for transformers by 0.13/0.33 BLEU score on IWSLT14/WMT14 and 2.7/1.0 PPL on PTB/Wikitext-103; (iii) outperforms AdamW for SqueezeBert by 0.41 points on GLUE; and (iv) achieves 0.032% better score than Adagrad for DLRM on the Criteo Ad Kaggle dataset. Importantly, we show that the cost per iteration of ADAHESSIAN is comparable to first order methods, and that it exhibits robustness towards its hyperparameters.","url_abs":"https://arxiv.org/abs/2006.00719v3","url_pdf":"https://arxiv.org/pdf/2006.00719v3.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":"adahessian-an-adaptive-second-order-optimizer","repo_url":"https://github.com/amirgholami/adahessian","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"adahessian-an-adaptive-second-order-optimizer","repo_url":"https://github.com/davda54/ada-hessian","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"adahessian-an-adaptive-second-order-optimizer","repo_url":"https://github.com/morganmcg1/ImageNette_ImageWoof_ImageWang","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"adahessian-an-adaptive-second-order-optimizer","repo_url":"https://github.com/cor3bit/somax","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"jax","reach":null}],"tasks":[{"task_slug":"machine-learning","task_name":"BIG-bench Machine Learning"},{"task_slug":"second-order-methods","task_name":"Second-order methods"},{"task_slug":"stochastic-optimization","task_name":"Stochastic Optimization"}],"methods":[{"method_slug":"1x1-convolution","method_name":"1x1 Convolution"},{"method_slug":"absolute-position-encodings","method_name":"Absolute Position Encodings"},{"method_slug":"adagrad","method_name":"AdaGrad"},{"method_slug":"adahessian","method_name":"AdaHessian"},{"method_slug":"adam","method_name":"Adam"},{"method_slug":"adamw","method_name":"AdamW"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"average-pooling","method_name":"Average Pooling"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"batch-normalization","method_name":"Batch Normalization"},{"method_slug":"bottleneck-residual-block","method_name":"Bottleneck Residual Block"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"global-average-pooling","method_name":"Global Average Pooling"},{"method_slug":"kaiming-initialization","method_name":"Kaiming Initialization"},{"method_slug":"label-smoothing","method_name":"Label Smoothing"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"max-pooling","method_name":"Max Pooling"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"position-wise-feed-forward-layer","method_name":"Position-Wise Feed-Forward Layer"},{"method_slug":"relu","method_name":"ReLU"},{"method_slug":"residual-block","method_name":"Residual Block"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"sgd","method_name":"SGD"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"transformer","method_name":"Transformer"}],"datasets_introduced":[],"methods_introduced":[{"slug":"adahessian","name":"AdaHessian","full_name":"ADAHESSIAN"}],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2006.00719","atlas_url":"https://app.syntology.ai/?focus=2006.00719","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2006.00719"}},"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/amirgholami/adahessian","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/morganmcg1/ImageNette_ImageWoof_ImageWang","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/davda54/ada-hessian","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/cor3bit/somax","reach":null}],"summary":{"ran":1,"ran_draft_wrong":1,"unverified":9},"by_repo_kind":{"official":{"samples":9,"ran":1,"repositories":1},"listed":{"samples":2,"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":0,"samples":[{"code_sha256_prefix":"387ee05bb55df246","entry":"average_sqr_diag_hessian","repo":"morganmcg1/ImageNette_ImageWoof_ImageWang","repo_kind":"listed","path":"AdaHessian.py","file_url":"https://github.com/morganmcg1/ImageNette_ImageWoof_ImageWang/blob/HEAD/AdaHessian.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"387ee05bb55df246"}},{"code_sha256_prefix":"fac5364e2f53c6db","entry":"conv3x3","repo":"amirgholami/adahessian","repo_kind":"official","path":"image_classification/models/resnet.py","file_url":"https://github.com/amirgholami/adahessian/blob/HEAD/image_classification/models/resnet.py","link_basis":"harvester_set","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":"fac5364e2f53c6db"}},{"code_sha256_prefix":"dedf33bd0adc1f56","entry":"VGG","repo":"amirgholami/adahessian","repo_kind":"official","path":"adahessian_tf/Models/VGGs.py","file_url":"https://github.com/amirgholami/adahessian/blob/HEAD/adahessian_tf/Models/VGGs.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":"dedf33bd0adc1f56"}},{"code_sha256_prefix":"6d822742f437ca1a","entry":"adahessian_step","repo":"morganmcg1/ImageNette_ImageWoof_ImageWang","repo_kind":"listed","path":"AdaHessian.py","file_url":"https://github.com/morganmcg1/ImageNette_ImageWoof_ImageWang/blob/HEAD/AdaHessian.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":"6d822742f437ca1a"}},{"code_sha256_prefix":"8b69e8ab29b336b3","entry":"bn_relu","repo":"amirgholami/adahessian","repo_kind":"official","path":"adahessian_tf/Models/Resnets.py","file_url":"https://github.com/amirgholami/adahessian/blob/HEAD/adahessian_tf/Models/Resnets.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":"8b69e8ab29b336b3"}},{"code_sha256_prefix":"6290891118db623e","entry":"conv_block","repo":"amirgholami/adahessian","repo_kind":"official","path":"adahessian_tf/Models/VGGs.py","file_url":"https://github.com/amirgholami/adahessian/blob/HEAD/adahessian_tf/Models/VGGs.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":"6290891118db623e"}},{"code_sha256_prefix":"52e6b930397c2338","entry":"getData","repo":"amirgholami/adahessian","repo_kind":"official","path":"image_classification/utils.py","file_url":"https://github.com/amirgholami/adahessian/blob/HEAD/image_classification/utils.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":"52e6b930397c2338"}},{"code_sha256_prefix":"de32ddb77d1b5144","entry":"get_params_grad","repo":"amirgholami/adahessian","repo_kind":"official","path":"image_classification/utils.py","file_url":"https://github.com/amirgholami/adahessian/blob/HEAD/image_classification/utils.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":"de32ddb77d1b5144"}},{"code_sha256_prefix":"b13423aecaba1080","entry":"original_block","repo":"amirgholami/adahessian","repo_kind":"official","path":"adahessian_tf/Models/Resnets.py","file_url":"https://github.com/amirgholami/adahessian/blob/HEAD/adahessian_tf/Models/Resnets.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":"b13423aecaba1080"}},{"code_sha256_prefix":"0a1815a3309d2414","entry":"shortcut","repo":"amirgholami/adahessian","repo_kind":"official","path":"adahessian_tf/Models/Resnets.py","file_url":"https://github.com/amirgholami/adahessian/blob/HEAD/adahessian_tf/Models/Resnets.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":"0a1815a3309d2414"}},{"code_sha256_prefix":"beeda9e1db69fe81","entry":"test","repo":"amirgholami/adahessian","repo_kind":"official","path":"image_classification/utils.py","file_url":"https://github.com/amirgholami/adahessian/blob/HEAD/image_classification/utils.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":"beeda9e1db69fe81"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}