31  Tekil Değer Ayrışımı (SVD)

Kursun doruğu — A = UΣVᵀ, LoRA/PCA’nın matematiği

NotBölüm bilgisi

31.1 Bu Derste Ne Var?

Kursun doruğu: her matrisin en iyi ayrışımı — SVD. Jordan formu kırılgandı; SVD her matris için kararlı.

  1. \(A = U \Sigma V^T\) — iki ortogonal × köşegen.
  2. Geometri: satır uzayında ortonormal \(\mathbf{v}\)’ler → kolon uzayında ortonormal \(\mathbf{u}\)’lar; \(A\mathbf{v}_i = \sigma_i \mathbf{u}_i\).
  3. Hesap: \(V\) = \(A^T A\) özvektörleri, \(U\) = \(AA^T\) özvektörleri, \(\sigma = \sqrt{\lambda}\).
  4. Dört temel alt-uzay için doğru ortonormal bazlar.

“This is the final and best factorization of a matrix.” — Strang, 0:27

flowchart LR
    SVD["⭐⭐ A = UΣVᵀ"] --> GEO["Avᵢ = σᵢuᵢ"]
    SVD --> COMPUTE["V = özvektör(AᵀA)<br/>U = özvektör(AAᵀ)<br/>σ = √λ"]
    SVD --> FOUR["⭐ Dört alt-uzaya<br/>ortonormal baz"]
    SVD --> ML["⚡ LoRA<br/>PCA<br/>Truncated SVD<br/>Pseudoinverse<br/>Spectral norm"]

    style SVD fill:#fff3e0,stroke:#e67e22,stroke-width:4px
    style ML fill:#fce4ec,stroke:#c2185b,stroke-width:3px
flowchart LR
    SVD["⭐⭐ A = UΣVᵀ"] --> GEO["Avᵢ = σᵢuᵢ"]
    SVD --> COMPUTE["V = özvektör(AᵀA)<br/>U = özvektör(AAᵀ)<br/>σ = √λ"]
    SVD --> FOUR["⭐ Dört alt-uzaya<br/>ortonormal baz"]
    SVD --> ML["⚡ LoRA<br/>PCA<br/>Truncated SVD<br/>Pseudoinverse<br/>Spectral norm"]

    style SVD fill:#fff3e0,stroke:#e67e22,stroke-width:4px
    style ML fill:#fce4ec,stroke:#c2185b,stroke-width:3px
Şekil 31.1: SVD = kursun zirvesi: alt-uzay + ortogonallik + özdeğer birleşimi → LoRA, PCA, pseudoinverse.
İpucuBuilder Notu — SVD = ML’in Tek En Önemli Aracı
  • LoRA = \(\Delta W = BA\), düşük-rank güncelleme; doğrudan SVD/Eckart-Young.
  • PCA = veri matrisinin SVD’si; \(\sigma\) varyans, \(V\) ana bileşen.
  • Truncated SVD = en iyi rank-\(k\) yaklaşım (Eckart-Young) → görüntü/LSA sıkıştırma, öneri sistemleri.
  • Pseudoinverse \(A^+ = V\Sigma^+ U^T\) (Ders 33).
  • Condition number \(\sigma_{\max}/\sigma_{\min}\) = sayısal kararlılık.
  • Spectral normalization = \(\sigma_{\max}\) sınırı; GAN/Lipschitz.

31.2 SVD — \(A = U \Sigma V^T\)

\[ \boxed{A = U \Sigma V^T} \]

  • \(U\) (\(m \times m\)) ortogonal.
  • \(\Sigma\) köşegen, \(\sigma_1 \geq \sigma_2 \geq \cdots \geq 0\) (tekil değerler).
  • \(V\) (\(n \times n\)) ortogonal.

Yeni: iki farklı ortogonal matris (\(U \neq V\) genelde). Köşegenleştirmede \(S\) ortogonal değildi; SVD bunu kararlı yapar ve her matris için çalışır.

31.3 Geometrik Hedef ⭐

Satır uzayında ortonormal \(\mathbf{v}_1, \ldots, \mathbf{v}_r\)kolon uzayında ortonormal \(\mathbf{u}_1, \ldots, \mathbf{u}_r\):

