Skip to main content

fast-efficient-coding-gain-adaptive

Fast efficient coding and sensory adaptation in gain-adaptive recurrent networks — unified mechanistic model reconciling adapter-repulsion and prior-attraction phenomena via gain modulation.

Quellinformationen

Repository
hiyenwong/ai_collection
Letzte Quellaktivität
4. Juni 2026 um 13:32
Erkannte Sprache von SKILL.md
Englisch
Sterne
2
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
fast-efficient-coding-gain-adaptive
description
Fast efficient coding and sensory adaptation in gain-adaptive recurrent networks — unified mechanistic model reconciling adapter-repulsion and prior-attraction phenomena via gain modulation.
tags
["neuroscience","efficient-coding","sensory-adaptation","gain-modulation","recurrent-networks","computational-neuroscience","tuning-curves","neural-dynamics"]
created
2026-05-27T00:00:00.000Z
source
DOI: 10.1038/s41467-026-73032-0 | PMID: 42140911
# Fast Efficient Coding and Sensory Adaptation in Gain-Adaptive Recurrent Networks ## Overview This methodology from Prat-Carrabin, Harl & Gershman (Nature Communications, 2026) proposes a **gain-adaptive recurrent sensory network model** that unifies two seemingly contradictory sensory adaptation phenomena: - **Adapter repulsion**: tuning curves shift away from adapting stimuli - **Prior attraction**: tuning curves shift toward frequently encountered stimuli The key insight is that gains modulating neural responses optimize an **efficient-coding objective** that balances accuracy and spiking cost — and the propagation of these modulated gains through recurrent connectivity produces rapid, context-appropriate tuning curve adaptation. ## Core Mechanism ### Gain-Adaptive Efficient Coding - Neuronal gains are optimized online to balance **reconstruction accuracy** vs. **metabolic (spiking) cost** - Objective: `max_gains [I(stimulus; response) - λ · E[spike_count]]` - Gains adapt quickly (sub-second) in response to changing stimulus statistics ### Recurrent Gain Propagation - Gain changes in early sensory neurons propagate through recurrent connections - Creates emergent adaptation across the network without explicit global coordination - Accounts for multi-stage cortical processing effects ### Unified Prediction Framework | Condition | Prior Shape | Predicted Effect | Mechanism | |-----------|-------------|-----------------|-----------| | Peaked prior (narrow) | Unimodal | **Adapter repulsion** | High gain at adapter frequency → shift away | | Broad prior (flat) | Diffuse | **Prior attraction** | Low gain → shift toward high-probability region | ## Key Findings 1. **Adapter repulsion under peaked priors**: When stimulus distributions are concentrated (peaked), repeated presentation causes tuning curves to repel from the adapter stimulus — explained by local gain saturation 2. **Prior attraction under broad distributions**: For wider stimulus distributions, the model predicts (and behavioral evidence confirms) attraction toward the high-probability region 3. **Reconciliation**: The same gain-modulation mechanism produces both effects depending on prior shape — no contradiction 4. **Fast adaptation**: The model operates on behaviorally-relevant timescales (hundreds of milliseconds to seconds) ## Implementation ```python import numpy as np from scipy.optimize import minimize class GainAdaptiveNeuron: """Efficient-coding gain-adaptive neuron model.""" def __init__(self, preferred_stimulus, tuning_width=1.0, lambda_cost=0.1): self.s0 = preferred_stimulus # Preferred stimulus self.sigma = tuning_width # Tuning width self.lam = lambda_cost # Spiking cost weight self.gain = 1.0 # Adaptive gain def tuning_curve(self, stimulus): """Gaussian tuning curve with adaptive gain.""" base = np.exp(-0.5 * ((stimulus - self.s0) / self.sigma) ** 2) return self.gain * base def efficient_coding_objective(self, gain, stimuli, prior): """Objective: accuracy - lambda * expected spikes.""" responses = gain * np.exp(-0.5 * ((stimuli - self.s0) / self.sigma) ** 2) # Mutual information approximation via Fisher information fisher_info = np.sum(prior * (responses ** 2)) expected_spikes = np.sum(prior * responses) return -(fisher_info - self.lam * expected_spikes) def adapt_gain(self, stimuli, prior): """Update gain to maximize efficient coding objective.""" result = minimize(self.efficient_coding_objective, [self.gain], args=(stimuli, prior), method='L-BFGS-B', bounds=[(0.01, 10.0)]) self.gain = result.x[0] return self.gain class RecurrentGainAdaptiveNetwork: """Recurrent network with gain-adaptive efficient coding.""" def __init__(self, n_neurons, stimulus_range, recurrent_weight=0.3): self.n = n_neurons self.s_range = stimulus_range self.W_rec = recurrent_weight # Recurrent connectivity strength self.neurons = [ GainAdaptiveNeuron(s) for s in np.linspace(*stimulus_range, n_neurons) ] def propagate_gains(self, gains): """Propagate gain changes through recurrent connectivity.""" # Gains interact via recurrent connections delta_gains = self.W_rec * (np.mean(gains) - gains) return gains + delta_gains def adapt(self, stimuli, prior, n_steps=10): """Iterate gain adaptation + recurrent propagation.""" gains = np.array([n.gain for n in self.neurons]) for _ in range(n_steps): # Update individual gains gains = np.array([ n.adapt_gain(stimuli, prior) for n in self.neurons ]) # Propagate through recurrent connections gains = self.propagate_gains(gains) return gains ``` ## When to Use - Modeling sensory adaptation phenomena in auditory/visual/olfactory cortex - Building efficient neural encoding models with metabolic constraints - Studying gain modulation mechanisms in sensory processing - Computational modeling of adapter repulsion and prior attraction - Reconciling conflicting findings in human/animal psychophysics experiments - Neural population coding models under nonstationary stimuli ## Pitfalls - The lambda (spiking cost) parameter must be tuned per neural population - Model assumes quasi-stationary prior within adaptation timescale - Recurrent weight strength determines balance between local and distributed adaptation - Behavioral evidence for broad-prior attraction may require many trials to observe ## Key Parameters | Parameter | Description | Typical Range | |-----------|-------------|---------------| | `lambda` | Spiking cost weight | 0.01–1.0 | | `sigma` | Tuning curve width | 1–10 (stimulus units) | | `W_rec` | Recurrent strength | 0.1–0.5 | | `n_steps` | Adaptation iterations | 5–20 | ## References - Prat-Carrabin A, Harl MV, Gershman SJ. "Fast efficient coding and sensory adaptation in gain-adaptive recurrent networks." *Nature Communications*, 2026. DOI: 10.1038/s41467-026-73032-0 - Atiani S et al. "Task difficulty and performance induce diverse adaptive patterns in gain and shape of primary auditory cortical tuning curves." *Neuron*, 2009. - Wei XX, Stocker AA. "A Bayesian observer model constrained by efficient coding can explain 'anti-Bayesian' percepts." *Nature Neuroscience*, 2015.
Auf GitHub ansehen