Skip to main content
Skip to article

Research Note

L-Curve Axis-Scale Ambiguity (Hansen σ² vs σ⁴ bug catch)

Zhenyu He · Jobs Stroustrup 7 min read

Definition

L-Curve Axis-Scale Ambiguity is a structural limitation of the classical L-curve method, formally articulated by Zhenyu at the Caltech DSCOVR project’s 2022-01-08 group meeting:

  1. Hansen formula-level bug: in Hansen’s Discrete Inverse Problems (SIAM 2010), the denominator of the log-log L-curve curvature formula should be (the chain-rule denominator from the filter-factor derivative expansion), but the book writes it as — not a typo, but a systematic bug that causes the actual computed best λ to be 80× overestimated
  2. Axis-scale ambiguity (deeper cause): when discussing “corner identification” of L-curve, Hansen does not discuss whether the units of x-axis and y-axis should be commensurate — the “naked-eye elbow” is not scale-invariant (a visual artifact); even if the formula is correct, under different axis scaling the maximum of the computed curvature and the naked-eye elbow will not agree

“Hansen didn’t talk about whether we should control the units of x-axis and y-axis of L-curve to be the same. In his book, he showed two L-curve figures, but both didn’t control the units to be the same.” — Zhenyu 2022-01-08 group meeting

80× Numerical Comparison (core evidence)

For the same toy model + same DSCOVR PC2 real data, simultaneously running Hansen’s textbook formula vs Hansen’s student’s correct formula:

FormulaToy model best λPC2 best λAccuracy
Hansen student correct version (denominator )0.02510.0575Consistent with naked-eye elbow + theoretical value under axis image (Toy); consistent with under axis-image (PC2)
Hansen book wrong version (denominator )1.9951.99580× overestimate, completely fails (on PC2 even independent of data, constantly 1.995)

Zhenyu’s independent mathematical verification (Deductions of the curvature of log-log Lcurve.docx, 36-paragraph complete derivation):

  • Starting from SVD + filter factors
  • Deriving first- and second-order derivatives of and with respect to
  • Key step: denominator of chain-rule expansion has (verbatim “The denominator should have instead of )
  • Complete formula structure (39-paragraph symbolic derivation) → Hansen student’s formula is consistent with Zhenyu’s independent derivation

Zhenyu’s intuition diagnosis (from lcurve_test.docx, 84 paragraphs):

“Eta_u 在 u 大的时候, 相对比较小, rho_u 在 miu 大的时候, 近乎是一个不变的常数。所以如果把分母的 u⁴ 错误写成了 u², 那么在 u > 1 的区间内, 分母被低估了, 整个分式结果被高估了。但是如此高引用的文章, 居然有这样的问题”

(English gloss: When u is large, Eta_u is relatively small; when miu is large, rho_u is nearly a constant. So if the u⁴ in the denominator is mistakenly written as u², then in the u > 1 interval the denominator is underestimated and the whole fraction result is overestimated. Yet such a highly cited paper has this kind of issue.)

3-step self-correction cycle (11/29 → 12/06 → 01/08)

Embodies Zhenyu’s intellectual honesty + research iteration:

Step 1 — 2021-11-29 group meeting (slide 4): discovered that the curvature maximum computed by his own formula was not at the naked-eye elbow location — admitted “my formula is wrong” as an initial hypothesis

Step 2 — 2021-12-06 group meeting (slide 6): hypothesized that “accumulation of numerical errors during 9600×3200 matrix computation” was the root cause — this was a physically reasonable but actually wrong hypothesis, written explicitly on the PPT

Step 3 — 2022-01-08 group meeting (breakthrough): refuted the “accumulation of errors” hypothesis from Step 2, correctly attributing it to axis-scale ambiguity — the naked-eye elbow itself is not scale-invariant

“What if our naked eyes are wrong, but the calculated curvature is right?”

5-cell hand-calculation demo (2022-01-08 PPT): Zhenyu provided a hand-calculation example explicitly demonstrating that the same L-curve under different axis scalings (matplotlib default vs matlab axis image) has different “naked-eye elbow” positions, but the true curvature maximum (computed with the correct formula) is unchanged → proving the naked-eye elbow IS NOT scale-invariant.

