Learning That ClicksEpisode 8 / The biosphere as a computer ── the isomorphism of ES and selection

Reading evolution, learning, and consciousness through a single gradient

The Biosphere Is a Single GPU Countless individuals, each living and dying with slightly different genes. The aggregate of that vast parallel trial
is estimating the "gradient" of a parameter called the species. Earth is a single optimizer descending a slope without differentiating.

Tools you'll need: the ES gradient from Episode 4, variance from Episode 6, averaging of vectors The key for this episode: \(\hat g=\dfrac{1}{N\sigma^2}\sum_i L(\theta+\varepsilon_i)\,\varepsilon_i,\quad \mathrm{Var}(\hat g)\propto \tfrac{1}{N}\)

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.

01What "computation" life is doing

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.

Starting point for this episode (the ES gradient estimator from Episode 4, restated)
$$\hat g \;=\; \frac{1}{N\sigma^2}\sum_{i=1}^{N} L(\theta+\varepsilon_i)\,\varepsilon_i ,\qquad \varepsilon_i \sim \mathcal N(0,\sigma^2 I)$$
\(\theta\) = the species' parameters, \(\varepsilon_i\) = the variation of each individual, \(N\) = population size, \(\sigma\) = the spread of variation (last time's resolution). Use this \(\hat g\) for \(\theta\leftarrow\theta-\eta\,\hat g\).

02The biosphere = a single GPU

Let's translate each symbol of this equation into the language of biology. The correspondence is astonishingly clean.

Correspondence table ── the ES optimizer and the biosphere point to the same procedure
Language of ES / optimizationLanguage of the biosphereMeaning
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 optimizedThe species (itself)The very bundle of parameters kept adjusted = the gene pool
One update stepOne generationOne cycle of evaluation and update
Number of parallel threads \(N\)Population sizeThe 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.

Why "GPU" ── and not CPU A CPU is a machine of a few powerful cores that handle steps sequentially; a GPU is a machine of many weak cores that handle the same computation all at once. Evolution has no central authority in which "a clever designer plays the single best move at each turn." There is only the mechanism of scattering countless mediocre trials in parallel and sieving them through the scoring of life and death. That's why the biosphere's mode of computation resembles the overwhelmingly parallel GPU rather than the sequential CPU. Scale without intelligence substitutes for design.

03The population = parallel threads

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 gradient estimator the population is computing
$$\hat g \;=\; \frac{1}{N\sigma^2}\sum_{i=1}^{N} \underbrace{L(\theta+\varepsilon_i)}_{\text{score of individual }i}\;\underbrace{\varepsilon_i}_{\text{variation direction of individual }i}$$

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.

Same instruction, different data A GPU kernel runs one instruction ── "perform the prescribed computation on this data" ── with different data per thread. The biosphere's kernel is "carry this variation \(\varepsilon_i\), live, and receive the environment's score." The instruction is the same for every individual; only the data (the variation \(\varepsilon_i\)) differs. Sum the results of all the finished threads with the weights \(L\cdot\varepsilon\), and that is exactly the gradient estimate \(\hat g\).

04Why more is stronger ── Var ∝ 1/N

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 contribution of one individual (drawn independently from the same distribution)
$$X_i \;=\; \frac{1}{\sigma^2}\,L(\theta+\varepsilon_i)\,\varepsilon_i,\qquad \hat g=\frac{1}{N}\sum_{i=1}^{N} X_i$$

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,

How large numbers take effect (the crux of this episode)
$$\mathrm{Var}(\hat g)\;=\;\frac{\mathrm{Var}(X_1)}{N}\;\propto\;\frac{1}{N}$$

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.

Try it ── multiply N by 16, and the scatter becomes 1/4

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.

05Try it out ── a population descending a slope

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\).

Figure: ES / natural selection on a 2D loss landscape. Individuals (points) are variations θ+εᵢ; color is fitness. The centroid (red) descends toward the valley floor along ĝ. When N is small the estimate is high-variance and wobbles; when large, it's smooth
Species centroid θ High-fitness individual (low loss) Low-fitness individual (high loss) dark = high loss / bright = low loss

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\)).

◇ ◇ ◇

06The integrating planet ── nature can't differentiate, but it can integrate

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

The "integral" the population is approximating (the gradient of the smoothed landscape)
$$\mathbb E_{\varepsilon}\!\big[\hat g\big]\;=\;\nabla_\theta\, \mathbb E_{\varepsilon\sim\mathcal N(0,\sigma^2 I)}\big[L(\theta+\varepsilon)\big]\;=\;\nabla_\theta\, (L * \phi_\sigma)(\theta)$$
\(L*\phi_\sigma\) is the landscape with the loss blurred (smoothed) by a Gaussian \(\phi_\sigma\) (Episode 7). Its gradient is being integral-approximated by the aggregate of countless lives and deaths.

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."

