mercurial.core.pattern_completion module

Pattern completion network for olfactory/gustatory modalities with empirical parameters.

class mercurial.core.pattern_completion.HopfieldPatternCompletion(n_neurons: int = 8000, stored_patterns: List[ndarray] | None = None, tau_a: float = 0.02, tau_f: float = 1.0, beta_f: float = 0.5, noise_amp: float = 0.01, beta_sigmoid: float = 10.0, hebb_params: HebbianParams | None = None)[source]

Bases: object

Hopfield‑style attractor network for pattern completion, parameterised by empirical olfactory bulb and piriform cortex data.

Methods

get_overlap

reset

sigmoid

step

store_patterns

__init__(n_neurons: int = 8000, stored_patterns: List[ndarray] | None = None, tau_a: float = 0.02, tau_f: float = 1.0, beta_f: float = 0.5, noise_amp: float = 0.01, beta_sigmoid: float = 10.0, hebb_params: HebbianParams | None = None)[source]
Parameters:
n_neuronsint

Number of units (default 8000, approximate human olfactory bulb glomeruli).

stored_patternslist of np.ndarray, optional

Binary patterns {-1,1} or continuous [0,1] to store.

tau_a, tau_ffloat

Time constants for activity and fatigue (s).

beta_ffloat

Fatigue scaling.

noise_ampfloat

Stochastic noise amplitude.

beta_sigmoidfloat

Gain of the sigmoid (high for binary attractors).

hebb_paramsHebbianParams, optional

Empirical Hebbian learning parameters.

get_overlap(pattern: ndarray) float[source]
reset()[source]
sigmoid(x: float) float[source]
step(dt: float, external_input: ndarray) ndarray[source]
store_patterns(patterns: List[ndarray]) None[source]