inconvenient-evidence retention (physical evidence discipline)

In the LCurve_HansenMistake_WeRectify_Test/ subdirectory, Zhenyu preserves both PDF files side by side:

  • Hansen自己文章_仍然mu二次方.pdf (filename gloss: “Hansen’s own article — still mu squared.pdf”) — Hansen’s own book formula (denominator , judged wrong by Zhenyu)
  • hansen学生mu四次方.pdf (filename gloss: “Hansen student — mu fourth power.pdf”) — Hansen’s student (a Student Formula) version (denominator , judged correct by Zhenyu)

This is the “inconvenient-evidence retention” spirit: not deleting the wrong PDF from Hansen’s book but preserving it side by side with the corrected version — providing direct visual-diff raw material for subsequent readers. The same directory also contains:

  • 5 nested test subdirectories (toy model / PC2 / 2 prior-whitening variants / DSCOVR stress test)
  • Each test contains cal_curv_bydata_PC2.m + knee_pt.m + spline_test.m MATLAB code + .mat data + .png plots
  • lcurve_test.docx (84 paragraphs) + Deductions of the curvature of log-log Lcurve.docx (36 paragraphs), two study notes

3 open questions to community (proposed by Zhenyu)

At the end of the 2022-01-08 PPT, Zhenyu explicitly raised 3 open questions to the L-curve community, making explicit Hansen’s undiscussed structural boundary:

  1. Should L-curve axes be of commensurate units? — matplotlib / matlab default does not enforce same axis scale, yet curvature is scale-dependent; should this be standardized?
  2. Is a senior collaborator’s elbow conclusion a scale artifact? — the elbow in DSCOVR PC2 case and Kawahara’s toy may be merely coincidence (since naked-eye judgment is sensitive to scale) — should not be over-trusted
  3. Under what conditions and how should L-curve be tuned in application? — provide guidelines so that future users know when naked-eye is OK and when axis-scale must be corrected

→ This is the research maturity of pointing out the undiscussed boundaries of an established method — typical undergrads or master’s students would not realize this kind of issue.

Open Questions

[to be added] In the future, if the L-curve community responds to these 3 open questions, or if Zhenyu submits the full mathematical argument for “axis-scale ambiguity” as an arxiv preprint or sends a letter to Hansen himself, backfill the community reaction + formal argument PDF.

  • Generalization to other regularization methods: does the L-curve axis-scale problem also exist in other log-log graphical diagnostics (e.g., Picard plot, filter factor plot)?
  • Curvature formula canonical form: does the “correct” curvature formula derived in Deductions of the curvature of log-log Lcurve.docx 36-paragraph have a published correction in the community? If not, is it worth Zhenyu writing an independent short note for submission?

Sources

  • research_wiki/projects/mcmc_retrieval/overview.md §Contribution (c) “Find Maximum Curvature only by the data” (2022-01-08, theoretical + numerical)
  • research_wiki/projects/mcmc_retrieval/overview.md §💎 P3 New discovery 1: Zhenyu directly found the textbook formula error in Hansen (σ² vs σ⁴)
  • research_wiki/projects/mcmc_retrieval/overview.md §2021-11-29 → 2021-12-06 catch own bug + self-audit (3-step cycle)
  • research_wiki/projects/mcmc_retrieval/overview.md §3 open questions to community
  • LCurve_HansenMistake_WeRectify_Test/ — physical evidence side-by-side directory (Hansen original PDF + Hansen student PDF + 5 test subdirectories + lcurve_test.docx 84 paras + Deductions of the curvature of log-log Lcurve.docx 36 paras)
  • Hansen, P. C. Discrete Inverse Problems: Insight and Algorithms (SIAM 2010) — the original textbook, the source where Zhenyu found the formula bug
  • 2022-01-08 group meeting PPT (P2) “Find Max Curvature only by data” — formal presentation of axis-scale discovery + 3 open questions
  • [to be added] Full 36-paragraph SVD + filter factor chain-rule derivation in Deductions of the curvature of log-log Lcurve.docx from Zhenyu’s research-angle independent wiki (after merge this page can post the full symbolic derivation)
  • [to be added] If Zhenyu submits a formal argument in the future (arxiv preprint or letter to Hansen), backfill artifact link