17  Projeksiyon Matrisleri ve Least Squares

Lineer regresyonu uçtan uca — b = p + e, AᵀAx̂ = Aᵀb

NotBölüm bilgisi

17.1 Bu Derste Ne Var?

  1. Projeksiyon recap: \(\mathbf{b} \in C(A) \to P\mathbf{b} = \mathbf{b}\); \(\mathbf{b} \perp C(A) \to P\mathbf{b} = \mathbf{0}\).
  2. Doğru fitleme sayısal: \((1,1), (2,2), (3,2)\)\(y = 2/3 + (1/2)t\).
  3. İki resim: noktalar+doğru vs vektörler (\(\mathbf{b} = \mathbf{p} + \mathbf{e}\)).
  4. \(A^T A\) tersinir ⟺ bağımsız kolonlar — tam ispat.
  5. Ortonormal vektörler (\(A^T A = I\)) — Ders 17 köprüsü.

“A transpose A x hat equals A transpose b — the most important equation in statistics and estimation.” — Strang, 21:23

flowchart LR
    AB["A·x = b çözümsüz"] --> NE["AᵀAx̂ = Aᵀb"]
    NE --> X["x̂ = (AᵀA)⁻¹Aᵀb"]
    X --> P["p = Ax̂"]
    P --> DEC["⭐ b = p + e<br/>(dik ayrışım)"]
    DEC --> RES["e ∈ N(Aᵀ)<br/>(artık)"]

    NE -.->|kolonlar bağımsız| INV["AᵀA tersinir<br/>(‖Ax‖² ispat)"]
    INV -.->|ortonormal A| ID["AᵀA = I<br/>(QR, Ders 17)"]

    style DEC fill:#fff3e0,stroke:#e67e22,stroke-width:3px
    style ID fill:#fce4ec,stroke:#c2185b,stroke-width:2px
flowchart LR
    AB["A·x = b çözümsüz"] --> NE["AᵀAx̂ = Aᵀb"]
    NE --> X["x̂ = (AᵀA)⁻¹Aᵀb"]
    X --> P["p = Ax̂"]
    P --> DEC["⭐ b = p + e<br/>(dik ayrışım)"]
    DEC --> RES["e ∈ N(Aᵀ)<br/>(artık)"]

    NE -.->|kolonlar bağımsız| INV["AᵀA tersinir<br/>(‖Ax‖² ispat)"]
    INV -.->|ortonormal A| ID["AᵀA = I<br/>(QR, Ders 17)"]

    style DEC fill:#fff3e0,stroke:#e67e22,stroke-width:3px
    style ID fill:#fce4ec,stroke:#c2185b,stroke-width:2px
Şekil 17.1: Least squares uçtan uca: A → AᵀA → x̂ → p + e → ortonormal son.
İpucuBuilder Notu — Lineer Regresyon Uçtan Uca
  • Least squares = MSE regresyon kapalı-form.
  • \(\mathbf{b} = \mathbf{p} + \mathbf{e}\) = fit + residual; artık analizi model teşhisi.
  • Outlier → robust loss (L1, Huber); kareler outlier’a duyarlı.
  • \(A^T A\) tersinir = bağımsız özellik → multicollinearity’de ridge.
  • Ortonormal → QR / kararlılık → Ortogonal başlatma gradyanları korur.

17.2 Projeksiyon Recap — İki Uç

\(\mathbf{b} \in C(A)\): \(P\mathbf{b} = A(A^T A)^{-1}(A^T A)\mathbf{x} = A\mathbf{x} = \mathbf{b}\) ✓.

\(\mathbf{b} \perp C(A)\): \(A^T \mathbf{b} = \mathbf{0}\)\(P\mathbf{b} = A(A^T A)^{-1} \cdot \mathbf{0} = \mathbf{0}\) ✓.

17.3 b = p + e ve I − P

\[ \mathbf{b} = \mathbf{p} + \mathbf{e}, \quad \mathbf{p} = P\mathbf{b}, \quad \mathbf{e} = (I - P)\mathbf{b} \]

\(I - P\) dik tümleyene projeksiyon: simetrik, idempotent, \(C(A)\)’ya değil \(N(A^T)\)’ye projeler.

Builder Notu: “Fit + residual” ayrışımı. Artıkların yapısı (rastgele mi, desenli mi) model eksikliğini gösterir. PCA’da da veri = bileşenler (\(P\)) + kalan (\(I - P\)).

17.4 Doğru Fitleme — Sayısal Çözüm

\(A^T A = \begin{pmatrix} 3 & 6 \\ 6 & 14 \end{pmatrix}\), \(A^T \mathbf{b} = \begin{pmatrix} 5 \\ 11 \end{pmatrix}\).

