task_l0_morphology (faber_neuroevolution v1.2.4)

View Source

Task Silo L0 Morphology - TWEANN sensor/actuator definitions.

Part of the Liquid Conglomerate v2 architecture. Defines the neural network morphology for the Task Silo's L0 hyperparameter controller.

Architecture

L0 is a TWEANN (Topology and Weight Evolving Artificial Neural Network) that: - Takes 21 sensor inputs (16 evolution + 5 self-play archive) - Produces 20 actuator outputs (12 evolution + 4 layer-specific + 4 archive) - Has 12 hyperparameters that L1 can tune (8 evolution + 4 archive) - Has 7 L1 hyperparameters that L2 can tune

Time Constant

tau_L0 = 1000 evaluations (adaptation rate for evolution control)

Note: The system uses evaluation-centric timing, not discrete generations. All time constants are expressed in evaluation counts.

Summary

Functions

Number of actuators (neural network outputs). 12 evolution + 4 layer-specific mutation + 4 self-play archive = 20

Ordered list of actuator names.

Get specification for an actuator.

Get bounds for L0 hyperparameters.

Get default values for L0 hyperparameters.

Get bounds for L1 hyperparameters.

Get default values for L1 hyperparameters.

Get specification for an L0 hyperparameter.

List of L0 hyperparameter names.

Get specification for an L1 hyperparameter.

List of L1 hyperparameter names.

Number of sensors (neural network inputs).

Ordered list of sensor names.

Get specification for a sensor.

L0 time constant - 1000 evaluations for hyperparameter adaptation. With population ~100, this is roughly 10 evaluation cycles.

L1 time constant - 5000 evaluations for tactical adaptation. With population ~100, this is roughly 50 evaluation cycles.

L2 time constant - 10000 evaluations for strategic learning. With population ~100, this is roughly 100 evaluation cycles.

Functions

actuator_count()

-spec actuator_count() -> pos_integer().

Number of actuators (neural network outputs). 12 evolution + 4 layer-specific mutation + 4 self-play archive = 20

actuator_names()

-spec actuator_names() -> [atom()].

Ordered list of actuator names.

actuator_spec(_)

-spec actuator_spec(atom()) -> map() | undefined.

Get specification for an actuator.

get_l0_bounds()

-spec get_l0_bounds() -> map().

Get bounds for L0 hyperparameters.

get_l0_defaults()

-spec get_l0_defaults() -> map().

Get default values for L0 hyperparameters.

get_l1_bounds()

-spec get_l1_bounds() -> map().

Get bounds for L1 hyperparameters.

get_l1_defaults()

-spec get_l1_defaults() -> map().

Get default values for L1 hyperparameters.

l0_hyperparameter_spec(_)

-spec l0_hyperparameter_spec(atom()) -> map() | undefined.

Get specification for an L0 hyperparameter.

l0_hyperparameters()

-spec l0_hyperparameters() -> [atom()].

List of L0 hyperparameter names.

l1_hyperparameter_spec(_)

-spec l1_hyperparameter_spec(atom()) -> map() | undefined.

Get specification for an L1 hyperparameter.

l1_hyperparameters()

-spec l1_hyperparameters() -> [atom()].

List of L1 hyperparameter names.

Note: These are called "meta-parameters" from L1's perspective, but "hyperparameters" from L2's perspective.

sensor_count()

-spec sensor_count() -> pos_integer().

Number of sensors (neural network inputs).

sensor_names()

-spec sensor_names() -> [atom()].

Ordered list of sensor names.

sensor_spec(_)

-spec sensor_spec(atom()) -> map() | undefined.

Get specification for a sensor.

tau_l0()

-spec tau_l0() -> pos_integer().

L0 time constant - 1000 evaluations for hyperparameter adaptation. With population ~100, this is roughly 10 evaluation cycles.

tau_l1()

-spec tau_l1() -> pos_integer().

L1 time constant - 5000 evaluations for tactical adaptation. With population ~100, this is roughly 50 evaluation cycles.

tau_l2()

-spec tau_l2() -> pos_integer().

L2 time constant - 10000 evaluations for strategic learning. With population ~100, this is roughly 100 evaluation cycles.