lc_l0_morphology (faber_neuroevolution v1.2.4)
View SourceL0 Reactive Layer Morphology for Liquid Conglomerate.
The L0 layer operates at the lowest temporal abstraction (tau=10). It receives tactical signals from L1 plus emergent metrics from the model under training, and outputs the final hyperparameters.
Input Sensors
Fixed inputs (always connected, from L1): - l0_from_l1_signal_1 through l0_from_l1_signal_5
Emergent metric sensors (available for topology evolution): - convergence_rate, current_mutation_rate, survival_rate, etc.
The emergent sensors are NOT initially connected. Topology evolution can add them via add_sensor/1 when the network determines they are useful for hyperparameter control.
Output Actuators
Final hyperparameters for the model under training: - mutation_rate: [0.01, 0.5] - mutation_strength: [0.05, 1.0] - selection_ratio: [0.1, 0.5] - add_node_rate: [0.0, 0.1] - add_connection_rate: [0.0, 0.2]
Summary
Functions
Get actuators for L0 reactive layer.
Get emergent metric sensors.
Get fixed sensors that receive L1 tactical outputs.
Get all sensors for L0 reactive layer.
Functions
-spec get_actuators(lc_l0) -> [#actuator{id :: term(), name :: term(), type :: term(), cx_id :: term(), scape :: term(), vl :: term(), fanin_ids :: term(), generation :: term(), format :: term(), parameters :: term(), gt_parameters :: term(), phys_rep :: term(), vis_rep :: term(), pre_f :: term(), post_f :: term(), innovation :: term()}].
Get actuators for L0 reactive layer.
Returns actuators that output the final hyperparameters for the model under training. Each output is scaled to its valid range.
-spec get_emergent_sensors() -> [#sensor{id :: term(), name :: term(), type :: term(), cx_id :: term(), scape :: term(), vl :: term(), fanout_ids :: term(), generation :: term(), format :: term(), parameters :: term(), gt_parameters :: term(), phys_rep :: term(), vis_rep :: term(), pre_f :: term(), post_f :: term(), innovation :: term()}].
Get emergent metric sensors.
These sensors observe metrics from the model under training. They are available for topology evolution to add, but NOT initially connected. This allows the LC to evolve which emergent signals are useful.
-spec get_fixed_sensors() -> [#sensor{id :: term(), name :: term(), type :: term(), cx_id :: term(), scape :: term(), vl :: term(), fanout_ids :: term(), generation :: term(), format :: term(), parameters :: term(), gt_parameters :: term(), phys_rep :: term(), vis_rep :: term(), pre_f :: term(), post_f :: term(), innovation :: term()}].
Get fixed sensors that receive L1 tactical outputs.
These sensors are always connected in new agents.
-spec get_sensors(lc_l0) -> [#sensor{id :: term(), name :: term(), type :: term(), cx_id :: term(), scape :: term(), vl :: term(), fanout_ids :: term(), generation :: term(), format :: term(), parameters :: term(), gt_parameters :: term(), phys_rep :: term(), vis_rep :: term(), pre_f :: term(), post_f :: term(), innovation :: term()}].
Get all sensors for L0 reactive layer.
Returns both fixed sensors (from L1) and emergent sensors (from model). Fixed sensors are always connected initially. Emergent sensors are available but not initially connected - topology evolution can add them via add_sensor/1.