{"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/forward-signal-propagation-learning","title":"Signal Propagation: A Framework for Learning and Inference In a Forward Pass","arxiv_id":"2204.01723","date":"2022-04-04","proceeding":null,"authors":["Adam Kohan","Edward A. Rietman","Hava T. Siegelmann"],"abstract":"We propose a new learning framework, signal propagation (sigprop), for propagating a learning signal and updating neural network parameters via a forward pass, as an alternative to backpropagation. In sigprop, there is only the forward path for inference and learning. So, there are no structural or computational constraints necessary for learning to take place, beyond the inference model itself, such as feedback connectivity, weight transport, or a backward pass, which exist under backpropagation based approaches. That is, sigprop enables global supervised learning with only a forward path. This is ideal for parallel training of layers or modules. In biology, this explains how neurons without feedback connections can still receive a global learning signal. In hardware, this provides an approach for global supervised learning without backward connectivity. Sigprop by construction has compatibility with models of learning in the brain and in hardware than backpropagation, including alternative approaches relaxing learning constraints. We also demonstrate that sigprop is more efficient in time and memory than they are. To further explain the behavior of sigprop, we provide evidence that sigprop provides useful learning signals in context to backpropagation. To further support relevance to biological and hardware learning, we use sigprop to train continuous time neural networks with Hebbian updates, and train spiking neural networks with only the voltage or with biologically and hardware compatible surrogate functions.","url_abs":"https://arxiv.org/abs/2204.01723v2","url_pdf":"https://arxiv.org/pdf/2204.01723v2.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":"forward-signal-propagation-learning","repo_url":"https://github.com/amassivek/signalpropagation","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"BSD-3-Clause"}},{"paper_slug":"forward-signal-propagation-learning","repo_url":"https://github.com/keitaroskmt/e2e-info","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2204.01723","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2204.01723"}},"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/amassivek/signalpropagation","reach":{"status":"ok","spdx":"BSD-3-Clause"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/keitaroskmt/e2e-info","reach":null}],"summary":{"unverified":9},"by_repo_kind":{"official":{"samples":9,"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":"93195d66280788f5","entry":"fixed","repo":"amassivek/signalpropagation","repo_kind":"official","path":"sigprop/propagators/functional_other.py","file_url":"https://github.com/amassivek/signalpropagation/blob/HEAD/sigprop/propagators/functional_other.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"93195d66280788f5"}},{"code_sha256_prefix":"c2297c3c48ddf90e","entry":"forward","repo":"amassivek/signalpropagation","repo_kind":"official","path":"sigprop/propagators/functional_other.py","file_url":"https://github.com/amassivek/signalpropagation/blob/HEAD/sigprop/propagators/functional_other.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"c2297c3c48ddf90e"}},{"code_sha256_prefix":"cbea6ee53ba108c1","entry":"identity","repo":"amassivek/signalpropagation","repo_kind":"official","path":"sigprop/propagators/functional_other.py","file_url":"https://github.com/amassivek/signalpropagation/blob/HEAD/sigprop/propagators/functional_other.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"cbea6ee53ba108c1"}},{"code_sha256_prefix":"c64701ee09bbb86c","entry":"similarity_format","repo":"amassivek/signalpropagation","repo_kind":"official","path":"sigprop/loss/functional/utils.py","file_url":"https://github.com/amassivek/signalpropagation/blob/HEAD/sigprop/loss/functional/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"c64701ee09bbb86c"}},{"code_sha256_prefix":"24b2a56dbdd01ceb","entry":"similarity_matrix_x","repo":"amassivek/signalpropagation","repo_kind":"official","path":"sigprop/loss/functional/utils.py","file_url":"https://github.com/amassivek/signalpropagation/blob/HEAD/sigprop/loss/functional/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"24b2a56dbdd01ceb"}},{"code_sha256_prefix":"ec5c90d5663f47f5","entry":"similarity_matrix_xy","repo":"amassivek/signalpropagation","repo_kind":"official","path":"sigprop/loss/functional/utils.py","file_url":"https://github.com/amassivek/signalpropagation/blob/HEAD/sigprop/loss/functional/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"ec5c90d5663f47f5"}},{"code_sha256_prefix":"d05a2491389f3dbe","entry":"v14_input_target_max_rand","repo":"amassivek/signalpropagation","repo_kind":"official","path":"sigprop/loss/functional/input_target.py","file_url":"https://github.com/amassivek/signalpropagation/blob/HEAD/sigprop/loss/functional/input_target.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"d05a2491389f3dbe"}},{"code_sha256_prefix":"cf52d04921ad7f50","entry":"v1_input_label_direct","repo":"amassivek/signalpropagation","repo_kind":"official","path":"sigprop/loss/functional/input_label.py","file_url":"https://github.com/amassivek/signalpropagation/blob/HEAD/sigprop/loss/functional/input_label.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"cf52d04921ad7f50"}},{"code_sha256_prefix":"13c1dbbc1efd1b13","entry":"v9_input_target_max_all","repo":"amassivek/signalpropagation","repo_kind":"official","path":"sigprop/loss/functional/input_target.py","file_url":"https://github.com/amassivek/signalpropagation/blob/HEAD/sigprop/loss/functional/input_target.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"13c1dbbc1efd1b13"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}