\[ A \mathbf{v}_i = \sigma_i \mathbf{u}_i \]

\(\sigma_i\) = gerdirme faktörü.

31.4 Matris Diline — \(AV = U\Sigma\)

\[ A V = U \Sigma \implies A = U \Sigma V^T \quad (V \text{ ortogonal}) \]

31.5 \(U\)’ları Yok Etme — \(A^T A = V \Sigma^2 V^T\)

\[ A^T A = V \Sigma^T \underbrace{U^T U}_{I} \Sigma V^T = V \Sigma^2 V^T \]

Bu özdeğer ayrışımı (\(Q\Lambda Q^T\) biçimi):

  • \(V\) = \(A^T A\) özvektörleri.
  • \(\sigma^2\) = \(A^T A\) özdeğerleri.

Aynı şekilde \(A A^T = U \Sigma^2 U^T\).

31.6 Hesap Reçetesi

Bileşen Kaynak
\(V\) \(A^T A\) özvektörleri
\(U\) \(A A^T\) özvektörleri (\(\mathbf{u}_i = A\mathbf{v}_i / \sigma_i\) tercih)
\(\sigma\) \(\sqrt{\lambda(A^T A)}\)

İşaret tuzağı: \(U\)’yu bağımsız hesaplarsan işaret tutmayabilir. Güvenli: \(\mathbf{u}_i = A\mathbf{v}_i / \sigma_i\).

31.7 Örnek 1 — \(A = \begin{pmatrix} 4 & 4 \\ -3 & 3 \end{pmatrix}\)

\[ A^T A = \begin{pmatrix} 25 & 7 \\ 7 & 25 \end{pmatrix} \]

Özvektörler \((1, 1)/\sqrt 2, (1, -1)/\sqrt 2\); özdeğerler 32, 18.

\(\sigma_1 = \sqrt{32}, \sigma_2 = \sqrt{18}\), \(V = \frac{1}{\sqrt 2}\begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix}\).

\(AA^T = \text{diag}(32, 18)\)\(U = I\) (gerçekte \(u_2 = -e_2\) işaret düzeltmesiyle).

import numpy as np

A = np.array([[4, 4], [-3, 3]], dtype=float)
U, s, Vt = np.linalg.svd(A)
print("U =\n", np.round(U, 4))
print("σ =", s)
print("Vᵀ =\n", np.round(Vt, 4))
print("U Σ Vᵀ - A =", np.linalg.norm(U @ np.diag(s) @ Vt - A))   # 0

31.8 Örnek 2 — Rank 1

\(A = \begin{pmatrix} 4 & 3 \\ 8 & 6 \end{pmatrix}\) — her satır \((4, 3)\) katı, rank 1.

\(A^T A\) özdeğerleri: \(125, 0\)\(\sigma_1 = \sqrt{125}, \sigma_2 = 0\). Sıfır-olmayan σ sayısı = rank.

31.9 SVD ve Dört Temel Alt-Uzay ⭐

Vektörler Ortonormal baz Boyut
\(\mathbf{v}_1, \ldots, \mathbf{v}_r\) Satır uzayı \(C(A^T)\) \(r\)
\(\mathbf{v}_{r+1}, \ldots, \mathbf{v}_n\) Null uzayı \(N(A)\) \(n - r\)
\(\mathbf{u}_1, \ldots, \mathbf{u}_r\) Kolon uzayı \(C(A)\) \(r\)
\(\mathbf{u}_{r+1}, \ldots, \mathbf{u}_m\) Sol null \(N(A^T)\) \(m - r\)

Ders 10’dan beri aranan doğru ortonormal bazlar. Hem ortonormal hem köşegenleştiren.

“It’s exactly the right basis for the four fundamental subspaces.” — Strang, 39:36

31.10 Simetrik PD — Özel Durum

\(A\) simetrik PD → \(A = Q\Lambda Q^T\) ile SVD çakışır:

\[ U = V = Q, \quad \Sigma = \Lambda \]

