A deep neural network can look well scaled one layer at a time and still be difficult to optimize. Signals pass through many transformations, and small expansions or contractions can multiply with depth. By the time a gradient travels through the whole network, some directions may have nearly disappeared while others have been amplified dramatically.

Dynamical isometry gives a precise way to reason about this problem. Instead of asking only whether the average gradient magnitude is reasonable, it asks how the network transforms different directions in its input space. The key object is the input-output Jacobian, and the key measurements are its singular values.

This article builds that mental model from a two-dimensional example, connects it to gradient propagation, and explains what orthogonal initialization can and cannot guarantee. The goal is not to turn dynamical isometry into a universal architecture rule. It is to give you a sharper diagnostic for why depth can make optimization fragile.

Start with a simple transformation

Consider a linear transformation:

y = W x

Suppose W stretches one direction by a factor of 3 and shrinks a perpendicular direction by a factor of 0.2. A small change to the input behaves differently depending on its direction:

direction A: input change 1.0 -> output change 3.0
direction B: input change 1.0 -> output change 0.2

The singular values of W describe these principal stretch factors. In this example they are 3 and 0.2.

If both singular values were 1, the transformation would preserve lengths in every direction. Rotations and reflections are familiar examples. For a square matrix, an orthogonal matrix has exactly this norm-preserving property.

A deep network composes many transformations. Even moderate distortions can therefore accumulate. If one direction is repeatedly multiplied by 0.8 through 50 compatible transformations, its scale would be:

0.8^50 ~= 0.0000143

If another direction were repeatedly multiplied by 1.2, the corresponding scale would be:

1.2^50 ~= 9100

Real nonlinear networks do not usually preserve the same singular directions from layer to layer, so these scalar examples are deliberately simplified. They demonstrate the important cause-and-effect relationship: products of transformations can turn modest local distortion into severe end-to-end distortion.

The Jacobian is the network’s local transformation

For a nonlinear network f, there is no single matrix W that describes its behavior everywhere. Around a particular input x, however, the Jacobian describes how small input changes affect the output:

J(x) = df(x) / dx

For a sufficiently small perturbation delta_x, the first-order approximation is:

delta_y ~= J(x) delta_x

This makes the singular values of J(x) useful. They tell us how strongly the network locally expands or contracts different perturbation directions.

If the singular values are concentrated near 1, small changes are propagated without severe directional amplification or attenuation. This condition is called dynamical isometry.

The word dynamical matters because the object is not merely one weight matrix. It is the effective transformation produced by the network’s composition of weights and nonlinearities at a point in its computation.

A useful summary is:

singular value << 1 -> a local direction is strongly contracted
singular value ~= 1 -> a local direction is approximately preserved
singular value >> 1 -> a local direction is strongly amplified

Why average gradient scale is not enough

A common initialization goal is to keep activation or gradient variance from systematically growing or shrinking with depth. That is valuable, but an average can hide directional problems.

Imagine a Jacobian with two singular values:

0.1 and 1.41

Their squared values are approximately:

0.01 and 1.99

The mean squared singular value is therefore about 1. An average-scale diagnostic can look healthy even though one direction is shrunk by a factor of ten and another is amplified.

Now compare:

1.0 and 1.0

The mean squared singular value is also 1, but every direction is preserved in this two-dimensional example.

Dynamical isometry is the stronger condition. It concerns the distribution of singular values, not only an average moment of that distribution.

This distinction explains why two initializations with similar activation variances can still have different optimization behavior in a sufficiently deep network.

Connect the Jacobian to backpropagation

The same transformations that move information forward also affect gradients in reverse.

If a scalar loss L depends on the network output y = f(x), then the gradient with respect to the input contains the transposed Jacobian:

grad_x L = J(x)^T grad_y L

A matrix and its transpose have the same singular values. Therefore directions that are strongly contracted or amplified in the local input-output mapping also indicate directions where backpropagated gradient components can be strongly attenuated or amplified.

This does not mean that every singular value far from 1 causes training failure. Optimization depends on the loss, data, parameterization, architecture, optimizer, and which directions are actually used. The Jacobian spectrum describes conditioning of signal propagation; it is not a complete theory of learning.

Still, it provides a useful mechanism for understanding vanishing and exploding gradients beyond a single gradient norm.

Why orthogonal initialization helps in the simple case

Consider a deep linear network:

f(x) = W3 W2 W1 x

If every square weight matrix is orthogonal, then their product is also orthogonal:

(W3 W2 W1)^T (W3 W2 W1) = I

So every singular value of the end-to-end transformation is 1. This is an especially clean case: orthogonal initialization can preserve norms through arbitrary depth at initialization.

This result motivates the use of orthogonal matrices when thinking about trainable deep networks. But the conclusion becomes more complicated as soon as nonlinear activations enter the network.

Nonlinearities change the Jacobian

Take a feed-forward network layer:

h_next = phi(W h)

Its local Jacobian contains both the weight matrix and derivatives of the activation:

J_layer = D W

Here D is a diagonal matrix whose entries are activation derivatives evaluated at the current pre-activations.

Even if W is orthogonal, D usually is not. For ReLU, for example, the derivative is 1 for positive pre-activations and 0 for negative ones, away from the nondifferentiable point at zero. The zero entries remove local directions from the layer’s Jacobian.

