{"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/minimizing-control-for-credit-assignment-with","title":"Minimizing Control for Credit Assignment with Strong Feedback","arxiv_id":"2204.07249","date":"2022-04-14","proceeding":null,"authors":["Alexander Meulemans","Matilde Tristany Farinha","Maria R. Cervera","João Sacramento","Benjamin F. Grewe"],"abstract":"The success of deep learning ignited interest in whether the brain learns hierarchical representations using gradient-based learning. However, current biologically plausible methods for gradient-based credit assignment in deep neural networks need infinitesimally small feedback signals, which is problematic in biologically realistic noisy environments and at odds with experimental evidence in neuroscience showing that top-down feedback can significantly influence neural activity. Building upon deep feedback control (DFC), a recently proposed credit assignment method, we combine strong feedback influences on neural activity with gradient-based learning and show that this naturally leads to a novel view on neural network optimization. Instead of gradually changing the network weights towards configurations with low output loss, weight updates gradually minimize the amount of feedback required from a controller that drives the network to the supervised output label. Moreover, we show that the use of strong feedback in DFC allows learning forward and feedback connections simultaneously, using learning rules fully local in space and time. We complement our theoretical results with experiments on standard computer-vision benchmarks, showing competitive performance to backpropagation as well as robustness to noise. Overall, our work presents a fundamentally novel view of learning as control minimization, while sidestepping biologically unrealistic assumptions.","url_abs":"https://arxiv.org/abs/2204.07249v2","url_pdf":"https://arxiv.org/pdf/2204.07249v2.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":"minimizing-control-for-credit-assignment-with","repo_url":"https://github.com/mariacer/strong_dfc","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"minimizing-control-for-credit-assignment-with","repo_url":"https://github.com/pennfranc/bio-inspired-continual-learning","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2204.07249","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2204.07249"}},"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/mariacer/strong_dfc","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/pennfranc/bio-inspired-continual-learning","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_draft_wrong":2,"unverified":16},"by_repo_kind":{"official":{"samples":1,"ran":0,"repositories":1},"listed":{"samples":17,"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":"583f9780bdd00a45","entry":"conv3x3","repo":"pennfranc/bio-inspired-continual-learning","repo_kind":"listed","path":"Continual-Learning-Benchmark/models/resnet.py","file_url":"https://github.com/pennfranc/bio-inspired-continual-learning/blob/HEAD/Continual-Learning-Benchmark/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":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"583f9780bdd00a45"}},{"code_sha256_prefix":"1341f003d9955629","entry":"get_args","repo":"pennfranc/bio-inspired-continual-learning","repo_kind":"listed","path":"Continual-Learning-Benchmark/iBatchLearn.py","file_url":"https://github.com/pennfranc/bio-inspired-continual-learning/blob/HEAD/Continual-Learning-Benchmark/iBatchLearn.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":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1341f003d9955629"}},{"code_sha256_prefix":"af0506c68398edcc","entry":"CIFAR10","repo":"pennfranc/bio-inspired-continual-learning","repo_kind":"listed","path":"Continual-Learning-Benchmark/clb_dataloaders/base.py","file_url":"https://github.com/pennfranc/bio-inspired-continual-learning/blob/HEAD/Continual-Learning-Benchmark/clb_dataloaders/base.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":"af0506c68398edcc"}},{"code_sha256_prefix":"863446156dbf1191","entry":"CIFAR100","repo":"pennfranc/bio-inspired-continual-learning","repo_kind":"listed","path":"Continual-Learning-Benchmark/clb_dataloaders/base.py","file_url":"https://github.com/pennfranc/bio-inspired-continual-learning/blob/HEAD/Continual-Learning-Benchmark/clb_dataloaders/base.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":"863446156dbf1191"}},{"code_sha256_prefix":"8fef921f066b1f46","entry":"LeNetC","repo":"pennfranc/bio-inspired-continual-learning","repo_kind":"listed","path":"Continual-Learning-Benchmark/models/lenet.py","file_url":"https://github.com/pennfranc/bio-inspired-continual-learning/blob/HEAD/Continual-Learning-Benchmark/models/lenet.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":"8fef921f066b1f46"}},{"code_sha256_prefix":"67a28e500cf8fce1","entry":"MLP100","repo":"pennfranc/bio-inspired-continual-learning","repo_kind":"listed","path":"Continual-Learning-Benchmark/models/mlp.py","file_url":"https://github.com/pennfranc/bio-inspired-continual-learning/blob/HEAD/Continual-Learning-Benchmark/models/mlp.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":"67a28e500cf8fce1"}},{"code_sha256_prefix":"1df29e9f02681a32","entry":"MLP20","repo":"pennfranc/bio-inspired-continual-learning","repo_kind":"listed","path":"Continual-Learning-Benchmark/models/mlp.py","file_url":"https://github.com/pennfranc/bio-inspired-continual-learning/blob/HEAD/Continual-Learning-Benchmark/models/mlp.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":"1df29e9f02681a32"}},{"code_sha256_prefix":"ad5be7c4526b2f74","entry":"MLP200","repo":"pennfranc/bio-inspired-continual-learning","repo_kind":"listed","path":"Continual-Learning-Benchmark/models/mlp.py","file_url":"https://github.com/pennfranc/bio-inspired-continual-learning/blob/HEAD/Continual-Learning-Benchmark/models/mlp.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":"ad5be7c4526b2f74"}},{"code_sha256_prefix":"9a3033fb697cd22a","entry":"MNIST","repo":"pennfranc/bio-inspired-continual-learning","repo_kind":"listed","path":"Continual-Learning-Benchmark/clb_dataloaders/base.py","file_url":"https://github.com/pennfranc/bio-inspired-continual-learning/blob/HEAD/Continual-Learning-Benchmark/clb_dataloaders/base.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":"9a3033fb697cd22a"}},{"code_sha256_prefix":"a6b5321ddba4e76a","entry":"NormalNN_reset_optim","repo":"pennfranc/bio-inspired-continual-learning","repo_kind":"listed","path":"Continual-Learning-Benchmark/agents/customization.py","file_url":"https://github.com/pennfranc/bio-inspired-continual-learning/blob/HEAD/Continual-Learning-Benchmark/agents/customization.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":"a6b5321ddba4e76a"}},{"code_sha256_prefix":"f9b8caa6279ce116","entry":"PermutedGen","repo":"pennfranc/bio-inspired-continual-learning","repo_kind":"listed","path":"Continual-Learning-Benchmark/clb_dataloaders/datasetGen.py","file_url":"https://github.com/pennfranc/bio-inspired-continual-learning/blob/HEAD/Continual-Learning-Benchmark/clb_dataloaders/datasetGen.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":"f9b8caa6279ce116"}},{"code_sha256_prefix":"38189f93ef69d6ec","entry":"ResNet110_cifar","repo":"pennfranc/bio-inspired-continual-learning","repo_kind":"listed","path":"Continual-Learning-Benchmark/models/senet.py","file_url":"https://github.com/pennfranc/bio-inspired-continual-learning/blob/HEAD/Continual-Learning-Benchmark/models/senet.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":"38189f93ef69d6ec"}},{"code_sha256_prefix":"063d93881930a42e","entry":"ResNet20_cifar","repo":"pennfranc/bio-inspired-continual-learning","repo_kind":"listed","path":"Continual-Learning-Benchmark/models/resnet.py","file_url":"https://github.com/pennfranc/bio-inspired-continual-learning/blob/HEAD/Continual-Learning-Benchmark/models/resnet.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":"063d93881930a42e"}},{"code_sha256_prefix":"a3355598bff4a9c9","entry":"ResNet56_cifar","repo":"pennfranc/bio-inspired-continual-learning","repo_kind":"listed","path":"Continual-Learning-Benchmark/models/resnet.py","file_url":"https://github.com/pennfranc/bio-inspired-continual-learning/blob/HEAD/Continual-Learning-Benchmark/models/resnet.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":"a3355598bff4a9c9"}},{"code_sha256_prefix":"16e2d4177214aebb","entry":"SE_ResNet20_cifar","repo":"pennfranc/bio-inspired-continual-learning","repo_kind":"listed","path":"Continual-Learning-Benchmark/models/senet.py","file_url":"https://github.com/pennfranc/bio-inspired-continual-learning/blob/HEAD/Continual-Learning-Benchmark/models/senet.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":"16e2d4177214aebb"}},{"code_sha256_prefix":"e1b5400489e523bc","entry":"SE_ResNet56_cifar","repo":"pennfranc/bio-inspired-continual-learning","repo_kind":"listed","path":"Continual-Learning-Benchmark/models/senet.py","file_url":"https://github.com/pennfranc/bio-inspired-continual-learning/blob/HEAD/Continual-Learning-Benchmark/models/senet.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":"e1b5400489e523bc"}},{"code_sha256_prefix":"8c9829ef771c8fe8","entry":"SplitGen","repo":"pennfranc/bio-inspired-continual-learning","repo_kind":"listed","path":"Continual-Learning-Benchmark/clb_dataloaders/datasetGen.py","file_url":"https://github.com/pennfranc/bio-inspired-continual-learning/blob/HEAD/Continual-Learning-Benchmark/clb_dataloaders/datasetGen.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":"8c9829ef771c8fe8"}},{"code_sha256_prefix":"1c6c7c58e85e4956","entry":"loss_function_H","repo":"mariacer/strong_dfc","repo_kind":"official","path":"dfc/networks/dfc_network_utils.py","file_url":"https://github.com/mariacer/strong_dfc/blob/HEAD/dfc/networks/dfc_network_utils.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":"1c6c7c58e85e4956"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}