Wstęp do uczenia maszynowego

Pod całą warstwą żargonu uczenie maszynowe jest matematyką, którą student zna już z algebry liniowej i analizy: rzutem ortogonalnym, rozkładem spektralnym macierzy symetrycznej, minimalizacją funkcji wypukłej i kompromisem obciążenie-wariancja. Ten moduł pokazuje cztery takie miejsca — i przy każdym stawia obok siebie wzór z wykładu i wynik algorytmu, żeby było widać, że to ta sama liczba.

XTr = 0

MNK jako rzut ortogonalny

Równania normalne kontra spadek gradientowy — i dlaczego uwarunkowanie decyduje o tempie uczenia

β̂ = (XTX)−1XTy
σ(xTβ)

Regresja logistyczna

Funkcja straty wypukła, gradient sprawdzony różnicowo, Newton kontra spadek gradientowy

∇L = XT(σ(Xβ) − y)
λ₁ ≥ λ₂ ≥ …

Analiza głównych składowych

Rozkład spektralny kowariancji; błąd rekonstrukcji równy dokładnie sumie odrzuconych λ

C = VΛVT
obciążenie ↔ wariancja

Przeuczenie i regularyzacja

Błąd na zbiorze uczącym maleje monotonicznie, testowy nie — grzbietowa kara to naprawia

β̂ = (XTX + λI)−1XTy
ZADANIA

Przykłady krok po kroku

Równania normalne z ręki, gradient entropii krzyżowej, PCA na macierzy 2×2

3 rozwiązane zadania

Metoda najmniejszych kwadratów jako rzut ortogonalny

Szukamy β minimalizującego ‖y − Xβ‖². Geometrycznie: Xβ przebiega przestrzeń kolumn macierzy X, a najbliższym jej punktem do y jest rzut ortogonalny y na tę przestrzeń. Warunek prostopadłości reszty do każdej kolumny daje równania normalne:
XT(y − Xβ̂) = 0  ⇔  (XTX)β̂ = XTy
To nie jest heurystyka „dopasowania” — to twierdzenie o rzucie. Wiersz „max |XTr|” sprawdza je na każdej kolumnie z osobna.
max |XT(y − Xβ̂)| — kontrola prostopadłości–
‖β̂równania − β̂gradient‖–
‖y‖² kontra ‖Xβ̂‖² + ‖r‖² (Pitagoras)–
R² = 1 − SSE/SST–
wskaźnik uwarunkowania κ(XTX)–
dane, funkcja prawdziwa i dopasowanie MNK
zbieżność spadku gradientowego do rozwiązania równań normalnych

Regresja logistyczna

Model zwraca prawdopodobieństwo: P(y=1 | x) = σ(xTβ), gdzie σ(z) = 1/(1+e−z). Minimalizujemy entropię krzyżową (ujemną logarytmiczną wiarogodność):
L(β) = −Σ [ yᵢ log pᵢ + (1−yᵢ) log(1−pᵢ) ],  ∇L = XT(p − y),  H = XTDX
gdzie D = diag(pᵢ(1−pᵢ)) ⪰ 0, więc L jest wypukła — każde minimum lokalne jest globalne. Poniżej gradient policzony ze wzoru jest porównany z gradientem różnicowym, a metoda Newtona (IRLS) z prostym spadkiem gradientowym.
max |∇L wzór − ∇L różnicowy|–
‖∇L‖ po zbieżności (Newton)–
L(β) Newton / spadek gradientowy–
trafność klasyfikacji–
najmniejsza wartość własna hesjanu–
dane, granica decyzyjna i cieniowanie prawdopodobieństwem
spadek funkcji straty: Newton kontra gradient

Analiza głównych składowych

