{"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/energy-based-learning-algorithms-for-analog-1","title":"Energy-based learning algorithms for analog computing: a comparative study","arxiv_id":"2312.15103","date":"2023-12-22","proceeding":"NeurIPS 2023 11","authors":["Benjamin Scellier","Maxence Ernoult","Jack Kendall","Suhas Kumar"],"abstract":"Energy-based learning algorithms have recently gained a surge of interest due to their compatibility with analog (post-digital) hardware. Existing algorithms include contrastive learning (CL), equilibrium propagation (EP) and coupled learning (CpL), all consisting in contrasting two states, and differing in the type of perturbation used to obtain the second state from the first one. However, these algorithms have never been explicitly compared on equal footing with same models and datasets, making it difficult to assess their scalability and decide which one to select in practice. In this work, we carry out a comparison of seven learning algorithms, namely CL and different variants of EP and CpL depending on the signs of the perturbations. Specifically, using these learning algorithms, we train deep convolutional Hopfield networks (DCHNs) on five vision tasks (MNIST, F-MNIST, SVHN, CIFAR-10 and CIFAR-100). We find that, while all algorithms yield comparable performance on MNIST, important differences in performance arise as the difficulty of the task increases. Our key findings reveal that negative perturbations are better than positive ones, and highlight the centered variant of EP (which uses two perturbations of opposite sign) as the best-performing algorithm. We also endorse these findings with theoretical arguments. Additionally, we establish new SOTA results with DCHNs on all five datasets, both in performance and speed. In particular, our DCHN simulations are 13.5 times faster with respect to Laborieux et al. (2021), which we achieve thanks to the use of a novel energy minimisation algorithm based on asynchronous updates, combined with reduced precision (16 bits).","url_abs":"https://arxiv.org/abs/2312.15103v1","url_pdf":"https://arxiv.org/pdf/2312.15103v1.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":"energy-based-learning-algorithms-for-analog-1","repo_url":"https://github.com/rain-neuromorphics/energy-based-learning","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"contrastive-learning","task_name":"Contrastive Learning"}],"methods":[{"method_slug":"contrastive-learning","method_name":"Contrastive Learning"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2312.15103","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2312.15103"}},"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/rain-neuromorphics/energy-based-learning","reach":null}],"summary":{"ran":2,"unverified":2},"by_repo_kind":{"official":{"samples":4,"ran":2,"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":"f0ebec13c974eddd","entry":"Minimizer","repo":"rain-neuromorphics/energy-based-learning","repo_kind":"official","path":"model/resistive/minimizer.py","file_url":"https://github.com/rain-neuromorphics/energy-based-learning/blob/HEAD/model/resistive/minimizer.py","link_basis":"first_harvest_node","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":"f0ebec13c974eddd"}},{"code_sha256_prefix":"ac3ccd9e66ea00c4","entry":"QuadraticUpdater","repo":"rain-neuromorphics/energy-based-learning","repo_kind":"official","path":"model/resistive/minimizer.py","file_url":"https://github.com/rain-neuromorphics/energy-based-learning/blob/HEAD/model/resistive/minimizer.py","link_basis":"first_harvest_node","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":"ac3ccd9e66ea00c4"}},{"code_sha256_prefix":"c9e47a23b23a2895","entry":"LayerUpdater","repo":"rain-neuromorphics/energy-based-learning","repo_kind":"official","path":"model/resistive/minimizer.py","file_url":"https://github.com/rain-neuromorphics/energy-based-learning/blob/HEAD/model/resistive/minimizer.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":"c9e47a23b23a2895"}},{"code_sha256_prefix":"61be018017b8ab14","entry":"QuadraticMinimizer","repo":"rain-neuromorphics/energy-based-learning","repo_kind":"official","path":"model/resistive/minimizer.py","file_url":"https://github.com/rain-neuromorphics/energy-based-learning/blob/HEAD/model/resistive/minimizer.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":"61be018017b8ab14"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}