Therefore:

orthogonal weights != orthogonal network Jacobian

This is one of the most important practical lessons. Orthogonal initialization is a property of parameter matrices. Dynamical isometry is a property of the composed input-output Jacobian. They coincide in some simple settings but should not be treated as synonyms.

Classical theoretical work on dynamical isometry makes this distinction explicit. Results depend on the activation function, architecture, depth, and initialization assumptions. A claim proved for deep linear networks or a particular random-network model should not be promoted into a guarantee for an arbitrary modern architecture.

Residual connections change the propagation problem

Residual networks introduce a different local structure:

h_next = h + F(h)

The Jacobian of this block is:

J_block = I + J_F

The identity path gives signals and gradients a route that does not require passing only through J_F. If the residual branch initially makes a relatively small transformation, the block Jacobian can remain closer to the identity than an unconstrained transformation would.

This is a useful intuition for why residual parameterizations can make very deep networks easier to optimize. It is not a guarantee that all singular values of a complete residual network remain near 1: products of I + J_F can still become poorly conditioned, and the actual behavior depends on scaling, normalization, nonlinearities, and training.

The practical point is that architecture affects Jacobian geometry. Initialization is only one control knob.

Measure the right thing for the question

Computing every singular value of a large model’s full input-output Jacobian can be prohibitively expensive. You usually do not need to start there.

If the immediate symptom is exploding training, first inspect cheaper signals:

activation statistics by depth
gradient norms by layer
loss and update magnitudes
fraction of saturated or inactive activations

These can reveal straightforward failures quickly.

Jacobian-based analysis becomes more useful when you are comparing initialization schemes, studying unusually deep networks, or trying to understand why average-scale diagnostics look normal while optimization remains unstable.

For a small model or reduced diagnostic setup, you can explicitly form the Jacobian on representative inputs and compute its singular values. For larger systems, numerical methods can estimate extreme singular values or matrix-vector products without materializing the entire matrix. The exact implementation depends on the automatic-differentiation framework and model shape, so treat this as a diagnostic design problem rather than a fixed recipe.

When comparing two configurations, keep the following controlled where possible:

architecture
depth
input distribution
activation function
normalization
random-seed policy
optimizer and learning rate

Otherwise a different Jacobian spectrum may be caused by several simultaneous changes.

Interpret the spectrum carefully

Suppose two initializations produce these simplified spectra at initialization:

A: 0.02, 0.10, 0.95, 1.20, 7.40
B: 0.72, 0.88, 0.99, 1.08, 1.31

Configuration B is closer to dynamical isometry: its singular values are more tightly concentrated around 1. That gives you a reason to expect better-conditioned local signal propagation at initialization.

It does not prove that B will reach lower validation loss, train faster under every optimizer, or generalize better. Those are empirical outcomes that need their own measurements.

Also remember that a nonlinear network’s Jacobian depends on the input. A spectrum measured on one synthetic vector may not describe the examples the model actually sees. Use representative data and inspect variation across examples or batches.

Common mistakes

The first mistake is equating stable gradient norm with good conditioning. A norm collapses many directions into one number. Large and small singular values can coexist while an aggregate statistic looks reasonable.

The second is assuming orthogonal initialization guarantees dynamical isometry. It does for appropriate linear constructions, but nonlinear derivatives and architectural operations change the end-to-end Jacobian.

The third is treating singular values near 1 as the final training objective. Dynamical isometry is primarily a way to reason about signal propagation and initialization. A trained network may need contractions and expansions to represent its task.

The fourth is measuring only at initialization and assuming the geometry remains fixed. Gradient updates change the parameters, so the Jacobian spectrum can evolve during training.

The fifth is importing a theoretical result without its assumptions. Results for fully connected networks, convolutional networks, recurrent networks, specific nonlinearities, or infinite-width limits answer different questions. Use theory to identify mechanisms and hypotheses, then validate them in the architecture you run.

When this mental model is useful

Dynamical isometry is especially useful when depth itself appears to make a network hard to optimize, when initialization choices produce unexpectedly different training behavior, or when you want to understand the difference between preserving average variance and preserving directional information.

It is less useful as the first explanation for every failed training run. Bad data, an incorrect loss, an excessive learning rate, numerical overflow, broken masking, or implementation bugs are often simpler causes. Check those before performing expensive Jacobian analysis.

For many production models, you may never explicitly optimize for dynamical isometry. The concept is still valuable because it sharpens the question from:

Are my gradients roughly the right size?

to:

Does the network preserve useful directions, or does depth make some directions
nearly impossible to propagate?

That is a more complete way to think about conditioning in deep networks.

Conclusion

Dynamical isometry describes a network whose input-output Jacobian has singular values concentrated near 1. The idea matters because deep learning composes many transformations: preserving an average scale is not enough if some directions vanish while others explode.

Start with the simple geometry. Singular values measure directional stretching, the Jacobian describes the network’s local transformation, and backpropagation uses the transpose of that transformation. Orthogonal weights provide exact norm preservation in important linear cases, but nonlinearities and architecture determine the Jacobian of a real network.

Use dynamical isometry as a diagnostic mental model, not a universal prescription. It is most useful when it helps you connect an optimization symptom to a measurable propagation mechanism and design a controlled experiment to test that connection.