MatrixLab tabulka, která něco dělá

Tohle je statická kopie kapitoly pro vyhledávače. Interaktivní verze má animované obrázky, kontrolní otázky a tlačítka, která příklad načtou do kalkulačky.

SVD: každé zobrazení je otočení, natažení a otočení

Kapitola 9 řekla, že symetrická matice je ve správně natočené soustavě čisté natažení. Napadne otázka, co se dá říct o té zbylé, mnohem větší skupině — nesymetrických, nečtvercových, singulárních. Odpověď je překvapivě silná: totéž, jen se otáčí dvakrát.

A = U · Σ · Vᵀsingulární rozklad — platí pro KAŽDOU matici
xy1,501,000,001,00A =singulární hodnoty1,905 0,787podmíněnost κ2,42hodnost2det = součin σ1,500A = U·Σ·Vᵀ
  1. jednotkový kruh → A → elipsa

    Pusťme na jednotkový kruh libovolnou matici. Ať je jakkoli ošklivá, výsledkem je vždycky elipsa — nikdy nic jiného. To samo o sobě je věta, která se dá vidět.

  2. Vᵀ — otoč kruh

    Nejdřív se kruh otočí. Na kruhu se tím nic nezmění — je kulatý — ale značky na něm se posunou, a právě ony ukazují, které dva kolmé směry se za chvíli budou natahovat.

  3. Σ = diag(1,91, 0,79)

    Pak se to natáhne podél os — každou osu zvlášť, žádné zkosení. Ta dvě čísla se jmenují singulární hodnoty a jsou to poloosy výsledné elipsy.

  4. U — otoč na místo

    A nakonec se elipsa otočí do konečné polohy. Tři kroky a je hotovo.

  5. A = U · Σ · Vᵀ

    Každá matice — čtvercová i ne, singulární i ne — se dá rozložit na otočení, natažení podél kolmých os, otočení. Nic jiného zobrazení dělat neumí. Tohle je nejsilnější věta v celé lineární algebře a je vidět na jednom obrázku.

  6. κ = σ₁/σ₂ = 2,42

    Poměr největší a nejmenší singulární hodnoty je číslo podmíněnosti: jak moc je ta elipsa protáhlá. Kruh (κ = 1) je ideál; doutník znamená, že jeden směr skoro zanikl. Kolik jich je nenulových, to je hodnost. Tři nejdůležitější vlastnosti matice se čtou z jednoho obrázku.

Čtyři snímky. Značky na kruhu jsou tam kvůli druhému kroku: otočit něco kulatého vypadá jako by se nedělo nic, a přitom je to ten krok, který vybírá osy k natažení.

Slovy: otoč, natáhni podél kolmých os, otoč. A nic jiného lineární zobrazení dělat neumí — žádné čtvrté chování neexistuje. Tohle je nejsilnější věta v celé lineární algebře a vejde se do jednoho obrázku.

Co se z toho čte

veličinaze singulárních hodnotco to znamená v obrázku
hodnostkolik jich je nenulovýchkolik rozměrů elipsa opravdu má
‖A‖₂σ_maxnejvíc, co se dá natáhnout
podmíněnost κσ_max / σ_minjak je elipsa protáhlá
|det A|součin všech σobsah elipsy / obsah kruhu
pseudoinverze1/σ pro nenulovékapitola 12

Kruh (κ = 1) je ideál: zobrazení natahuje ve všech směrech stejně. Doutník znamená, že jeden směr skoro zanikl — matice je skoro singulární, a to i tehdy, když determinant vypadá nevinně.

Proč je to lepší než vlastní čísla

vlastní číslasingulární hodnoty
existují projen čtvercovékaždou matici
můžou být komplexníanone, vždycky reálné ≥ 0
vektory kolméjen u symetrickýchvždycky
numerickymůžou být velmi citlivévelmi stabilní

Proto se v praktických výpočtech hodnost, podmíněnost i nejmenší čtverce počítají ze SVD a ne z determinantu nebo vlastních čísel.

Jak se to počítá tady — a co to stojí. SVD se v téhle labce počítá přes symetrický eigenproblém matice AᵀA. Je to krátké a pro učební matice úplně dostatečné, ale umocnění půlí počet platných číslic u nejmenších singulárních hodnot. Prakticky to znamená, že tenhle solver nerozliší podmíněnost nad ~10⁷ a nad tou hranicí hlásí ∞ místo velkého čísla, kterému nemá nikdo věřit. Je to napsané v komentáři solveru a chytily to jeho vlastní testy — viz kapitola 7. Skutečné knihovny používají Golubův–Kahanův algoritmus, který AᵀA nikdy nesestaví.

Kde se s tím potkáte

  • Nejmenší čtverce a pseudoinverze — kapitola 12 a OptiLab.
  • Inverzní kinematika tlumenými nejmenšími čtverci — u singularity se malé singulární hodnoty potlačí místo obrácení, jinak by rameno vystřelilo. Viz KineLab.
  • Kalibrace kamery — homografie se hledá jako singulární vektor příslušející nejmenší singulární hodnotě. Viz VisionLab.
  • Komprese a redukce dimenze — nechat jen největší singulární hodnoty je nejlepší možná aproximace nižší hodností (Eckartova–Youngova věta). PCA je SVD kovarianční matice.

Vzorce v této kapitole

A = UΣVᵀ — singulární rozklad
A = U·Σ·Vᵀ, UᵀU = VᵀV = I, Σ diagonální ≥ 0 [—] kap. 10
κ(A) — číslo podmíněnosti
κ = σ_max / σ_min [—] kap. 10
‖A‖₂ — spektrální norma
‖A‖₂ = σ_max [—] kap. 10