tuning_duration (faber_tweann v2.4.0)

View Source

Tuning duration: how many memetic attempts an agent gets per evaluation.

A larger, recently-grown network has more weights to tune and deserves more hill-climbing attempts; a small stable one needs few. DXNN computes this per agent rather than fixing it. faber-tweann previously hardcoded a constant (15, then 60), which over-tunes small networks and under-tunes large ones (insight 013).

Ported from Gene Sher's DXNN2 (Handbook Ch 8).

Summary

Functions

A fixed number of attempts, ignoring the network.

Dispatch by strategy name. Unknown strategy falls back to a constant of the given parameter.

Attempts proportional to the weight count of recently-changed neurons.

Functions

const(Parameter, NIds, Generation)

-spec const(pos_integer(), [term()], non_neg_integer()) -> pos_integer().

A fixed number of attempts, ignoring the network.

duration(Other, Parameter, NIds, Generation)

-spec duration(atom(), term(), [term()], non_neg_integer()) -> pos_integer().

Dispatch by strategy name. Unknown strategy falls back to a constant of the given parameter.

wsize_proportional(Power, NIds, Generation)

-spec wsize_proportional(number(), [term()], non_neg_integer()) -> pos_integer().

Attempts proportional to the weight count of recently-changed neurons.

10 + saturate(round(RecentWeightCount ^ Power), 0, 100), so between 10 and 110 attempts. Power near 0.5 keeps it modest. Neurons unchanged in the last three generations do not count: their weights are assumed already tuned.