Reading evolution, learning, and consciousness through a single gradient
Last time, we obtained a resolution \(\sigma\) that "blurs the landscape," and saw that evolution strategies (ES) can estimate a gradient even on a landscape that can't be differentiated. This time we pull the camera way back ── looking not at a single living thing, but at all life on Earth as one computation running at once. Countless individuals are born carrying slightly different genes \(\theta+\varepsilon_i\), are tested by the environment, and most die while some leave offspring. This "totality of life and death" is, in fact, computing exactly the ES gradient estimator \(\hat g\) we wrote in Episode 4. The individual is the sample, life-or-death is the loss evaluation, reproduction is the update. Running the same procedure in massive parallel with different noise for each is precisely the SPMD (single instruction, multiple data) of a GPU. Let's confirm with equations and figures the claim that the biosphere is a single, gigantic gradient-free optimizer ── a planet-scale GPU, if you like.
Saying "life is doing computation" sounds like a metaphor. But with the toolkit we've built up since Episode 1, this can be stated not as a metaphor but as a match of structure. Learning is moving parameters \(\theta\) to lower a loss \(L(\theta)\) (Episode 1). In evolution, \(L\) was fitness with its sign flipped ── survive and leave offspring, and the loss is small; otherwise it's large.
The catch is that in nature there's no "god who differentiates the loss for you." There's no device anywhere that takes partial derivatives of DNA. And yet, species steadily descend the landscape across generations. How? The answer was the evolution strategy of Episode 4 ── don't differentiate; try many things, weight by outcome, and average. This time, we replace the subject of "try many things" with the population itself.
Let's translate each symbol of this equation into the language of biology. The correspondence is astonishingly clean.
| Language of ES / optimization | Language of the biosphere | Meaning |
|---|---|---|
| Sample \(\theta+\varepsilon_i\) | Individual \(i\) | One prototype made by slightly varying the species' blueprint |
| Loss evaluation \(L(\theta+\varepsilon_i)\) | The individual's life or death (fitness evaluation) | The score handed down by the environment. Did it survive and leave offspring? |
| Parameter update \(\theta\leftarrow\theta-\eta\,\hat g\) | Reproduction (composition of the next generation) | The species' contents shift toward the direction of successful variations |
| The \(\theta\) being optimized | The species (itself) | The very bundle of parameters kept adjusted = the gene pool |
| One update step | One generation | One cycle of evaluation and update |
| Number of parallel threads \(N\) | Population size | The number of "live-and-be-tested" procedures running at once |
Each individual is simply executing one and the same procedure ── "be born, be tested by the environment, be scored" ── with a different variation \(\varepsilon_i\) as input. In computing terms this is SPMD (Single Program, Multiple Data), isomorphic to exactly the parallel model in which a GPU runs the same kernel on different data across thousands of cores. If we regard the biosphere as a single computer, then individuals are threads, generations are the clock, and the species is the parameters loaded into a register. Earth is a single GPU ── as vast and as parallel as it gets.
The heart of the correspondence table is the point that "the entire population is computing a single gradient estimator." Let's look at the equation once more.
The right-hand side is the operation "weight each individual's variation direction \(\varepsilon_i\) by that individual's score \(L\), sum them, and divide by the head count \(N\)." The more successful the variation (the direction of lower loss), the more it survives into the next generation, and as their average, the direction \(\hat g\) that pushes the species downhill emerges. Nobody differentiated anything, yet the aggregate of the whole population speaks for the gradient. The individuals don't know one another. They merely live and die in parallel in the same environment. That sum becomes \(\hat g\) ── this corresponds to the aggregation (reduction) of SPMD.
Here, the most naive fact of evolution ── "the larger the population size \(N\), the more advantageous" ── can be explained exactly in the language of statistics. \(\hat g\) is nothing other than the sample mean of the \(N\) independent, identically distributed terms
The variance of the mean of independent random variables is the variance of a single one divided by the head count ── this is a fundamental theorem of statistics. Therefore,
The expectation (= the true gradient we want to estimate) stays the same regardless of \(N\), and only the scatter shrinks as \(1/N\). That is, the larger the population, the more accurately the species estimates the gradient, and the faster and more stably it descends the landscape. "Sheer numbers" is, directly, "accuracy as a gradient estimator." A small population estimates the gradient by guesswork from few samples, so the direction wobbles from generation to generation (drift, genetic drift). A large population descends the slope smoothly, without hesitation.
Variance is 1/N. The standard deviation (scatter) is its square root, so 1/√N
$$\mathrm{sd}(\hat g)=\sqrt{\mathrm{Var}(\hat g)}\;\propto\;\frac{1}{\sqrt N}$$Increasing N from 4 to 64 (16×) gives
$$\frac{\mathrm{sd}_{N=64}}{\mathrm{sd}_{N=4}}=\sqrt{\frac{4}{64}}=\sqrt{\frac{1}{16}}=\frac14$$For example, if at \(N=4\) the standard deviation of the gradient estimate was \(0.40\), then keeping the same \(\theta,\ \sigma\) and going to \(N=64\) drops it to \(0.40\times\tfrac14=0.10\) ── the scatter is one quarter. But to double the accuracy you must make \(N\) four times larger (\(\mathrm{sd}\propto1/\sqrt N\)), so returns diminish. In the next figure, let's confirm this \(1/\sqrt N\) effect with our own eyes.
Below is a 2D loss landscape (the brighter, the lower the loss = the higher the fitness). The white points are individuals (= parallel threads; color is fitness: greener is better, redder is worse), and the large red point is the population's centroid = the species' parameters \(\theta\). "Advance one generation" runs one step; "Auto" runs continuously. Making the slider \(N\) small makes the centroid's motion jerky (high variance); making it large makes it advance smoothly (low variance). With the same landscape and the same \(\sigma\), compare \(N=4\) and \(N=64\).
At \(N=4\), the centroid changes direction each generation, overshooting and backtracking ── because the average of a mere 4 samples pins down no gradient at all. This is the fate of a small population (drift). At \(N=64\) or \(128\), the centroid slides almost straight down into the valley floor. Confirm too that the "scatter" figure in the readout roughly halves each time you quadruple \(N\) (\(1/\sqrt N\)).
Here lies the most beautiful paradox of this episode. Nature can't differentiate. But it can integrate.
Differentiation is the operation of taking an infinitely fine limit at one point of the landscape to find the slope analytically. That requires knowing the landscape's formula and having an agent that can manipulate it ── and in nature there is no such calculator. Yet look closely at the equation for \(\hat g\): this is a Monte Carlo approximation of an expectation (= an integral). What it truly estimates is the average over all variations
In other words, nature does not compute the slope at one sharp point; it scatters an enormous number of samples ── called variations ── across the landscape and aggregates their life and death ── instead of analytic differentiation, it carries out an integral by planet-scale parallel sampling, and extracts the gradient from it. Each and every one of countless lives and deaths is an integrand point of this integral. Last time we said "blur it, and you can descend even a landscape you can't differentiate," but the true identity of that blur was this planet-scale Monte Carlo integral. The death of an individual is not waste; it was one evaluation for estimating the gradient ── this is the core of what the original paper calls "the biosphere is a GPU."
How much of this metaphor is a rigorous match, and where does idealization begin? Let's judge honestly.
| Question | Answer | Verdict |
|---|---|---|
| Does the ES estimator \(\hat g\) have the same structure as the quantity that selection (the aggregate of life and death) computes? | Yes. The skeleton ── the average of variations weighted by loss ── matches rigorously | Structure matches |
| Does a large population give a lower-variance gradient estimate? | Yes. \(\mathrm{Var}(\hat g)\propto 1/N\) applies directly | Holds |
| Does real evolution move exactly as this equation says? | Strictly, no. The objective moves, selection is not an exact reward-weighted average, variation is not isotropic Gaussian, and there's no central updater | Idealization |
"The biosphere = a single ES optimizer / GPU" is a structurally very strong metaphor ── because the correspondence between the ES estimator and natural selection (the average of variations weighted by loss) is not a stretch but a genuine isomorphism. But to say it is real evolution itself, as is, is to over-idealize. First, the landscape isn't fixed: if in coevolution the prey grows faster, the predator's fitness landscape moves too ── a constantly shifting target. Second, selection is not strictly a reward-weighted average but a resampling proportional to fitness, which is actually closer to the natural gradient (the gradient tidied up by Fisher information). Third, mutation is not isotropic Gaussian: rates differ by position on the genome, and directions are biased too. Fourth, there is no centralized batch update like \(\theta\leftarrow\theta-\eta\hat g\): the update is dispersed across countless local lives and deaths, with no agent bundling the whole.
Be honest about both the strength of the model (the skeleton is genuine) and its limits (the details are idealized). And next time, we move to the point that this parallel computation isn't free ── every evaluation, every death, takes energy. As long as computation has a physical cost (Landauer's principle), life inevitably becomes a competition to compute efficiently.
Individual = sample \(\theta+\varepsilon_i\), life-or-death = loss evaluation, reproduction = update, species = parameters \(\theta\), generation = one step, population size = number of parallel threads \(N\) (STEP 01–02). The whole population computes the ES gradient estimator \(\hat g=\tfrac{1}{N\sigma^2}\sum_i L(\theta+\varepsilon_i)\varepsilon_i\) ── which weights variations by their scores and averages ── as SPMD (GPU), running the same procedure on different data (STEP 03). Since \(\hat g\) is a sample mean, \(\mathrm{Var}(\hat g)\propto 1/N\): the larger the population, the lower the variance = the better the estimator, and multiplying \(N\) by 16 makes the scatter 1/4 (STEP 04–05). And nature can't differentiate, but it can aggregate countless lives and deaths = it can integrate: it obtains the gradient of the smoothed landscape \(L*\phi_\sigma\) by a planet-scale Monte Carlo integral (STEP 06). The skeleton is a rigorous isomorphism; the details are idealized (STEP 07).
The death of an individual was not waste. It was one evaluation for estimating the gradient, the termination of one thread of the single GPU that is the biosphere. Next time, we ask about the electricity bill of this parallel computation.
Print / save as PDF: ⌘+P (Ctrl+P on Windows). On screen, change "Population size N" and press "Auto" to scatter the individuals (points) and watch the species' centroid descend the slope. Compare how it wobbles at N=4 versus N=64, and confirm that the "scatter" figure shrinks as 1/√N. "See the answer" opens each solution.