\(3C + 6D = 5\), \(6C + 14D = 11\)\(2D = 1\)\(D = 1/2\), \(C = 2/3\).

\[ \boxed{y = \tfrac{2}{3} + \tfrac{1}{2} t} \]

import numpy as np
import matplotlib.pyplot as plt

A = np.array([[1, 1], [1, 2], [1, 3]], dtype=float)
b = np.array([1, 2, 2], dtype=float)
x_hat, *_ = np.linalg.lstsq(A, b, rcond=None)
print(f"C = {x_hat[0]:.4f}, D = {x_hat[1]:.4f}")

p = A @ x_hat
e = b - p
print(f"p = {p}")
print(f"e = {e}")
print(f"e _|_ kolonlar? {np.allclose(A.T @ e, 0)}")
print(f"Pisagor: ||b||² = {b@b:.4f}, ||p||² + ||e||² = {p@p + e@e:.4f}")

17.5 İki Resim — Noktalar vs Vektörler

Resim 1 (noktalar): \(p_1 = 7/6, p_2 = 5/3, p_3 = 13/6\). Hatalar \(e_i = b_i - p_i = (-1/6, 2/6, -1/6)\).

Resim 2 (\(\mathbb{R}^3\) vektörler): \(\mathbf{b} = (1, 2, 2)\)\(C(A)\)’ya \(\mathbf{p}\), dik kalan \(\mathbf{e}\).

Aynı sayılar, iki bakış: parametre uzayı (C, D) vs veri uzayı (3 nokta).

fig, axes = plt.subplots(1, 2, figsize=(11, 5))

# Resim 1: noktalar + dogru
ax = axes[0]
t_data = np.array([1, 2, 3])
b_data = np.array([1, 2, 2])
t_line = np.linspace(0.5, 3.5, 100)
y_line = 2/3 + 0.5 * t_line

ax.plot(t_line, y_line, color='#1f4e79', lw=2.5, label=r'$y = \frac{2}{3} + \frac{1}{2}t$')
ax.scatter(t_data, b_data, color='#8a1538', s=120, zorder=5, label='veri', edgecolors='black')
for ti, bi in zip(t_data, b_data):
    pi = 2/3 + 0.5*ti
    ax.plot([ti, ti], [bi, pi], color='#16a34a', lw=2, linestyle='--')
    ax.scatter(ti, pi, color='#e67e22', s=80, zorder=4)
ax.set_xlabel('t', fontsize=12); ax.set_ylabel('y', fontsize=12)
ax.set_title('Resim 1: en iyi doğru + dikey hatalar', fontsize=11)
ax.legend(fontsize=10); ax.grid(alpha=0.3)

# Resim 2: vektorler (kavramsal 2D temsil)
ax = axes[1]
# kolon uzayi duzlemi
ax.fill_between([-0.5, 3], [-0.5, -0.5], [2.5, 2.5], color='#fed7aa', alpha=0.4, label='C(A) (kolon uzayı)')
ax.annotate('', xy=(1.8, 1.5), xytext=(0, 0),
            arrowprops=dict(arrowstyle='->', color='#8a1538', lw=2.5))
ax.text(1.85, 1.55, r'$\mathbf{b}$', fontsize=14, color='#8a1538', fontweight='bold')
ax.annotate('', xy=(1.8, 1), xytext=(0, 0),
            arrowprops=dict(arrowstyle='->', color='#e67e22', lw=2.5))
ax.text(1.85, 0.85, r'$\mathbf{p}$', fontsize=14, color='#e67e22', fontweight='bold')
ax.annotate('', xy=(1.8, 1.5), xytext=(1.8, 1),
            arrowprops=dict(arrowstyle='->', color='#16a34a', lw=2.5, linestyle='--'))
ax.text(1.9, 1.25, r'$\mathbf{e} \perp C(A)$', fontsize=12, color='#16a34a', fontweight='bold')

ax.set_xlim(-0.5, 3); ax.set_ylim(-0.5, 2.5); ax.set_aspect('equal')
ax.set_title('Resim 2: $\mathbf{b} = \mathbf{p} + \mathbf{e}$ (dik ayrışım)', fontsize=11)
ax.legend(loc='lower right', fontsize=10); ax.grid(alpha=0.3)

plt.tight_layout()
plt.show()
Şekil 17.2

17.6 Least Squares = Kalkülüs

\[ \|\mathbf{e}\|^2 = \sum (C + D t_i - b_i)^2 \]

\(\partial / \partial C = 0\), \(\partial / \partial D = 0\) — kare olduğu için türevler lineer → tam olarak normal denklemler.