31.11 Bu Dersin Özeti

  1. \(A = U\Sigma V^T\) her matris için.
  2. \(A\mathbf{v}_i = \sigma_i \mathbf{u}_i\).
  3. \(V\) = özvektör(\(A^T A\)), \(U\) = özvektör(\(AA^T\)), \(\sigma = \sqrt\lambda\).
  4. İşaret tuzağı: \(\mathbf{u}_i = A\mathbf{v}_i / \sigma_i\).
  5. \(A^T A\) ve \(AA^T\) aynı özdeğer (\(\sigma^2\)).
  6. Dört alt-uzay için ortonormal baz.
  7. Simetrik PD: \(U = V = Q\).
ÖnemliTek bir cümle

\(A = U\Sigma V^T\) her matrisi “dönüştür → ölçekle → dönüştür” şeklinde ayrıştırır; dört alt-uzaya doğru ortonormal bazlar. LoRA, PCA, pseudoinverse, Eckart-Young, spectral norm — modern ML omurgası.

31.12 Kontrol Soruları

Genel \(A\) için özvektör matrisi ortogonal değil; satır uzayı (\(V\)) ve kolon uzayı (\(U\)) için ayrı bazlar.

\(V\) = \(A^T A\) özvektörleri (\(A^T A = V \Sigma^2 V^T\)). Simetrik PSD → ortogonal özvektör.

\(\sigma_i = \sqrt{\lambda_i(A^T A)}\). \(AA^T\) aynı λ’ya sahip.

Bir sıfır-olmayan σ. Sıfır-olmayan σ sayısı = rank.

\(U = V = Q\), \(\Sigma = \Lambda\). Tek ortogonal matris.

31.13 Egzersizler

Egzersiz 1. \(A = \text{diag}(3, 2)\) → SVD?

Egzersiz 2. \(A = ((0, 2), (0, 0))\)\(A^T A\), σ, rank.

Egzersiz 3. \(A\) 4×3 rank 2 → \(U, \Sigma, V\) boyutları, kaç σ ≠ 0?

Egzersiz 4. (Python) np.linalg.svd + dört alt-uzay bazları.

Egzersiz 5. İspatla: En iyi rank-\(k\) yaklaşım = en büyük \(k\) tekil değeri tutmak (Eckart-Young, kavramsal). LoRA matematiği.

31.14 Sonraki Ders İçin Hazırlık

Ders 30: Lineer Dönüşümler ve Matrisleri

  • Soyut lineer dönüşüm \(T: V \to W\).
  • Baz seçimine bağlı temsil.
  • Türev, döndürme, projeksiyon — hep lineer dönüşüm.
UyarıDers 30 öncesi
  • Egzersiz 5 (Eckart-Young).
  • np.linalg.svd ile dene.

31.15 Anahtar Kavramlar (Cheat Sheet)

Kavram Tanım
SVD \(A = U\Sigma V^T\)
Temel ilişki \(A\mathbf{v}_i = \sigma_i \mathbf{u}_i\)
\(V\) \(A^T A\) özvektörü
\(U\) \(A A^T\) özvektörü; \(\mathbf{u}_i = A\mathbf{v}_i/\sigma_i\)
σ \(\sqrt{\lambda(A^T A)}\)
Rank # nonzero σ
Dört alt-uzay \(\mathbf{v}\) satır+null, \(\mathbf{u}\) kolon+sol-null
Simetrik PD \(U = V = Q\), \(\Sigma = \Lambda\)
Condition number \(\sigma_{\max} / \sigma_{\min}\)

31.16 ML Bağlantıları Özeti

İpucu7 köprü
  1. LoRA = \(\Delta W = BA\) düşük-rank.
  2. PCA = SVD veri matrisi.
  3. Eckart-Young = en iyi rank-\(k\) yaklaşım.
  4. Pseudoinverse \(A^+ = V\Sigma^+ U^T\).
  5. Condition number = sayısal kararlılık.
  6. Spectral norm = \(\sigma_{\max}\); GAN/Lipschitz.
  7. Truncated SVD → görüntü sıkıştırma, LSA, öneri sistemleri.
ÖnemliTek bir şey alıp gideceksen

\(A = U\Sigma V^T\) — kursun zirvesi. Dört alt-uzaya doğru ortonormal bazlar. LoRA, PCA, pseudoinverse, Eckart-Young, spectral norm — modern ML omurgası.