TL;DR:
Figure 1. A minimal computed subjective trajectory. A simple observer model produces recurrence, surprise, memory, and a measurable path through experience-space.
Visuals via the Cave Simulator; for the full tutorial, click here.
William MacAskill’s recent paper describes “Saturationism”, a population axiology which offers some interesting ideas towards constructing a moral universe.
But the experience at the base is flat. MacAskill imagines some landscape of experience types, with some way of distinguishing between them, but doesn’t define it: “Saturationism leaves open what the basic value-bearers are,” he says.
I propose a candidate solution: “subjective experience” is computable. A whole life, with all that it entails, can be described numerically. Experience is endogenous: the structure for comparison cannot be imposed. Instead, it is determined by the model of computable representation.
Suddenly the space of possible experiences becomes a more legible object. We can describe it mathematically - what does a high variance trajectory look like? A low magnitude? Or topologically: what does it mean for an experience to loop, to branch?
A computed experience means you can compare experiences on different axes. If you’re given a series of numbers representing a life, there’s no way of determining “welfare” without an external mapping. But variance is observable!
If you assume a computable life experience, Saturationism still holds up quite well! This view of value-bearer is for the most part compatible with it. But instead of looking top down, at the entire universe, we build bottom up, from the object itself: types, similarity, and reach are computed from the trajectory.
The Allegory of the Cave offers a neat minimal subjective trajectory to derive. The prisoners in the cave have a famously well defined experience - can we express it mathematically?
Consider the observer, fixed in place, staring ahead - suppose he can also think back (remember) and think ahead (expect). We can know, from without, the totality of his experience:
To know for a certainty, we’d have to know the lookback window and decay of his memory; we’d have to know the particulars of his expectation function. The simplest for both would be a lookback of one: remembering what just happened, and expecting it to happen again.
This an ongoing loop; the minimal loop we’re interested in looks like this:
admitted input -> expectation -> error -> update -> next expectation
And ... repeat, for as many shadows on the wall as we desire.
The primitive functions of observation, memory and expectation provide us with an external experience, the sensory input, and an internal experience, the tuple of (memory, expectation, prediction error) at each step. Together, they comprise the observer’s total experience.
Let’s step through some examples. We’ll formalize the system like so:
E_t = M_{t-1} [Expectation]
U_t [Sensed world input]
P_t = U_t - E_t [Prediction Error]
|P_t| [Surprise]
M_t = M_{t-1} + η · P_t [Memory]We’ll represent ‘sensory experiences’ as points on a plane. The x-axis represents danger or salience: how attention-grabbing the object is. The y-axis represents height or liveliness: how much the object appears animated, elevated, or alive. In our closed world there are only two types of experiences: trees, and snakes.
Let the prisoner begin with a tree-prior:
M_0 = (0.200, 0.800)Since his expectation is just his previous memory, at the first step:
E_1 = M_0 = (0.200, 0.800)He expects a tree. He gets one, but very slightly different:
U_1 = (0.180, 0.740)The prediction error is the difference between what arrived and what he expected:
P_1 = U_1 - E_1
= (0.180, 0.740) - (0.200, 0.800)
= (-0.020, -0.060)The size of that miss is the surprise:
surprise_1 = |P_1| = 0.063Tiny. He was basically right. So memory only changes slightly:
M_1 = M_0 + 0.45 · P_1
= (0.200, 0.800) + 0.45 · (-0.020, -0.060)
= (0.191, 0.773)Now the second step begins from that corrected memory:
E_2 = M_1 = (0.191, 0.773)Again he expects a tree. Again the world gives him a tree, but a slightly different one:
U_2 = (0.220, 0.860)So:
P_2 = U_2 - E_2
= (0.220, 0.860) - (0.191, 0.773)
= (+0.029, +0.087)
surprise_2 = |P_2| = 0.092
M_2 = E_2 + 0.45 · P_2
= (0.204, 0.812)Ultimately we get the following series:
step object expectation E_t input U_t surprise memory M_t
1 tree (0.200, 0.800) (0.180, 0.740) 0.063 (0.191, 0.773)
2 tree (0.191, 0.773) (0.220, 0.860) 0.092 (0.204, 0.812)
3 tree (0.204, 0.812) (0.170, 0.790) 0.041 (0.189, 0.802)
4 snake (0.189, 0.802) (0.900, 0.900) 0.718 (0.509, 0.846)For each timestep T we can observe the evolution of the experience:
More intuitively, we can imagine our prisoner walking free, albeit in a closed world:
This is the object MacAskill is looking for! And it’s not an imposed, theoretical moral construct - it’s the natural product of a simple model. The bottom line is that a predictive loop and a closed system leave a fossil record. That trace is hard to compute for humans, with their intensity and diversity of experience, but easy to do for prisoners in the cave.
So: ok, fine, we can compute experience. Who cares?
Ignoring the qualities of the ideal universe, let’s consider the one we already have. Imagine you have subjective-trajectory-xray-vision, and you can see all the extant shapes laid out in front of you. What jumps out? We can observe neither high nor low welfare, but we can see shapes: basins, loops, and lines.
MacAskill cites the rollercoaster life as an example of a challenging case - it has some highs and lows, nets out positive, but only slightly. I would say that many lives have rollercoaster elements, and many have interesting shapes. I’m interested in some illustrative cases. We’ll consider two pairs and how they map:
The Slave and The Ox
The slave and the ox live similar lives. They wake, they work, they sleep, they repeat. If we observed computed experience, we’d see that both are confined to a narrow basin: high recurrence, low branching, and little reachable future.
If we could see all trajectories, we’d see the shapes as similar. But here’s a case where Saturationism is instructive: the slave and the ox may have similar actual reach, but the slave has much greater dark cap-mass around him. For an ox, the range of possible lives is smaller, and this one isn’t that bad. A slave is closer to the floor of human experience, and their potential is restricted more heavily.
The Prisoner and The Scholar
Two men inhabit repetitive lives in tight quarters. But the prisoner is confined unwillingly, and the scholar delights in his ivory tower.
This is a case in which the immediate sensory landscape is dominated by internal experience. The scholar visits the world, in his head, writing away. The prisoner stares at the wall.
The point here is that two sensorially similar lives need not have similar trajectories. If you sliced the experience vector hemispherically, external and internal, the prisoner and the scholar are close on one side, but distant on another.
My chief complaint with value-bearer-agnostic Saturationism is that it ends up extremely lossy. Whole lives are flattened into the passionless mush of a scalar welfare value. But those experiences happened! They had a physical form, they left an inviolable imprint on the universe. Can we really reduce them so easily?
Welfare is a summary; experience is an object. If subjective trajectory is computable, you can simply operate on the object itself. If we fix in place the value-bearers we also fix in place the possible universe, bounded computationally. Saturationism, interpreted over computed trajectories, is less of a metaphor about abstract “types” and more of a coverage function over the space of all possible experiences.
When the value-bearer is unspecified, experiences are top-down classified; in the realm of computable experience, they are measured bottom-up. This is a more robust approach.