PCA to rozkład spektralny macierzy kowariancji C = XcTXc/(n−1). Ponieważ C jest symetryczna i nieujemnie określona, ma ortonormalną bazę wektorów własnych:
C = VΛVT,  λ₁ ≥ λ₂ ≥ … ≥ λd ≥ 0,  Σλᵢ = tr C = wariancja całkowita
Rzut na k pierwszych wektorów własnych daje najlepsze przybliżenie rzędu k (twierdzenie Eckarta-Younga), a popełniony przy tym błąd to dokładnie suma odrzuconych wartości własnych. Poniżej ta suma jest zestawiona z błędem zmierzonym na danych.
błąd rekonstrukcji: zmierzony / Σi>kλᵢ–
Σλᵢ kontra ślad C–
max |VTV − I| — ortonormalność–
max |CV − VΛ| — kontrola rozkładu–
wariancja wyjaśniona przez k składowych–
rzut danych na dwie pierwsze główne składowe
widmo wartości własnych i wariancja skumulowana

Przeuczenie i regularyzacja grzbietowa

Błąd na zbiorze uczącym maleje monotonicznie wraz ze stopniem wielomianu — model coraz lepiej odtwarza szum, którego nie ma w nowych danych. Błąd testowy najpierw maleje (spada obciążenie), potem rośnie (rośnie wariancja). Regresja grzbietowa dokłada karę:
β̂ = argmin ‖y − Xβ‖² + λ‖β‖²  ⇒  β̂ = (XTX + λI)−1XTy
Dodanie λI przesuwa wszystkie wartości własne XTX o λ, więc macierz staje się odwracalna nawet przy d ≥ n — i to jest cała tajemnica: kara na normę to jednocześnie lekarstwo na złe uwarunkowanie.
RMSE uczące–
RMSE testowe (400 nowych punktów)–
‖β̂₁…β̂_d‖ — część objęta karą–
stopień o najmniejszym błędzie testowym–
λ o najmniejszym błędzie testowym (przy tym d)–
dopasowanie: punkty uczące, funkcja prawdziwa, wielomian
RMSE uczące i testowe w funkcji stopnia

Przykłady krok po kroku

Przykład 1 Równania normalne policzone ręcznie

Zadanie. Dopasować prostą y = β₀ + β₁x do czterech punktów: (1; 2), (2; 3), (3; 5), (4; 6).

Krok 1 — macierz planu.

X = ⎡1  1⎤    y = ⎡2⎤
    ⎢1  2⎥        ⎢3⎥
    ⎢1  3⎥        ⎢5⎥
    ⎣1  4⎦        ⎣6⎦

Krok 2 — XTX i XTy. Σx = 10, Σx² = 30, Σy = 16, Σxy = 2+6+15+24 = 47:

XTX = ⎡ 4  10⎤    XTy = ⎡16⎤
         ⎣10  30⎦          ⎣47⎦

Krok 3 — rozwiązanie układu 2×2. Wyznacznik: 4·30 − 10² = 20.

β₁ = (4·47 − 10·16)/20 = (188 − 160)/20 = 1,4
β₀ = (30·16 − 10·47)/20 = (480 − 470)/20 = 0,5

Krok 4 — kontrola prostopadłości. Reszty: r = y − ŷ, gdzie ŷ = (1,9; 3,3; 4,7; 6,1), więc r = (0,1; −0,3; 0,3; −0,1).

Σrᵢ = 0,1 − 0,3 + 0,3 − 0,1 = 0  (prostopadłe do kolumny jedynek)
Σxᵢrᵢ = 0,1 − 0,6 + 0,9 − 0,4 = 0  (prostopadłe do kolumny x)

Oba iloczyny skalarne znikają — reszta jest prostopadła do przestrzeni kolumn, dokładnie jak twierdzi twierdzenie o rzucie. To nie zbieg okoliczności, tylko definicja rozwiązania.

W aplikacji: zakładka MNK jako rzut, wiersz „max |XT(y − Xβ̂)|” liczy to samo dla d+1 kolumn i n obserwacji; wynik rzędu 10⁻¹² to sam błąd zaokrągleń.

Przykład 2 Gradient entropii krzyżowej

Zadanie. Wyprowadzić ∇L dla regresji logistycznej i pokazać, że L jest wypukła.

Krok 1 — pochodna sigmoidy. Dla σ(z) = 1/(1+e−z):

σ′(z) = e−z/(1+e−z)² = σ(z)(1 − σ(z))

