Umělá inteligence
Obsah Soubory
Rozpoznávání

Lineární regrese

Aktualizováno 4 min čtení 679 slov

Lineární regrese

Lineární regrese je jediná metoda v téhle wiki, která má řešení v uzavřeném tvaru. Nic se neiteruje, nic nekonverguje, nic nezávisí na náhodné inicializaci. Vyřešíš soustavu dvou rovnic a máš přesnou odpověď.

Proto se s ní začíná a proto stojí za to ji umět spočítat ručně - je to jediná příležitost vidět, jak vypadá optimalizace, u které si můžeš výsledek ověřit na papíře.

Tahle stránka ukazuje model, metodu nejmenších čtverců a spočítá jeden příklad úplně. Předpokládá to klasifikaci a rozpoznávání jen kvůli zařazení - regrese patří mezi metody učení s učitelem, ale nepředpovídá třídu, nýbrž spojitou hodnotu.

Model

Cílem je predikovat spojitou hodnotu y na základě vstupních hodnot x:

y = ax + b (+ ε)

To ε na konci je chyba měření a je to nejdůležitější symbol v celé rovnici. Říká, že body neleží na přímce a ani se to nečeká. Kdyby ležely, není co počítat.

Rozdíl proti klasifikaci je v tom, co je výstupem. Klasifikátor vrací třídu z konečné množiny. Regrese vrací číslo ze spojitého rozsahu. Tomu odpovídá i chybová funkce - u klasifikace počítáš, kolikrát ses trefil, u regrese o kolik jsi vedle.

Metoda nejmenších čtverců

Minimalizujeme součet čtverců reziduí, tedy svislých odchylek bodů od přímky:

S(a, b) = Σ (yi − ŷi)²  →  min

Proč zrovna čtverce, a ne absolutní hodnoty? Dva důvody, a oba stojí za to znát:

Zaprvé, čtverec je diferencovatelný všude, takže se dá minimum najít derivací a vyjde soustava lineárních rovnic. Absolutní hodnota má v nule zlom a řešení se musí hledat numericky.

Zadruhé, čtverec tvrdě trestá velké odchylky. Bod vzdálený o 10 přispěje stem, deset bodů vzdálených o 1 přispěje deseti. To je občas přesně to, co chceš, a občas to znamená, že jeden odlehlý bod ti přetáhne celou přímku k sobě. Nejmenší čtverce nejsou robustní vůči odlehlým hodnotám a je to jejich hlavní slabina.

Soustava normálních rovnic

Přímka y = ax + b proložená metodou nejmenších čtverců souborem bodů [x1, y1], ..., [xn, yn] má koeficienty splňující:

a · Σxi² + b · Σxi = Σ xi·yi        (1)
a · Σxi  + b · n   = Σ yi           (2)

Dvě rovnice, dvě neznámé. To je celé. Nic víc lineární regrese s jedním vstupem není.

Spočítej si to

Body: (0, 5), (1, 3), (3, 3), (5, 2), (6, 1), tedy n = 5.

Tabulka, kterou si nakreslíš vždycky:

i xi yi xi² xi·yi
1 0 5 0 0
2 1 3 1 3
3 3 3 9 9
4 5 2 25 10
5 6 1 36 6
Σ 15 14 71 28

Dosaď do soustavy:

71a + 15b = 28
15a +  5b = 14

Řešení:

a = −7/13  ≈ −0,538
b = 287/65 ≈  4,415

Výsledná přímka:

y = −0,538x + 4,415

Zkontroluj si to hrubým odhadem. Pro x = 0 vychází 4,4 a naměřeno bylo 5. Pro x = 6 vychází 1,2 a naměřeno bylo 1. Sedí to.

Sloupce xi² a xi·yi jsou jediné, co se počítá. Zbytek je dosazení a vyřešení dvou rovnic. Když si tuhle tabulku zapamatuješ, spočítáš regresi na papíře za tři minuty.

Kde lineární regrese přestává platit

Vztah není lineární. Vyjde ti přímka a bude nesmyslná. Poznáš to na grafu reziduí - když v nich vidíš systematický tvar (oblouk, vlnu), model má špatnou třídu funkcí. Řeší se to polynomiální regresí nebo transformací proměnných.

Jeden odlehlý bod přetáhne přímku. Čtverce trestají velké odchylky, takže se přímka nakloní k odlehlému bodu, aby jeho příspěvek zmenšila. Buď takové body odstraň, nebo použij robustnější metodu (nejmenší absolutní odchylky, Huberova ztráta).

Korelace není kauzalita. Regrese ti řekne, že y roste s x. Neřekne ti, že x způsobuje y. Klasický příklad: prodej zmrzliny koreluje s počtem utonutí. Obojí způsobuje léto.

Extrapolace mimo rozsah dat je hazard. Přímka spočítaná na x od 0 do 6 nemá důvod platit pro x = 100. Model neví nic o tom, co je za hranicí dat.

Souvislost se zbytkem wiki

Nejmenší čtverce jsou totéž, co ztrátová funkce v neuronové síti. Podívej se na Etotal = ½ Σ (tk − yk)² u backpropagation - je to úplně stejný výraz. Rozdíl je jen v tom, že u přímky se minimum najde vyřešením soustavy, zatímco u sítě se k němu musí sestupovat po gradientu, protože soustava je nelineární a nemá uzavřené řešení.

Neuron bez aktivační funkce je lineární regrese. Vážený součet vstupů plus práh je přesně ax + b, jen s víc vstupy. Celá myšlenka umělého neuronu je lineární model, kterému se přidala nelinearita.

Shrnutí v jedné větě

Sestav si tabulku se sloupci xi, yi, xi² a xi·yi, sečti je, dosaď do dvou normálních rovnic a máš přímku - a zároveň víš, jak vypadá optimalizace, kterou zbytek téhle wiki řeší iterativně, protože se u něj vyřešit nedá.