{"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/adaptive-whitening-with-fast-gain-modulation","title":"Adaptive whitening with fast gain modulation and slow synaptic plasticity","arxiv_id":"2308.13633","date":"2023-08-25","proceeding":"NeurIPS 2023 11","authors":["Lyndon R. Duong","Eero P. Simoncelli","Dmitri B. Chklovskii","David Lipshutz"],"abstract":"Neurons in early sensory areas rapidly adapt to changing sensory statistics, both by normalizing the variance of their individual responses and by reducing correlations between their responses. Together, these transformations may be viewed as an adaptive form of statistical whitening. Existing mechanistic models of adaptive whitening exclusively use either synaptic plasticity or gain modulation as the biological substrate for adaptation; however, on their own, each of these models has significant limitations. In this work, we unify these approaches in a normative multi-timescale mechanistic model that adaptively whitens its responses with complementary computational roles for synaptic plasticity and gain modulation. Gains are modified on a fast timescale to adapt to the current statistical context, whereas synapses are modified on a slow timescale to match structural properties of the input statistics that are invariant across contexts. Our model is derived from a novel multi-timescale whitening objective that factorizes the inverse whitening matrix into basis vectors, which correspond to synaptic weights, and a diagonal matrix, which corresponds to neuronal gains. We test our model on synthetic and natural datasets and find that the synapses learn optimal configurations over long timescales that enable adaptive whitening on short timescales using gain modulation.","url_abs":"https://arxiv.org/abs/2308.13633v2","url_pdf":"https://arxiv.org/pdf/2308.13633v2.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":"adaptive-whitening-with-fast-gain-modulation","repo_url":"https://github.com/lyndond/multi_timescale_whitening","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2308.13633","atlas_url":"https://app.syntology.ai/?focus=2308.13633","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2308.13633"}},"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/lyndond/multi_timescale_whitening","reach":null}],"summary":{"ran_draft_wrong":2,"ran_fixture":1},"by_repo_kind":{"official":{"samples":3,"ran":3,"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":"97f9f294660264e5","entry":"context_adaptation_experiment","repo":"lyndond/multi_timescale_whitening","repo_kind":"official","path":"timescales/simulation_plasticity.py","file_url":"https://github.com/lyndond/multi_timescale_whitening/blob/HEAD/timescales/simulation_plasticity.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"97f9f294660264e5"}},{"code_sha256_prefix":"c00cc5e024a07ec9","entry":"get_cov_controls","repo":"lyndond/multi_timescale_whitening","repo_kind":"official","path":"timescales/simulation_plasticity.py","file_url":"https://github.com/lyndond/multi_timescale_whitening/blob/HEAD/timescales/simulation_plasticity.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c00cc5e024a07ec9"}},{"code_sha256_prefix":"09171cdbbb639731","entry":"optimal_alignment","repo":"lyndond/multi_timescale_whitening","repo_kind":"official","path":"timescales/simulation_plasticity.py","file_url":"https://github.com/lyndond/multi_timescale_whitening/blob/HEAD/timescales/simulation_plasticity.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"09171cdbbb639731"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}