Po co optymalizacja w ML?

Jak modele naprawdę się uczą — od zwykłego spadku gradientu po Adama

Uczenie maszynowe wygląda jak przewidywanie, klasyfikacja, generowanie, rekomendowanie. Pod maską kryje się jednak wciąż ten sam matematyczny gest: wybierz liczby, zmierz, jak bardzo są złe, a potem zmieniaj te liczby, aż ta „złość” zmaleje. To właśnie jest optymalizacja.

Te liczby to parametry modelu, zwykle zebrane w jeden ogromny wektor θ. Wynik pomiaru „złości” to strata, zapisywana jako L(θ). Trenowanie oznacza przeszukiwanie przestrzeni parametrów w poszukiwaniu ustawienia, które czyni tę stratę małą. Poniższy zapis mówi dokładnie to samo: argmin zwraca zwycięskie wejście (czyli θ, dla którego strata jest najmniejsza), a nie samą zwycięską wartość, a gwiazdka przy θ⋆ oznacza właśnie to najlepsze ustawienie.

Panel sterowania nawadnianiem w szklarni może mieć tysiące maleńkich stref zraszaczy. Każde ustawienie zmienia to, jak zdrowe będą rośliny, ale ocenę plonu widzisz dopiero po tym, jak woda już popłynęła. Sieć neuronowa działa podobnie: parametry to ustawienia zraszaczy, strata to ocena plonu, którą chcesz poprawić, a optymalizacja to reguła zmieniania wielu ustawień naraz.

Gdzie to występuje w MLDlatego właśnie optymalizacja leży w samym centrum ML. Propagacja wsteczna oblicza ∇L. SGD, pęd (momentum), RMSProp i Adam decydują, jak go wykorzystać. Harmonogramy kontrolują rozmiar kroku, a regularyzacja przekształca sam cel. Gdy trenowanie sprowadza się do minimalizowania L(θ), główne pytanie staje się proste: w którą stronę powinny poruszać się parametry?
▶ Po co optymalizacja w ML?
← Nierówności koncentracji (w pigułce)Współczynnik uczenia →