Perception#

Bistable perception: how an ambiguous stimulus flips between two interpretations.

A Necker cube, a rotating silhouette or an ambiguous object seen by a robot’s camera is perceived as one of two interpretations, which alternate. The time spent in one interpretation (the dwell time) is the standard measurement.

Models.

  • QuantumZenoBistableModel (Atmanspacher, Filk and Römer, Biological Cybernetics 90, 33-40, 2004): the percept is a qubit whose two basis states are the two interpretations. Between two “observations” (internal sampling of the percept, every \(\Delta t\)) the state rotates freely, \(U = e^{-i g \Delta t\, \sigma_x}\); each observation collapses it. The probability of a switch at one observation is \(q = \sin^2(g\,\Delta t)\), so dwell times are geometric with mean \(\Delta t / \sin^2(g \Delta t) \approx 1 / (g^2 \Delta t)\): more frequent observation slows the switching (the quantum Zeno effect).

  • MarkovSwitchingModel: classical baseline; switches occur at a constant rate \(r\), so dwell times are exponential and do not depend on the observation interval.

  • GammaRenewalModel: the standard empirical description of dwell times (Levelt), a gamma distribution with shape \(k\) and scale \(\theta\).

What distinguishes them. With one observation interval the Zeno and Markov models predict the same (geometric or exponential) shape; the gamma model fits the typical unimodal histograms better. The distinctive prediction of the Zeno model is the dependence on \(\Delta t\): halving the observation interval should double the mean dwell time. Design conditions with different intervals (for example different presentation or attention-sampling rates) to test it.

Design. {condition: (dt, bin_edges)} with the observation interval and the histogram bins (in seconds); built with dwell_time_design(). Outcomes: the probability of a dwell time falling in each bin (multinomial, with a final bin for longer dwell times). Data: dwell-time counts per bin, built from raw dwell times with dwell_counts().

Classes

QuantumZenoBistableModel

Quantum Zeno model of bistable perception.

MarkovSwitchingModel

Classical baseline: switches at a constant rate (exponential dwell times, no Zeno effect).

GammaRenewalModel

Classical baseline: gamma-distributed dwell times (the usual empirical description).

Functions

dwell_time_design

Design with equal-width dwell-time bins for several observation intervals.

dwell_counts

Histogram of dwell times, with a final bin for times beyond the last edge.

mean_dwell_time

Mean dwell time predicted by a bistable-perception model.

class QuantumZenoBistableModel(**params)[source]#

Bases: Model

Quantum Zeno model of bistable perception.

Parameters:

g (float) – Free switching frequency (rad/s) of the unobserved percept.

switch_probability(dt)[source]#

Probability of a switch at one observation.

Parameters:

dt (float) – Observation interval.

Returns:

float – \(\sin^2(g\,\Delta t)\).

mean_dwell(dt)[source]#

Mean dwell time \(\Delta t / \sin^2(g \Delta t)\).

Parameters:

dt (float)

Returns:

float

predict(design=None)[source]#

Dwell-time bin probabilities for each condition (geometric in units of dt).

class MarkovSwitchingModel(**params)[source]#

Bases: Model

Classical baseline: switches at a constant rate (exponential dwell times, no Zeno effect).

Parameters:

rate (float) – Switching rate (1/s); the mean dwell time is 1 / rate.

mean_dwell(dt=None)[source]#

Mean dwell time 1 / rate (independent of the observation interval).

Parameters:

dt (float, optional) – Ignored.

Returns:

float

predict(design=None)[source]#

Dwell-time bin probabilities (exponential distribution) for each condition.

class GammaRenewalModel(**params)[source]#

Bases: Model

Classical baseline: gamma-distributed dwell times (the usual empirical description).

Parameters:
  • shape (float) – Gamma shape \(k\) (k = 1 is the exponential).

  • scale (float) – Gamma scale \(\theta\) (seconds); the mean is \(k\theta\).

mean_dwell(dt=None)[source]#

Mean dwell time \(k\theta\) (independent of the observation interval).

Parameters:

dt (float, optional) – Ignored.

Returns:

float

predict(design=None)[source]#

Dwell-time bin probabilities (gamma distribution) for each condition.

dwell_time_design(dts, max_time=20.0, n_bins=20)[source]#

Design with equal-width dwell-time bins for several observation intervals.

Parameters:
  • dts (dict or sequence) – {condition: dt} or a sequence of intervals (conditions named 'dt=<value>').

  • max_time (float, optional) – Upper edge of the last finite bin, in seconds.

  • n_bins (int, optional) – Number of finite bins (one more bin collects longer dwell times).

Returns:

dict – {condition: (dt, bin_edges)}.

dwell_counts(dwell_times, edges)[source]#

Histogram of dwell times, with a final bin for times beyond the last edge.

Parameters:
  • dwell_times (array_like) – Observed dwell times in seconds.

  • edges (array_like) – Bin edges.

Returns:

numpy.ndarray – Counts, length len(edges).

mean_dwell_time(model, dt)[source]#

Mean dwell time predicted by a bistable-perception model.

Parameters:
Returns:

float – Seconds.