SVD and the Pseudoinverse

Imagine you are handed a machine G that takes a model m — a subsurface density, a blurred-away image, a hidden temperature field — and produces data d = Gm. You only get to see d. Your job is to run the machine backwards and recover m. Sometimes this is easy; sometimes it is a catastrophe where a whisper of measurement noise erupts into a reconstruction that looks like television static. What decides which? The answer is hidden inside a single factorization, and once you see it, the whole subject of inverse problems snaps into focus.

That factorization is the singular value decomposition, the master tool of inverse theory. It is a kind of X-ray: it looks straight through the operator and shows you, direction by direction, exactly how much G stretches or squashes the world — and therefore exactly where and why your reconstruction will break. Every forward operator factors as

G = U\Sigma V^{\mathsf T} = \sum_{i} \sigma_i\, u_i v_i^{\mathsf T},

with orthonormal model directions v_i, orthonormal data directions u_i, and singular values \sigma_1 \ge \sigma_2 \ge \dots \ge 0. Read it as a three-step recipe: the map takes each model direction v_i, stretches it by the number \sigma_i, and lands it on data direction u_i. Nothing more complicated is going on — every linear operator, no matter how tangled it looks, is secretly just "rotate, stretch along axes, rotate again."

The pseudoinverse just divides by σ

If the forward map stretches by \sigma_i, then undoing it must divide by \sigma_i. Reverse the three steps — rotate back with U^{\mathsf T}, divide by each singular value, rotate into model space with V — and you have the pseudoinverse:

G^{+} = V\Sigma^{+}U^{\mathsf T} = \sum_{\sigma_i > 0} \frac{1}{\sigma_i}\, v_i u_i^{\mathsf T}, \qquad \hat m = G^{+}d = \sum_{\sigma_i>0}\frac{u_i^{\mathsf T}d}{\sigma_i}\,v_i.

Inverting the diagonal matrix \Sigma means the almost-too-simple rule \sigma_i \mapsto 1/\sigma_i — with the one careful exception that a zero stays zero (you cannot divide by nothing, so those directions are simply left out). This one formula explains everything ahead:

Hold onto that second bullet — it is the whole reason ill-posed problems are hard, and taming those 1/\sigma_i factors is precisely what regularization does.

Worked example: build a pseudoinverse by hand

Take a deliberately simple operator whose SVD is already staring at you — a diagonal matrix, so U = V = I and the diagonal entries are the singular values:

G = \begin{pmatrix} 4 & 0 \\ 0 & 0.5 \end{pmatrix}, \qquad \sigma_1 = 4,\ \sigma_2 = 0.5.

The pseudoinverse just flips each singular value to its reciprocal, \sigma_i \mapsto 1/\sigma_i:

G^{+} = \begin{pmatrix} 1/4 & 0 \\ 0 & 1/0.5 \end{pmatrix} = \begin{pmatrix} 0.25 & 0 \\ 0 & 2 \end{pmatrix}.

Notice the asymmetry already: the strong direction (\sigma_1 = 4) shrinks gently to 0.25, while the weak direction (\sigma_2 = 0.5) gets amplified to 2. Small singular value, large reciprocal — every time.

Worked example: watch a small σ turn into a big 1/σ

Now let the second singular value keep shrinking and tabulate what the pseudoinverse does with it:

\begin{array}{c|c} \sigma_2 & 1/\sigma_2 \\ \hline 0.5 & 2 \\ 0.1 & 10 \\ 0.01 & 100 \\ 0.001 & 1000 \end{array}

Suppose your data has a modest 1\% of noise sitting along u_2. When \sigma_2 = 0.001, that 0.01 of noise becomes 0.01 \times 1000 = 10 in the recovered model — a tiny wobble in the data becomes an enormous spike in the answer. The forward map whispered along that direction (multiplying by 0.001); the pseudoinverse screams back along it (multiplying by 1000). Drag \sigma_2 toward zero in the figure below and watch 1/\sigma_2 run away.

When a singular value shrinks

The forward map sends the unit circle to an ellipse with semi-axes \sigma_1, \sigma_2. Shrink \sigma_2 toward zero and the ellipse collapses to a sliver — that model direction barely registers in the data. Watch the readout: as \sigma_2 \to 0, the inverse factor 1/\sigma_2 blows up. Recovering that direction means dividing the data (noise and all) by something tiny.

Effective rank: how many σ actually matter

In exact arithmetic a matrix either has a singular value equal to zero or it does not. In the real world of noisy data, that clean distinction dissolves. What matters instead is the effective rank: how many singular values are large enough to rise above the noise. Line the singular values up in decreasing order and you typically see them plunge — 10,\ 6,\ 3,\ 0.8,\ 0.05,\ 0.002,\ \dots The first few carry genuine, recoverable information. The tail, buried under the noise level, carries nothing you can trust; the pseudoinverse's 1/\sigma_i would only turn them into amplified garbage.

So the SVD hands you not just a formula but a diagnosis: count the singular values above the noise floor and you know how many independent things your experiment can actually resolve — before you spend a single hour on reconstruction. Deciding exactly where the trustworthy singular values end and the noise-dominated ones begin is the whole story of the Picard condition and truncated methods coming up next.

The pseudoinverse formula G^{+} = V\Sigma^{+}U^{\mathsf T} is mathematically flawless — and that is exactly the trap. It faithfully inverts every singular direction, including the ones with vanishingly small \sigma_i that are dominated by noise. People sometimes assume "the pseudoinverse is the best possible inverse, so it must give the best possible answer." Not for an ill-posed problem. Because it dutifully divides the noisy tail by tiny numbers, the plain pseudoinverse produces a wildly amplified, useless reconstruction — its very faithfulness is what dooms it.

The fix is not a better inverse formula; it is to deliberately refuse to invert the untrustworthy directions — either by dropping the small-\sigma terms entirely (the truncated SVD) or by softly damping them ( Tikhonov regularization). That is what regularization is: a principled way of handling the 1/\sigma_i factors that the raw pseudoinverse handles recklessly.

Ask a numerical analyst for their desert-island matrix factorization and a great many will say the SVD. The same three-line idea you just used to build a pseudoinverse is the beating heart of an astonishing range of technology:

In inverse problems the SVD plays a slightly different role: it is the X-ray that shows you, in advance and in precise detail, where and why your reconstruction is going to break. Same decomposition, a hundred different superpowers.