Gradient-free backpropagation The backpropagation of Episode 2 traced the landscape's formula backward to compute the gradient analytically. What the biosphere does is the exact opposite road ── using no formula at all, it runs forward evaluations (just live) in massive parallel and estimates the gradient from the results statistically. To the same gradient \(\nabla L\), BP approaches from differentiation, while ES = evolution approaches from integration. As we saw in Episode 6, the two are two routes to the same thing.

07The verdict ── how far is the biosphere a GPU?

How much of this metaphor is a rigorous match, and where does idealization begin? Let's judge honestly.

QuestionAnswerVerdict
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 honest line ── the strength and the limits of a strong metaphor

"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.

Practice problems (solvable with just this episode's equations)
  1. At some population size, the standard deviation of the gradient estimate was \(0.24\). To reduce the variance to \(1/9\) (= make the standard deviation \(1/3\)), by what factor must the population size be increased?
    See the answer
    Since \(\mathrm{Var}\propto 1/N\), to make the variance \(1/9\) you multiply \(N\) by \(9\). Then the standard deviation becomes \(\sqrt{1/9}=1/3\) of what it was, i.e. \(0.24\to0.08\). To triple the accuracy (the reciprocal of the standard deviation), you need 9 times the head count ── a textbook case of diminishing returns.
  2. In the correspondence table, what biological event corresponds to "loss evaluation \(L(\theta+\varepsilon_i)\)"? And what does it correspond to in a GPU, in a word?
    See the answer
    The individual's life or death (fitness evaluation) = the score the environment hands down to that individual. In GPU terms, it's "one thread running the kernel to completion and returning a result." The aggregation (reduction) that sums all threads' results with the weights \(L\cdot\varepsilon\) makes \(\hat g\).
  3. What does "nature can't differentiate but it can integrate" mean? Explain using the expectation of \(\hat g\) as a clue.
    See the answer
    Differentiation is the operation of manipulating the landscape's formula analytically, and in nature there is no calculator. Meanwhile, \(\hat g\) is an approximation, from many samples (individuals' lives and deaths), of the gradient of \(\mathbb E_\varepsilon[L(\theta+\varepsilon)]\) (= the integral over variations). Nature obtains the gradient without differentiating by aggregating countless parallel trials = carrying out an integral. It estimates the gradient of the smoothed landscape \(L*\phi_\sigma\) by a planet-scale Monte Carlo integral.

Episode 8 summaryEarth is a single computer that descends a slope without differentiating

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.

This document is Episode 8 of the "Learning That Clicks" series, a reading piece for high-schoolers and undergraduates interested in physics, mathematics, and AI. The evolution-strategy (ES) gradient estimator \(\hat g=\tfrac{1}{N\sigma^2}\sum_i L(\theta+\varepsilon_i)\varepsilon_i\) is an unbiased estimator of the gradient of the Gaussian-smoothed objective \(\mathbb E_{\varepsilon\sim\mathcal N(0,\sigma^2I)}[L(\theta+\varepsilon)]=(L*\phi_\sigma)(\theta)\) (an established fact treated in Episodes 4, 6, and 7), and since it is the sample mean of i.i.d. terms, its variance is proportional to \(1/N\) (the law of large numbers and the fundamental theorem for the variance of a sample mean). "The biosphere = a single GPU / ES optimizer" is a structural metaphor based on §4.1 of the original paper; the isomorphism between the ES estimator and natural selection (the aggregation of variations weighted by fitness) is genuine, but real evolution departs from this idealization: the fitness landscape changes over time through coevolution, selection is not an exact reward-weighted average but a resampling proportional to fitness (closer to the natural gradient), mutation is anisotropic and non-Gaussian, and there is no centralized batch update like \(\theta\leftarrow\theta-\eta\hat g\) ── the update is distributed. The landscape and figures in this piece (the scatter of the gradient estimate, etc.) are illustrative models, rough guides for showing the trend (increasing \(N\) shrinks the scatter as \(1/\sqrt N\)). Landauer's principle and the thermodynamic cost of computation (Episode 9), and the interpretation regarding consciousness (later episodes), are treated in the relevant episodes; we'll make clear in that episode that the discussion of consciousness is a proposal from a functional, computational stance and does not answer the "why" of subjective experience (the hard problem). ── To print, use your browser's "Print" and "Save as PDF" (in the print version, the sliders and answers are static and hidden).

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.