sequince.steps.mutation.adaptive.proposal#

Adapt proposal parameters from completed mutation metrics.

Classes#

AdaptiveGaussianProposal

Adapt proposal scale after a complete mutation block (eager execution).

Module Contents#

class sequince.steps.mutation.adaptive.proposal.AdaptiveGaussianProposal(mutation)[source]#

Bases: sequince.steps.mutation.adaptive.base.AdaptiveMutationStep

Adapt proposal scale after a complete mutation block (eager execution).

The wrapped step must return finalized MutationMetricsOutput in its output. Its output is preserved. The scale in context.metadata is initialized before mutation and updated afterward for the next call using scale * exp(adaptation_rate * (acceptance - target_acceptance)). Proposal kernels must read scale_key from the context; this wrapper does not modify proposal objects. Wrap an entire RepeatedMutationStep to keep the scale fixed across all its rounds. Place conditional execution outside this wrapper.

Runtime scale lives in the context; checkpoint state forwards to the child.

Parameters:

mutation (sequince.steps.base.SMCStep | sequince.steps.base.FixedLengthMutation)

mutation: sequince.steps.base.SMCStep#
scale_key: str = 'proposal_scale'#
initial_scale: float = 1.0#
target_acceptance: float | None = 0.3#
adaptation_rate: float = 0.1#
min_scale: float = 0.001#
max_scale: float = 10.0#
apply_with_n_steps(state, context, rng, *, n_steps)[source]#
Parameters:
Return type:

tuple[sequince.state.ParticleState, sequince.steps.context.StepContext, Any]