İki yol aynı yere: lineer cebir (projeksiyon) = kalkülüs (minimizasyon).

17.7 Outlier Uyarısı

Kareler aykırı değerlere aşırı duyarlı — bir outlier doğruyu çeker.

“Statisticians would not be happy to see the whole problem turned topsy-turvy by this one outlier.” — Strang, 16:21

İpucuBuilder Notu — Robust Loss
  • L2 (kare): kapalı-form, ama outlier’a duyarlı.
  • L1 (mutlak): outlier’a dayanıklı, iteratif; medyan-benzeri.
  • Huber: küçükte L2, büyükte L1; robust regresyon standardı.

17.8 e ⊥ Kolon Uzayı — Doğrulama

\(\mathbf{e} = (-1/6, 2/6, -1/6)\). Kolonlar \((1, 1, 1)\) ve \((1, 2, 3)\):

\[ \mathbf{e} \cdot (1, 1, 1) = -\tfrac{1}{6} + \tfrac{2}{6} - \tfrac{1}{6} = 0 \checkmark \]

\[ \mathbf{e} \cdot (1, 2, 3) = -\tfrac{1}{6} + \tfrac{4}{6} - \tfrac{3}{6} = 0 \checkmark \]

17.9 AᵀA Tersinir ⟺ Bağımsız Kolonlar ⭐

İddia: \(A\)’nın kolonları bağımsız → \(A^T A\) tersinir.

İspat: \(A^T A \mathbf{x} = \mathbf{0}\) varsay. Soldan \(\mathbf{x}^T\):

\[ \mathbf{x}^T A^T A \mathbf{x} = (A\mathbf{x})^T (A\mathbf{x}) = \|A\mathbf{x}\|^2 = 0 \implies A\mathbf{x} = \mathbf{0} \]

Bağımsız kolonlar → \(A\mathbf{x} = \mathbf{0}\)\(\mathbf{x} = \mathbf{0}\). Demek ki \(N(A^T A) = \{\mathbf{0}\}\) → tersinir. ∎

Builder Notu: Regresyonun benzersiz çözümü için bağımsız özellikler şart. Multicollinearity → \(A^T A\) tekil → ridge (\(A^T A + \lambda I\)) düzeltir. \(A^T A\) ayrıca pozitif yarı-tanımlı (Ders 27).

17.10 Ortonormal Vektörler — AᵀA = I

Ortonormal = dik + birim. \(A^T A\)’nın \((i, j)\) girişi = kolonᵢ · kolonⱼ:

\[ A^T A = I \]

Sonuç: \(\hat{\mathbf{x}} = A^T \mathbf{b}\), \(P = A A^T\)tersine alma yok.

“Those are the best columns you could ask for.” — Strang, 46:23

İpucuBuilder Notu — Ortonormal = Sayısal Kararlılık
  • QR ayrışımı: Regresyonu \(A^T A\) tersine almadan ortonormal \(Q\) ile çözer.
  • Ortogonal ağırlık başlatma: Derin ağlarda gradyan patlamasını önler.
  • Ortonormal bazlar: PCA, SVD (\(U, V\)), Fourier, wavelet.
  • Ortogonal/üniter katmanlar: RNN stabilizasyonu, normalizing flows.

17.11 Bu Dersin Özeti

  1. Projeksiyon uç durumları.
  2. \(\mathbf{b} = \mathbf{p} + \mathbf{e}\); \(I - P\) dik tümleyene.
  3. Doğru fitleme: \(y = 2/3 + (1/2)t\).
  4. İki resim.
  5. Least squares = kalkülüs.
  6. Outlier uyarısı.
  7. \(\mathbf{e} \perp C(A)\) doğrulandı.
  8. \(A^T A\) tersinir ⟺ bağımsız kolonlar (\(\|A\mathbf{x}\|^2\) ispat).
  9. Ortonormal (\(A^T A = I\)).
  10. Ortonormal = en iyi kolonlar (Ders 17).
ÖnemliTek bir cümle

Least squares = çözümsüz \(A\mathbf{x} = \mathbf{b}\)’yi dik projeksiyonla çözer (\(A^T A \hat{\mathbf{x}} = A^T \mathbf{b}\)); \(\mathbf{e} \perp C(A)\); yalnız bağımsız kolonlarda benzersiz, ortonormal kolonlarda en sade (\(A^T A = I\)).

17.12 Kontrol Soruları

\(A^T A = \begin{pmatrix} 3 & 3 \\ 3 & 5 \end{pmatrix}\), \(A^T \mathbf{b} = (2, 3)^T\).

\(3C + 3D = 2\), \(3C + 5D = 3\)\(2D = 1\), \(D = 1/2\); \(C = 1/6\).

