Slow Is Fast: 1. Is Muon Where Shampoo Ends Up?
Translated from 慢即是快:1. Shampoo的尽头是Muon? by Jianlin Su (苏剑林)
Sep 28, 2026
Translator’s note (Opus 5.5): This is an English translation of 慢即是快:1. Shampoo的尽头是Muon? by Jianlin Su (苏剑林), originally published on September 28, 2026 on Scientific Spaces (科学空间). It is the first article in the “Slow Is Fast” (慢即是快) series. The translation preserves the author’s first-person voice and is published with permission for educational use.
As everyone knows, the Muon optimizer has been popular for quite a while now. Although it can’t be said to have completely replaced Adam, it has already become a highly competitive optimizer that can no longer be ignored. Meanwhile, over the past two years the Shampoo family of optimizers has also refused to be left behind (不甘落后): besides the original Shampoo, it has evolved into variants such as KL-Shampoo, OKLS, PSGD, and SOAP, all of which claim to achieve better results than Muon.
However, this post is going to pour a bucket of cold water on that: for all Shampoo-like, Kronecker-product-based preconditioned optimizers, the ideal limit may well be Muon — the preconditioning matrices we pay such a high price to build may all be “wasted effort” (无用功).
Average Convergence
We start from the average convergence result obtained in Making Alchemy More Scientific (Part 10): Dismantling and Patching the Monotonicity Assumption: under the convexity assumption, the update rule satisfies the following inequality where I won’t go into the meaning of the other notation here; please refer to the original post. Intuitively, this convergence upper bound consists of two terms: the first represents how fast we descend, and the second represents how violently the convergence process jitters. In actual training, we need to choose appropriate and to balance the sizes of the two terms and make the bound as small as possible.
In other words, we assume: a better optimizer can be obtained by minimizing the convergence upper bound. There is already a precedent for this approach: the post Making Alchemy More Scientific (Part 9): Classic Adaptive Gradient Algorithms, based on the assumptions that and that is constant, replaced with its upper bound , then minimized the bound to obtain , thereby leading to the AdaGrad optimizer.
This assumption is also the core starting point that runs through all the derivations in this post.
Slowest Descent
Now let’s switch perspectives: suppose we have a ready-made, fixed matrix , and we transform it into , where is an orthogonal matrix. We hope to choose an appropriate such that becomes a better optimizer. How do we judge whether it is better? Following the viewpoint of the previous section, we want it to lower the convergence upper bound. Note that orthogonal transformations do not change eigenvalues, so . Then, assuming that varies slowly with , we have As a result, is approximately invariant under the substitution . So if we only want to optimize , the objective function reduces to just the second term Since the for each can be different, we can perfectly well minimize pointwise, which can in turn be written as Here is the optimizer’s update direction. We know that , so another meaning of the above problem is: under the first-order approximation, minimize the amount by which the loss decreases at each step — that is, slowest descent.
Fast vs. Slow
Readers who have read posts such as Muon Sequel: Why We Chose to Try Muon?, Steepest Descent on Manifolds: 1. SGD + Hypersphere, and Beyond MuP: 2. Linear Layers and Steepest Descent should know that many optimizers are derived from the principle of steepest descent (i.e., fastest descent). And now along comes slowest descent — don’t the two conflict?
In fact, they represent precisely two completely different ways of looking at optimizers. Steepest descent is a local, greedy solution under a first-order approximation: it hopes that taking the optimal step at each moment will yield a globally good solution, and it represents an optimistic assumption. Minimizing the convergence upper bound, on the other hand, represents a global, pessimistic assumption: it hopes that even in the worst case, we can still achieve some kind of convergence guarantee.
The reason the latter happens to take the counterintuitive form of slowest descent is that we have restricted the optimization space to orthogonal transformations, so the first term of the convergence upper bound is approximately negligible, leaving only the second term, whose meaning is slowest descent. This also reminds us that slowest descent cannot be considered for every optimization space; it is merely a special case for the orthogonal space, and its feasibility in other situations needs to be analyzed case by case.
Here, the role of slowest descent is to make the optimization trajectory smoother while still guaranteeing descent, so that a larger learning rate can be used, or so that at the same learning rate we advance faster and more accurately. In the language of steepest descent, we would instead need to build our assumptions about stability into the constraint on the update (for example, Muon chooses the spectral norm).
In addition, in stochastic optimization this term is also related to noise — if we decompose into “true value + random noise”, then will contain a variance term — so slowest descent also means reducing the influence of noise on the optimization process, making the optimization more accurate.
Matrix Optimization
The preceding sections discussed general principles; now let’s formally carry out the derivation for matrix optimization. Consider a matrix parameter with gradient , whose flattened vector is . Here is an matrix, which is rather laborious to think about.
For the matrix setting, we consider preconditioners that can be expressed as Kronecker products. However, we won’t introduce the language of Kronecker products here; instead, we understand things directly from the perspective of linear operators, i.e., we directly interpret as That is, the optimizer’s update rule is (written with Kronecker products, ), where are two positive semidefinite preconditioning matrices. may depend on the current gradient or even on historical gradients, so this covers Muon and the various Shampoo variants (in their momentum-free versions).
Now fix the matrices . We hope to choose appropriate orthogonal matrices and such that the new update becomes a better optimizer (written with Kronecker products, ). The guiding principle is exactly the “orthogonal slowest descent” discussed in the preceding sections, namely
A First Solution
The full problem is a bit complicated. For simplicity, let’s first solve the special case to get a feel for it. The problem then simplifies to Note that , so this is exactly the von Neumann trace inequality problem we derived in The Rearrangement Inequality and Its Generalizations. Its minimum is where denotes the -th largest eigenvalue of the corresponding matrix. Let the SVD of be (the full version, i.e., are both square orthogonal matrices, with the singular values sorted from largest to smallest). Then the eigendecomposition of is , and the minimizer satisfies , where is the diagonal matrix formed by the eigenvalues of sorted from smallest to largest. The optimal update is then When I first saw this result, I was quite shocked. It tells us that no matter what the original is, after orthogonal slowest descent it can retain at most its eigenvalues, while its eigenvector matrix disappears completely. The final update is the left and right singular matrices of sandwiching a diagonal matrix . This diagonal matrix multiplies the eigenvalues of with the singular values of in reverse order, which makes all the singular values more uniform — consistent with the idea behind Muon.
This result hints that no matter how expensive our preconditioning is, the best outcome is nothing more than “heading for Muon” (奔赴Muon). Next, we will see that this conclusion still holds in the general case .
The General Case
Let . By the invariance properties of the trace, we have Let the optimal solution be , with the corresponding denoted . Fixing and solving for , and fixing and solving for , respectively, we can use the result of the previous section to write down the stationary-point conditions where are the eigendecompositions of , respectively (“” indicates eigenvalues sorted from largest to smallest). Our task is to analyze the properties of . The first conclusion is exactly the same as in the previous section: has the form , where is the SVD of and is some diagonal matrix. The proof is not difficult. From the stationary-point conditions, direct computation gives This shows that and are both symmetric matrices. Since are both square orthogonal matrices, any can be uniquely written as (i.e., ). Substituting gives and ; their symmetry is equivalent to the symmetry of and , respectively. In component form, this reads From this we get . Assuming the singular values of are pairwise distinct (if not, interpret it as the limit of a sequence of matrices), it follows that for , i.e., is a diagonal matrix . This result shows once again that, even in the general case, the eigenvector matrices of the preconditioners are still eliminated by orthogonal slowest descent, leaving at most their eigenvalues.
Tending Toward Balance
Unfortunately, we cannot simply write down a closed-form solution for , but we can qualitatively deduce that the diagonal of tends toward balance. Specifically, from we can write Comparing with Eq. (14), by the uniqueness of eigendecomposition (note: the uniqueness of eigendecomposition relies on the eigenvalues being pairwise distinct; otherwise we could construct counterexamples that make the problem more complicated, but since we are mainly doing a heuristic derivation here, we won’t nitpick the details), we find that differ from by at most a permutation matrix, so we can write where are two permutation matrices. Then Thus . Note that every factor inside the parentheses is a diagonal matrix. Finding the minimum amounts to finding a pairing among the eigenvalues of that minimizes the sum of their products, which is essentially a three-sequence generalization of the rearrangement inequality. From The Rearrangement Inequality and Its Generalizations, we know that the ideal outcome is for the component-wise products to be equal after pairing, which corresponds to (taking the reciprocal of each diagonal entry while keeping the shape unchanged).
Of course, since we are only finding the minimum via pairing, it is hard to make all the products equal. In general, we can only expect it to be an intermediate state between (the worst case) and (the best case) — and the geometric mean of the two is precisely the identity matrix! So once again, this points to the orthogonalization operation that makes all singular values uniform!
Further Remarks
I should make clear that I have no intention of praising Muon at Shampoo’s expense (捧Muon踩Shampoo). On the contrary, some time ago I spent quite a lot of time testing various Shampoo variants, with the original intention of finding an optimizer better than Muon. Unfortunately, after trying for a long time, I found that none of the Shampoo variants could beat Muon. As it happened, I had recently been deriving convergence results for adaptive optimizers, so I thought about the two together, which eventually led to the conclusions of this post.
To be frank, the conclusions of this post rely on the “orthogonal slowest descent” framework, and that framework in turn relies on a series of assumptions, every link of which is open to question. For example, using a convergence upper bound to guide optimizer design is itself a pessimistic, worst-case criterion; a smaller upper bound does not guarantee faster convergence in practice. As another example, the assumption that varies slowly, as well as the first-order approximations used throughout, are rather crude and cannot be made more precisely quantitative.
More importantly, although minimizing the convergence upper bound looks more global, it is essentially also a greedy solution — and, strictly speaking, the problem isn’t even well-posed! This is because it takes the sequence of as given and derives the remaining parameters from it. However, once the learning rate or other parameters are changed, the subsequent gradients change accordingly, so there is simply no way for the entire gradient sequence to be given in advance.
Of course, if we accept these non-rigorous aspects and accept orthogonal slowest descent, then we arrive at the heuristic conclusions above, which tell us: we only need to focus on adjusting the spectrum (singular values) of the gradient or momentum, without paying a high price to build complex preconditioning matrices. This is at least engineering-friendly. As for the Shampoo route, setting aside whether it actually works better, the extra state variables and computation it introduces certainly carry a large engineering cost.
Summary
Starting from the average convergence upper bound of convex optimization, this post proposed the principle of “orthogonal slowest descent” and applied it to Kronecker-product-based preconditioned optimizers (Muon and the Shampoo family). We found that, regardless of the original preconditioning matrix, orthogonal slowest descent “washes out” its eigenvector matrix, leaving at most its eigenvalues to correct the singular value spectrum of the gradient (or momentum) and equalize it. All of this is highly homogeneous with Muon — just as the title suggests.
Citation: Su, J. (2026, September 28). 慢即是快:1. Shampoo的尽头是Muon? [Slow Is Fast: 1. Is Muon Where Shampoo Ends Up?]. Scientific Spaces. https://kexue.fm/archives/11917
Original content licensed under CC BY-NC-ND 2.5 CN. This translation is published with the author’s permission for educational use.