Learning algorithms · Research & Algorithms

Evolve the network; solve the readout

When evolution searches for a useful neural circuit, it need not also guess the best linear output weights. A conditional solve can change where the search spends its effort.

EXPLORE THE IDEA

Search the graph. Solve the readout.

Different structures, the same conditional linear problem.

OUTER SEARCHCandidate 3 / illustrative topologyINNER SOLVEFit the output, conditional on the graphZ(graph)↓(ZᵀZ + λI) W = ZᵀYTopology illustrated; output fitting is conditional
50%
Four illustrative graph candidates, not saved evolutionary champions. The parity construction counts in the article are separate archived results. The animation changes topology without inventing a fitness improvement.

Follow the information

From input to outcome

The inner solve chooses output weights conditional on each graph. The outer search changes the nonlinear feature generator. All truth-table rows participate, so the parity result is construction rather than held-out generalization.

Scroll the diagram horizontally to follow the route. Keyboard: focus the diagram, then use the arrow keys.

Candidate graph → Finite settling → Analytic readout → Candidate fitness → Next graph population. The inner solve chooses output weights conditional on each graph. The outer search changes the nonlinear feature generator. All truth-table rows participate, so the parity result is construction rather than held-out generalization.
Information-flow map. Zero padding preserves predictions; nonlinear node insertion need not. Original vector schematic based on the method and evidence discussed in this article; signal shapes and icons are illustrative, not additional measurements. Open full-size diagram ↗

Read the main route from left to right; labelled side branches show additional inputs, checks or feedback. The sections below explain the operations and their experimental limits.

Two problems hide inside one search

A candidate network has to generate useful features and turn those features into an answer. In a supervised quadratic problem, the second task has a direct regularized solution once the first is fixed. We let evolution change a small recurrent graph while a ridge solve fits its readout. That is a concrete allocation of work—not a claim that evolution or matrix inversion becomes free.

W∗(G)=arg⁡min⁡W∥Z(G)W−Y∥F2+λ∥W∥F2\begin{gathered}W^*(\mathcal G)=\arg\min_W\|Z(\mathcal G)W-Y\|_F^2+\lambda\|W\|_F^2\end{gathered}
For each candidate graph, fit its best ridge readout. The outer search over graphs remains nonlinear and difficult.

An evolutionary loop with an exact inner problem

A candidate graph is first converted into a padded recurrent feature computation. It settles for a fixed number of steps, producing features for every supplied truth-table input. A batched ridge solve chooses its supervised readout. Evolution then evaluates that fitted candidate and changes the nonlinear graph.

This division removes output-weight search conditional on the candidate features. It does not remove architecture search, make finite settling an equilibrium solve, or supply targets in reinforcement learning. The distinction between padding and mutation also matters: an inactive zero feature preserves predictions, but a new nonlinear leaky node generally does not.

Search features, solve their readout
Search features, solve their readout. Original scientific diagram; the stated component and information flow, not an additional experiment. Open full-size figure ↗

Make irregular candidates compatible with regular hardware

The implementation maps each graph into padded arrays, zeros its inactive coordinates, and evaluates a population with batched matrix operations. Different topologies then share a computational shape without becoming the same graph. Zero padding preserves the ridge prediction; cutting off active nodes at a capacity limit does not. Dense padding also costs memory and arithmetic, even where most connections are absent.

What the finite construction study accomplished

The named sweep fits complete parity truth tables from two through seven input bits. Seven-bit parity uses 37 hidden units and 119 generations; the recorded sweep takes 36.3 seconds for that rung. Every truth-table row participates in fitting and selection, so this is construction of a finite function, not generalization to unseen parity examples or longer sequences.

Growth has more than one meaning

Splitting a connection through a tanh unit is only approximately an identity in a limited amplitude range. The new leaky state also adds a transient. It therefore does not inherit the exact preservation guarantee of nested spline refinement. A small diagnostic makes the static discrepancy visible even when the outgoing weight compensates the incoming scale.

The comparator needs the same question

Canonical NEAT does not require an inner backpropagation loop. The saved neat-python reference differs in activation, recurrence, readout, input scaling, fitness, population, and hardware execution. Its failure on several rungs cannot isolate the analytic readout’s benefit. We report the construction results without turning this unmatched comparison into an orders-of-magnitude speed claim.

All six archived parity construction sizes. Each complete supplied truth table is fitted; node counts are not held-out performance or minimal architectures.
All six archived parity construction sizes. Each complete supplied truth table is fitted; node counts are not held-out performance or minimal architectures. Open full-size figure ↗

Use search only where a solve is unavailable

The broader pattern is to reserve expensive search for variables that genuinely need it. Parity through seven bits is a finite construction demonstration of that pattern. A convincing new application would need held-out behavior and matched outer-search controls, rather than treating one unmatched NEAT timing as a universal result.

A reusable pattern, with a clear boundary

Search over structure; solve the conditionally linear part. That pattern connects this experiment to classical variable projection and operator-based models. It is useful when supervised targets and a quadratic inner objective exist. If an agent receives only delayed reward, the targets needed by the solve do not appear automatically. The research question then changes.

Evidence & further reading

The links below distinguish the project record from foundational literature. This revised story does not add a new application-validation experiment.

  1. Evolving Neural Networks through Augmenting Topologies. Kenneth O. Stanley and Risto Miikkulainen (2002). Primary literature.
  2. Consolidated research results, including constitutive edges and continual memory. Daniel Schmitter (2026). Local archive snapshot.
  3. Full experimental record. Daniel Schmitter (2026). Local archive snapshot.
  4. Negative-result appendix. Daniel Schmitter (2026). Local archive snapshot.