Skip to content

Reversal adaptation

What changes during a trial?

reversal_adaptation runs 96 rounds by default. Each round has eight cue ticks, eight response ticks and eight feedback ticks. One neural frame is one world tick, so the default full-session horizon is 2,304.

The initial binary cue-to-action mapping is random. It flips at a randomly selected round from 32 through 64 inclusive. The correct mapping is never supplied directly to the controller.

Eight receptors carry cue-left, cue-right, go, feedback-phase, chosen-left, chosen-right, correct and incorrect. Feedback describes the controller’s actual preceding choice. The cue remains visible through response; two effectors choose an action, with ties selecting left.

from brainlesslab import TaskSpec
from brainlesslab.tasks import definition, resolve
task = TaskSpec("reversal_adaptation",
options={"rounds": 96, "reversal_range": [32, 64]})
print(resolve(task))
print(definition(task))

Expect eight inputs, two effectors and horizon 2,304. The reversal range must leave 16 scored rounds; at least 48 total rounds are required.

Keep adaptation within the session

There is no neural reset between rounds. Full reset occurs between independent sessions. feedback_mode="hidden" removes feedback observations while retaining the world choices and reversal schedule.

With visible feedback, the observation-based oracle infers the mapping, then updates after a reversal error. Its expected scored result is 15/16 because the first reversed round is unpredictable from previous observations. A fixed-mapping reference does not adapt from feedback. Neither this reference nor the upper bound 1 is a claim about reservoir performance.

Read the primary window

adaptation_accuracy scores the first 16 rounds starting at reversal, including the first reversed round. It does not average all 96 rounds. Analytic binary chance is 0.5; the adjusted score is signed. Warm-up is zero.

The current result does not expose historical pre-reversal accuracy or recovery-round metrics as separate primary outcomes. The offline single-episode decoder excludes this task because feedback depends on actions and a session contains multiple rounds.

Use paired interventions for a mechanism question, and treat sessions or fixed-wiring blocks as the independent units.