Intuition The one idea behind everything
A neural network stores more ideas than it has neurons by pointing each idea in a slightly different direction inside a space of numbers — like squeezing many arrows into a small room so none quite overlap. The paths that read and combine those directions to compute something are called circuits ; the trick of packing many directions into few dimensions is called superposition .
This page builds every symbol the parent note uses, starting from "what is a number in a network" and ending at "what does s m p mean". Nothing below assumes you have seen linear algebra. Read top to bottom — each block earns the next.
Two shorthand symbols we will lean on repeatedly, defined before first use:
Definition The wavy symbols
≲ and ∼
≲ means "less than, up to a fixed constant we don't fuss over" — so m ≲ X reads "m is at most a constant times X ". We use it because the exact constant depends on messy details but the shape of the bound is what teaches us.
∼ means "grows like / is of the same size as " — noise ∼ s k reads "the noise is roughly this size", ignoring constant factors. Unless we say otherwise, our ∼ statements are typical-case / high-probability claims about random vectors, not exact equalities.
Everything in this topic lives inside activation space : a set of numbers a layer produces, drawn as a point (or an arrow from the origin) in a grid.
Keep this drawing in your head. Every symbol below is a label on this picture .
Definition Neuron activation
a j
A neuron is one number-producing slot inside a layer. Its activation a j is the single number it outputs for a given input — how "loud" that slot is right now.
Plain words: the reading on one dial.
Picture: one axis of the grid in figure s01. a 1 is how far right you are, a 2 is how far up.
Why the topic needs it: superposition is a claim about which dials light up together , so we must first name a single dial.
The subscript j is just a name tag: a 1 is neuron 1, a 2 is neuron 2, and so on. When we write a j with a letter, we mean "any one of them".
Where do these numbers come from? A neuron sums up its inputs and then passes them through an activation function (often ReLU, which zeros out negatives). That non-linear squash is why a neuron can stay silent for most inputs — a fact that matters later for sparsity .
v
A vector is an ordered list of numbers, written in bold: v = [ v 1 v 2 ] . Each number is a component ; v j is the j -th component.
Plain words: the full set of dial readings, kept together as one thing.
Picture: the single arrow from the origin to the point ( v 1 , v 2 ) in figure s01.
Why the topic needs it: a "feature direction" is a vector — the whole point of superposition is that features are arrows, not single neurons.
So a neuron is one axis ; a vector is one arrow built from readings along every axis. The parent note writes feature vectors like v 2 = [ 0.5 0.866 ] — that is just "0.5 right, 0.866 up".
The tiny subscript on the whole bold letter (v 2 ) names which arrow . The subscript on a plain letter (v 2 or v ij ) names which component . Same style, different job — watch which one is bold.
n
The dimension n is the number of axes (neurons) in the space — how many numbers each vector holds.
Plain words: how many independent dials the layer has.
Picture: a 2D grid has n = 2 (two arrows of axes). Real networks have n in the thousands — we just can't draw those.
Why the topic needs it: superposition compares n (room size) against m (how many ideas we cram in).
Definition Feature, and feature count
m
A feature is a human-meaningful thing the network wants to represent ("this text is about apples", "this pixel is on a curved edge"). The count m is how many distinct features the network wants to store.
Plain words: m = number of ideas; n = number of dials.
Picture: each feature i is assigned its own arrow v i inside the room.
Why the topic needs it: the entire drama is the case m > n — more ideas than dials .
Here is exactly that case: m = 4 feature arrows squeezed into an n = 2 room.
Notice in the figure that only two arrows could ever be at perfect right angles in 2D — yet four fit if we let them lean slightly toward each other. That lean is the whole subject; we quantify it with the symbol s in section 7.
The parent writes v i ∈ R n . Read ∈ R n as "is a list of n real numbers" — i.e. "v i is an arrow living in the n -axis room". R just means "ordinary numbers" (positive, negative, fractions), and the superscript n means "n of them".
Before two arrows can be compared for "which way they point", we need to measure how long one arrow is. That length is called the norm.
∥ v ∥
The norm ∥ v ∥ is the straight-line length of the arrow from the origin to its tip. By the Pythagoras theorem on the grid,
∥ v ∥ = v 1 2 + v 2 2 + ⋯ + v n 2 = v ⋅ v .
(The last equality just says "a vector dotted with itself gives its squared length" — we define the dot product in section 6, but the picture-meaning is Pythagoras.)
Plain words: how far the arrow's tip is from the origin.
Picture: the length of the hypotenuse of the right triangle whose legs are the components (figure s03, left).
Why the topic needs it: the overlap threshold s and the "cos θ " story only make clean sense for arrows of a fixed length. So we standardise every feature arrow to length 1 .
Definition Unit vector and normalization
A unit vector is an arrow of length exactly 1 : ∥ v ∥ = 1 . To turn any arrow into a unit arrow you normalize it — divide by its own length:
v ^ = ∥ v ∥ v , ∥ v ^ ∥ = 1.
Convention for this whole topic: every feature vector v i is taken to be a unit vector , ∥ v i ∥ = 1 . That is why the parent (and section 7) can speak of "unit arrows" — feature directions carry information in their direction , not their length , so we fix the length to 1 and only ever ask which way they point.
Check the example: v 2 = [ 0.5 0.866 ] has ∥ v 2 ∥ = 0. 5 2 + 0.86 6 2 = 0.25 + 0.75 = 1 — indeed a unit arrow.
The right panel shows what a whole set of unit arrows looks like: all tips sit on the unit circle (in 2D) or unit sphere (in higher n ), so comparing them is purely about angle.
Now we need a tool. The topic keeps asking "do two feature arrows point the same way?" We need one number that answers that. That number is the dot product.
v i ⋅ v j
The dot product multiplies matching components and adds them up:
v i ⋅ v j = v i 1 v j 1 + v i 2 v j 2 + ⋯ + v in v j n
Written with angle brackets in the parent as ⟨ v i , v j ⟩ — same thing , just a fancier notation.
θ between two vectors
θ (Greek letter "theta") is the angle you would measure between two arrows if you drew them both from the origin. θ = 0° means they overlap; θ = 90° means a perfect right angle; θ = 180° means they point opposite ways.
The dot product and this angle are tied together by the fundamental identity
v i ⋅ v j = ∥ v i ∥ ∥ v j ∥ cos θ .
For unit arrows (∥ v i ∥ = ∥ v j ∥ = 1 ) the two length factors are both 1 , so this collapses to the clean statement v i ⋅ v j = cos θ — the dot product is the cosine of the angle.
Intuition Why THIS tool and what its number means
The dot product answers the exact question "how aligned are these arrows?" in one number. Because for our unit arrows it equals cos θ :
+ 1 (θ = 0° ) → arrows point the same way (agree).
0 (θ = 90° ) → arrows are at a right angle (unrelated).
− 1 (θ = 180° ) → arrows point oppositely.
That is why the topic can talk about "overlap" using a single scalar between − 1 and + 1 .
The picture below turns that into a curve: as the angle θ grows from 0° to 180° , the dot product slides from + 1 (aligned) through 0 (right angle) to − 1 (opposite).
We picked the dot product and not, say, ordinary subtraction because subtraction gives a new arrow (still n numbers), whereas we want one honest number saying "aligned or not". That's the dot product's whole job.
First, one more piece of notation, then the overlap symbol.
Definition Absolute value
∣ x ∣
∣ x ∣ means the absolute value of x : its size with the sign thrown away. ∣ + 0.3 ∣ = 0.3 and ∣ − 0.3 ∣ = 0.3 . We use it around a dot product, ∣ v i ⋅ v j ∣ , because we only care how big the overlap is, not whether the arrows lean positively or negatively toward each other.
Definition Overlap threshold
s
s is the largest overlap we are willing to tolerate between any two different feature arrows. For unit arrows it is a value of the dot product, so it lives on the scale of cos θ : 0 ≤ s ≤ 1 .
s = 0 → we demand perfect right angles (true orthogonality).
Small s (say 0.1 ) → arrows may lean a little; this is the "almost orthogonal" regime.
s = 1 → we allow arrows to point the same way entirely (no separation left — useless).
Why the topic needs it: s is the single knob that trades how many features you can pack against how cleanly you can read each one back.
Definition Orthogonal and "almost orthogonal"
Two arrows are orthogonal when they meet at a perfect right angle, i.e. v i ⋅ v j = 0 . They are almost orthogonal when the overlap stays under the threshold s : ∣ v i ⋅ v j ∣ ≤ s .
Plain words: orthogonal = totally independent; almost orthogonal = mostly independent with a tiny lean s into each other.
Picture: figure s02 (section 4) shows 4 arrows in a 2D room — only 2 can be perfectly at right angles, but 4 can be almost at right angles.
Why the topic needs it: perfect orthogonality caps you at n features (one per axis). Allowing a little overlap s is precisely the loophole that lets m blow past n .
Common mistake Edge cases of the threshold
s
If s ≥ 1 : the constraint ∣ v i ⋅ v j ∣ ≤ s is always satisfied (unit vectors can't overlap more than 1 ), so it stops constraining anything — two arrows could coincide and you'd never tell them apart. Useful thresholds are strictly s < 1 , usually much smaller.
How s should scale with n : random arrows in an n -axis room already overlap by only about 1/ n (see section 10), so in big rooms you can afford to set s near that natural floor — larger n lets you keep s tiny while still fitting huge m .
Common mistake "Almost orthogonal means the same as orthogonal"
No. That tiny non-zero overlap s is not a rounding error — it is the cost you pay to store extra features. Too many arrows and the little overlaps pile up into interference (section 9), corrupting your readings.
Definition Sparsity probability
p
p is the probability that a given feature is active (present) on a random input. Small p = sparse = each feature shows up rarely.
Plain words: on any one sentence, only a handful of the m possible ideas are actually "on".
Picture: of the m arrows, only about m p light up at once (figure s05 below).
Why the topic needs it: sparsity is what makes packing usable . If everything is on at once, the overlaps collide; if only a few are on, the collisions are rare enough to decode.
The pink bars in the figure are the active features; the faded ones are silent. Out of m possible features, only a small fraction p are lit — that is what "sparse" looks like.
Definition Active-feature count
k
k is the number of features that are simultaneously active on a single input. Since each of the m features turns on independently with probability p , the expected count is
k ≈ m p .
Read this as "expected active count = (total features) × (chance each is on)". In the figure, m = 40 and p = 0.15 , so k ≈ 6 — matching the roughly six pink bars.
When several active features share overlapping directions, their small overlaps add up and pollute your reading of any one feature. That pollution is interference .
Definition Signal-to-noise ratio and
SNR m i n
SNR ("signal-to-noise ratio") is a unitless number: the size of the true signal divided by the size of the interference noise. An active unit feature has signal ≈ 1 , so SNR ≈ 1/ ( interference ) . Bigger SNR = cleaner reading.
SNR m i n is the smallest SNR we can still tolerate — the decoding threshold below which the true feature drowns in noise. The subscript "min" means "the minimum acceptable value", a fixed cutoff (often taken near 1 , meaning signal must at least match noise). As long as
s m p ≲ SNR m i n ,
the signal still stands above the mush and the feature can be recovered.
Rearranging that inequality gives the parent's capacity formula m ≲ p s 2 SNR m i n 2 — sparser features (smaller p ) let you store more. That connects directly to how sparse autoencoders try to un-mix superposed features by forcing sparse activations.
exp (exponential)
exp ( x ) , also written e x , is the "explosive growth" function — add a little to x and the output multiplies . The parent's geometric ceiling
m ≲ exp ( c s 2 n )
says: the number of almost-orthogonal arrows you can fit grows explosively with room size n — that is why so few dimensions hold so many features.
Picture: figure s06 — a curve that shoots upward.
Why THIS function: the chance a random pair of arrows overlaps more than s shrinks like exp ( − c s 2 n ) ; invert that shrinking failure-rate and the number you can pack grows like exp ( c s 2 n ) .
Now the two facts the parent asserts, each with an honest sketch.
Intuition Fact 1 — why the typical overlap is
1/ n
Take two random unit arrows in an n -axis room. Their dot product is
v i ⋅ v j = v i 1 v j 1 + ⋯ + v in v j n ,
a sum of n products. Each product averages to 0 (the coordinates are just as likely + as − and are independent), so the sum has mean 0 — random arrows are unrelated on average .
How big is a typical sum of n independent, mean-zero terms? Exactly the drunkard's-walk answer: adding n random ± steps lands you a typical distance n from the start, so the unnormalized sum has typical size n × ( one term ) . Because each arrow is length 1 , one coordinate is of size ≈ 1/ n , so one product is ≈ 1/ n , and n of those give a total of
∣ v i ⋅ v j ∣ ∼ n ⋅ n 1 = n 1 .
So random arrows are already nearly orthogonal in high dimensions — you get almost-orthogonality for free just by having a big room. That is the engine behind superposition.
Intuition Fact 2 — why the tail decays like
exp ( − c s 2 n ) , giving m ≲ exp ( c s 2 n )
From Fact 1 the overlap of a random pair is a mean-0 quantity whose typical size is 1/ n . Rescale it by n and it behaves like a standard bell curve (a Gaussian , the shape a sum of many small independent terms always takes). The chance a bell-curve value lands beyond s standard-deviations-worth — i.e. the chance the overlap exceeds s — falls off like the Gaussian tail
P ( ∣ v i ⋅ v j ∣ > s ) ∼ exp ( − c s 2 n )
for a fixed constant c > 0 (the s 2 and the n both sit inside the exponent because the overlap's spread is 1/ n , so exceeding s costs ∝ s 2 n ).
Now count. With m arrows there are ( 2 m ) ≈ m 2 /2 pairs. The chance any pair overlaps more than s (a union bound — add up each pair's small chance) is at most
2 m 2 exp ( − c s 2 n ) .
Keeping this below 1 (so that with good probability every pair stays almost-orthogonal) needs m 2 ≲ exp ( c s 2 n ) , i.e.
m ≲ exp ( 2 c s 2 n ) ,
which is the promised exponential capacity (absorbing the 2 1 into the constant). Exponential in n , not linear — that is the whole magic.
So two random arrows overlap by only about 1/ n , and the number you can pack before any pair breaks the threshold grows exponentially in n . These are the two statistical facts the parent leans on.
Definition Circuit, ablation, residual stream
A circuit is a small set of neurons / attention heads / connections that together carry out one algorithm ("copy this token", "detect a curve").
Ablation = zeroing out part of the network to test if a behaviour breaks — the causal test.
The residual stream is the shared "notice-board" vector that each layer reads from and writes to, letting an early head pass information to a later head.
Picture: figure s01's arrow is a residual-stream state; a circuit is a path that transforms that arrow.
Why the topic needs it: superposition explains storage ; circuits explain computation . The parent's induction-head example is a circuit.
These link out to attention head interpretability (which heads do the reading/writing) and feature visualization (seeing what a direction means), and feed forward into concept activation vectors (naming a direction as a concept).
Orthogonal vs almost orthogonal
Interference s times root k
Circuits and superposition topic
Cover the right side and answer out loud before revealing.
Why does capacity grow like $\
What is a neuron activation a j in one phrase? One number = the reading on a single dial (axis) of a layer.
What is a vector v geometrically? An arrow from the origin whose components are readings along each axis.
What does n stand for? The dimension — how many axes / neurons the space has.
What does m stand for, and what makes the topic interesting? The number of features; the interesting case is m > n (more ideas than dials).
What is the norm ∥ v ∥ and its formula? The length of the arrow,
∥ v ∥ = v 1 2 + ⋯ + v n 2 = v ⋅ v .
What is a unit vector, and what convention does this topic use for feature vectors? An arrow of length exactly 1 ; every feature vector v i is normalized to ∥ v i ∥ = 1 .
What single number does the dot product v i ⋅ v j give, and what does 0 mean? How aligned two arrows are; 0 means a perfect right angle (unrelated).
What is θ , and how does it relate to the dot product for unit arrows? The angle between two arrows; for unit arrows v i ⋅ v j = cos θ .
What does ∣ x ∣ (absolute value) mean? The size of x with its sign discarded: ∣ − 0.3 ∣ = 0.3 .
What is s , and what range does it live in? The largest tolerated overlap between feature arrows; for unit arrows 0 ≤ s ≤ 1 (useful values are s < 1 ).
Difference between orthogonal and almost orthogonal? Orthogonal = dot product exactly 0 ; almost orthogonal = overlap under threshold, ∣ v i ⋅ v j ∣ ≤ s .
What is k and how does it relate to m and p ? The number of simultaneously active features; expected value k ≈ m p .
What does the subscript in SNR m i n mean, and what are SNR's units? "min" = the minimum acceptable SNR (decoding cutoff); SNR is unitless (signal size ÷ noise size).
Why is interference s k and not s k ? Random
± overlaps partly cancel — the drunkard's-walk
k law (typical size).
Why do two random arrows overlap by about 1/ n ? Their dot product sums
n small independent
± terms; a random walk of
n steps has typical size
n , giving overlap
∼ 1/ n after normalising.