\(y = 1/6 + (1/2)t\).

\(\|\mathbf{b}\|^2 = 9\). \(\|\mathbf{e}\|^2 = 6/36 = 1/6\). \(\|\mathbf{p}\|^2 = 53/6\).

\(\|\mathbf{p}\|^2 + \|\mathbf{e}\|^2 = 53/6 + 1/6 = 9 = \|\mathbf{b}\|^2\) ✓ (dik ayrışım sonucu).

\(\mathbf{c}_2 = 2\mathbf{c}_1\) → bağımlı → \(A^T A\) tersinir DEĞİL.

Regresyon benzersiz çözülmez; bağımlı kolonu at ya da ridge.

Outlier: L2 kareler outlier’ı abartır → L1 (medyan), Huber (küçükte L2, büyükte L1) ya da RANSAC.

Ortonormal (\(A^T A = I\)):

  • Normal denklemler \(\hat{\mathbf{x}} = A^T \mathbf{b}\) (tersine alma yok).
  • Sayısal kararlılık (koşul sayısı 1) → QR ayrışımı pratikte tercih edilir.
  • Katsayılar bağımsız.
  • ML’de: ortogonal başlatma, PCA/SVD, Fourier, normalizing flows.

17.13 Egzersizler

Egzersiz 1. \((-1, 1), (0, 0), (1, 1)\) → en iyi doğru. (Simetri: \(D = ?\).)

Egzersiz 2. Aynı noktalara parabol \(y = C + Dt + Et^2\) — tam çözülür mü?

Egzersiz 3. \((I - P)^2 = I - P\) göster, hangi alt-uzaya projeler?

Egzersiz 4. (Python) np.linalg.lstsq ile regresyon + Pisagor doğrulama.

Egzersiz 5. İspatla: \(A^T A\) pozitif yarı-tanımlı (\(\mathbf{x}^T A^T A \mathbf{x} \geq 0\)); bağımsız kolonlarda pozitif tanımlı (\(> 0\) for \(\mathbf{x} \neq \mathbf{0}\)). Ders 27 ve Cholesky temeli.

17.14 Sonraki Ders İçin Hazırlık

Ders 17: Ortogonal Matrisler ve Gram-Schmidt

  • \(Q\) matrisi (\(Q^T Q = I\)), \(P = Q Q^T\).
  • Gram-Schmidt — bazı ortonormale çevir.
  • \(A = QR\) ayrışımı.
UyarıDers 17 öncesi
  • Egzersiz 5 (pozitif tanım).
  • np.linalg.qr ile regresyon dene.

17.15 Anahtar Kavramlar (Cheat Sheet)

Kavram Tanım Strang’da
Uç durumlar \(\mathbf{b} \in C \to P\mathbf{b} = \mathbf{b}\); dik → \(\mathbf{0}\) 1m01
\(\mathbf{b} = \mathbf{p} + \mathbf{e}\) Dik ayrışım 6m24
\(I - P\) Dik tümleyene projeksiyon 7m30
Doğru fitleme \(y = 2/3 + (1/2)t\) 8m46
Normal denklemler \(A^T A \hat{\mathbf{x}} = A^T \mathbf{b}\) 21m23
LS = kalkülüs \(\|\mathbf{e}\|^2\) türev = 0 24m16
Outlier Kareler abartır → robust loss 16m14
\(\mathbf{e} \perp C(A)\) Her kolona dik 33m22
\(A^T A\) tersinir ⟺ bağımsız (\(\|A\mathbf{x}\|^2 = 0\)) 37m07
Ortonormal \(A^T A = I\) 46m23

17.16 ML Bağlantıları Özeti

İpucu7 köprü
  1. Normal denklemler = lineer regresyon kapalı-form.
  2. fit + residual → Artık analizi model teşhisi.
  3. Outlier → robust loss → L1, Huber.
  4. \(A^T A\) tersinir = bağımsız özellik → Ridge multicollinearity.
  5. \(P\) = hat matrix → Leverage, serbestlik derecesi.
  6. Ortonormal → QR / kararlılık → Ortogonal başlatma.
  7. \(A^T A\) pozitif (yarı-)tanım → Cholesky, GP kovaryans.
ÖnemliTek bir şey alıp gideceksen

Least squares = dik projeksiyon (\(A^T A \hat{\mathbf{x}} = A^T \mathbf{b}\)) = lineer regresyon. \(\mathbf{b} = \mathbf{p} + \mathbf{e}\), \(\mathbf{e} \perp C(A)\). Yalnız bağımsız kolonlarda benzersiz; ortonormal en sade ve kararlı.