{"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/biologically-inspired-alternatives-to","title":"Biologically inspired alternatives to backpropagation through time for learning in recurrent neural nets","arxiv_id":"1901.09049","date":"2019-01-25","proceeding":null,"authors":["Guillaume Bellec","Franz Scherr","Elias Hajek","Darjan Salaj","Robert Legenstein","Wolfgang Maass"],"abstract":"The way how recurrently connected networks of spiking neurons in the brain\nacquire powerful information processing capabilities through learning has\nremained a mystery. This lack of understanding is linked to a lack of learning\nalgorithms for recurrent networks of spiking neurons (RSNNs) that are both\nfunctionally powerful and can be implemented by known biological mechanisms.\nSince RSNNs are simultaneously a primary target for implementations of\nbrain-inspired circuits in neuromorphic hardware, this lack of algorithmic\ninsight also hinders technological progress in that area. The gold standard for\nlearning in recurrent neural networks in machine learning is back-propagation\nthrough time (BPTT), which implements stochastic gradient descent with regard\nto a given loss function. But BPTT is unrealistic from a biological\nperspective, since it requires a transmission of error signals backwards in\ntime and in space, i.e., from post- to presynaptic neurons. We show that an\nonline merging of locally available information during a computation with\nsuitable top-down learning signals in real-time provides highly capable\napproximations to BPTT. For tasks where information on errors arises only late\nduring a network computation, we enrich locally available information through\nfeedforward eligibility traces of synapses that can easily be computed in an\nonline manner. The resulting new generation of learning algorithms for\nrecurrent neural networks provides a new understanding of network learning in\nthe brain that can be tested experimentally. In addition, these algorithms\nprovide efficient methods for on-chip training of RSNNs in neuromorphic\nhardware.","url_abs":"http://arxiv.org/abs/1901.09049v2","url_pdf":"http://arxiv.org/pdf/1901.09049v2.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":"biologically-inspired-alternatives-to","repo_url":"https://github.com/IGITUGraz/LSNN-official","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":null},{"paper_slug":"biologically-inspired-alternatives-to","repo_url":"https://github.com/NathanWycoff/eprop","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}},{"paper_slug":"biologically-inspired-alternatives-to","repo_url":"https://github.com/gdgrant/Spiking-RNN","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1901.09049","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1901.09049"}},"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/NathanWycoff/eprop","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/gdgrant/Spiking-RNN","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/IGITUGraz/LSNN-official","reach":null}],"summary":{"unverified":7},"by_repo_kind":{"listed":{"samples":7,"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":"9118cb37d0202d38","entry":"L2_norm","repo":"gdgrant/Spiking-RNN","repo_kind":"listed","path":"optimizers.py","file_url":"https://github.com/gdgrant/Spiking-RNN/blob/HEAD/optimizers.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"9118cb37d0202d38"}},{"code_sha256_prefix":"28be271408d3f9c0","entry":"adex_membrane","repo":"gdgrant/Spiking-RNN","repo_kind":"listed","path":"spike_models.py","file_url":"https://github.com/gdgrant/Spiking-RNN/blob/HEAD/spike_models.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"28be271408d3f9c0"}},{"code_sha256_prefix":"47c93af6bd6b4383","entry":"clip_by_norm","repo":"gdgrant/Spiking-RNN","repo_kind":"listed","path":"optimizers.py","file_url":"https://github.com/gdgrant/Spiking-RNN/blob/HEAD/optimizers.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"47c93af6bd6b4383"}},{"code_sha256_prefix":"11a706f5ce1d5aa2","entry":"match_to_pev_inputs","repo":"gdgrant/Spiking-RNN","repo_kind":"listed","path":"analysis.py","file_url":"https://github.com/gdgrant/Spiking-RNN/blob/HEAD/analysis.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"11a706f5ce1d5aa2"}},{"code_sha256_prefix":"e6effa0fd1b77529","entry":"pev_analysis","repo":"gdgrant/Spiking-RNN","repo_kind":"listed","path":"analysis.py","file_url":"https://github.com/gdgrant/Spiking-RNN/blob/HEAD/analysis.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e6effa0fd1b77529"}},{"code_sha256_prefix":"398a60f0f24b3c43","entry":"run_adex","repo":"gdgrant/Spiking-RNN","repo_kind":"listed","path":"spike_models.py","file_url":"https://github.com/gdgrant/Spiking-RNN/blob/HEAD/spike_models.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"398a60f0f24b3c43"}},{"code_sha256_prefix":"76b95054a5e6ccee","entry":"run_spike_model","repo":"gdgrant/Spiking-RNN","repo_kind":"listed","path":"spike_models.py","file_url":"https://github.com/gdgrant/Spiking-RNN/blob/HEAD/spike_models.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"76b95054a5e6ccee"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}