Krok 2 — jeden składnik straty. Dla pojedynczej obserwacji ℓ = −[y log p + (1−y) log(1−p)], p = σ(z), z = xTβ:

∂ℓ/∂p = −y/p + (1−y)/(1−p) = (p − y)/(p(1−p))

Krok 3 — reguła łańcuchowa. Mnożymy przez ∂p/∂z = p(1−p) — i mianownik znika:

∂ℓ/∂z = (p − y),   ∇βℓ = (p − y)·x

To zaskakująco czysty wynik: gradient to błąd predykcji razy cecha — dokładnie ta sama postać, co w regresji liniowej. Sumując po obserwacjach: ∇L = XT(p − y).

Krok 4 — hesjan i wypukłość. Różniczkując raz jeszcze, ∂p/∂β = p(1−p)x, więc

H = Σ pᵢ(1−pᵢ) xᵢxᵢT = XTDX,  D = diag(pᵢ(1−pᵢ))

Dla dowolnego v: vTHv = Σ pᵢ(1−pᵢ)(xᵢTv)² ≥ 0, bo p ∈ (0,1). Zatem H ⪰ 0 i L jest wypukła — spadek gradientowy nie może utknąć w minimum lokalnym, bo takowych nie ma.

Uwaga o separowalności. Jeśli klasy dają się rozdzielić prostą idealnie, to skalowanie β → cβ przy c → ∞ obniża L do zera bez osiągania jej: minimum nie istnieje, a ‖β‖ ucieka do nieskończoności. Widać to, ustawiając w aplikacji duże rozdzielenie klas — wiersz „najmniejsza wartość własna hesjanu” spada wtedy do zera.

W aplikacji: zakładka Regresja logistyczna porównuje ∇L z kroku 3 z gradientem policzonym różnicowo; zgodność rzędu 10⁻⁷ to potwierdzenie wyprowadzenia, a nie jego powtórzenie.

Przykład 3 PCA na macierzy 2×2

Zadanie. Dane mają macierz kowariancji

C = ⎡5  2⎤
    ⎣2  2⎦

Znaleźć główne składowe i błąd rekonstrukcji przy zachowaniu jednej.

Krok 1 — wielomian charakterystyczny.

det(C − λI) = (5−λ)(2−λ) − 4 = λ² − 7λ + 6 = (λ−6)(λ−1)

Stąd λ₁ = 6, λ₂ = 1. Kontrola: λ₁ + λ₂ = 7 = tr C = 5 + 2 ✓, λ₁λ₂ = 6 = det C ✓.

Krok 2 — wektory własne. Dla λ₁ = 6: (5−6)v₁ + 2v₂ = 0, czyli v₁ = 2v₂:

v(1) = (2, 1)/√5 ≈ (0,8944; 0,4472)
v(2) = (−1, 2)/√5 ≈ (−0,4472; 0,8944)

Iloczyn skalarny: 2·(−1) + 1·2 = 0 — prostopadłe, jak dla każdej macierzy symetrycznej.

Krok 3 — wariancja wyjaśniona. Pierwsza składowa niesie λ₁/(λ₁+λ₂) = 6/7 ≈ 85,7% wariancji.

Krok 4 — błąd rekonstrukcji. Rzutując dane na v(1) i odtwarzając, traci się dokładnie składową wzdłuż v(2), której wariancja wynosi λ₂:

E‖x − x̂‖² = λ₂ = 1  (a nie „jakaś mała liczba”)

Dlaczego akurat tak. Dla dowolnego innego kierunku u (‖u‖=1) wariancja rzutu wynosi uTCu, a maksimum tej formy kwadratowej na sferze to λ₁, osiągane w v(1) — to iloraz Rayleigha. Zachowanie k składowych o największych λ jest więc optymalne, a nie tylko rozsądne (twierdzenie Eckarta-Younga).

W aplikacji: zakładka PCA robi to samo w wymiarze do 8 metodą Jacobiego; wiersz „błąd rekonstrukcji: zmierzony / Σi>kλᵢ” zestawia liczbę policzoną na danych z sumą odrzuconych wartości własnych.