Spadek gradientu: jak uczy się model
Współczynnik uczenia, zygzak w wąskich dolinach, momentum, Adam, stochastyczny spadek w minipartiach i minima lokalne — z animacjami prawdziwych trajektorii.
Seria Podstawy AI Część 11 z 52
- Mapa sztucznej inteligencji: co jest czym i jak to do siebie pasuje
- Krótka historia sztucznej inteligencji: od Turinga do modeli językowych
- Dane, model, trening, inferencja: podstawowe pojęcia na jednym przykładzie
- Jak czytać zapis matematyczny: symbole, indeksy, sumy i kwantyfikatory
- Zbiory i relacje: klocki, z których składają się definicje w AI
- Funkcje i odwzorowania: dlaczego każdy model AI jest funkcją
- Logika i dowody: reguły, według których rozumuje AI
- Grafy i drzewa: struktura, na której opierają się przeszukiwanie i sieci neuronowe
- Algebra liniowa dla uczenia maszynowego: wektory, macierze i dlaczego AI głównie mnoży
- Pochodne, gradient i reguła łańcuchowa: jak model ustala, w którą stronę się uczyć
- Spadek gradientu: jak uczy się model
- Czym jest prawdopodobieństwo: od rzutu kostką do aksjomatów Kołmogorowa
- Prawdopodobieństwo warunkowe i twierdzenie Bayesa: jak zmienić ocenę, gdy dowiesz się czegoś nowego
- Zmienna losowa i dystrybuanta: jedna funkcja, która mówi o rozkładzie wszystko
- Funkcja gęstości i funkcja prawdopodobieństwa: dlaczego zmienna ciągła ma w punkcie prawdopodobieństwo zero
- Wartość oczekiwana, wariancja i kowariancja: gdzie leży rozkład, jak jest szeroki i co z czym się wiąże
- Przegląd rozkładów prawdopodobieństwa: Bernoulliego, dwumianowy, Poissona, jednostajny, normalny i wykładniczy
- Prawo wielkich liczb i centralne twierdzenie graniczne: dlaczego średnie zachowują się tak przewidywalnie
- Statystyka i estymacja parametrów: największa wiarygodność, MAP i przedziały ufności
- Teoria informacji: entropia, entropia krzyżowa i dywergencja KL — skąd się biorą funkcje straty
- Przeszukiwanie przestrzeni stanów: BFS, DFS, UCS i A* z animacjami
- Gry i przeciwnik: minimax, przycinanie alfa-beta i Monte Carlo tree search
- Spełnianie ograniczeń: backtracking, propagacja ograniczeń i AC-3 na sudoku i mapie czeskich krajów
- Logika i systemy z bazą wiedzy: wnioskowanie w przód i wstecz, rezolucja i systemy ekspertowe
- Planowanie: STRIPS, świat klocków, heurystyki z relaksacji i planowanie w agentach AI
- Przeszukiwanie lokalne i symulowane wyżarzanie: komiwojażer przez czeskie miasta wojewódzkie
- Algorytmy genetyczne: populacja, krzyżowanie, mutacja i selekcja na plecaku na wycieczkę
- Strategie ewolucyjne i programowanie genetyczne: od reguły jednej piątej do prawa Keplera
- Optymalizacja kolonią mrówek: jak ślad feromonowy znajduje krótką drogę
- Optymalizacja rojem cząstek: bezwładność, własne doświadczenie i doświadczenie roju
- Neuroewolucja: ewolucja wag i kształtu sieci neuronowych oraz algorytm NEAT
- Zbiory rozmyte i funkcje przynależności: jak zapisać „trochę ciepło”
- Logika rozmyta a prawdopodobieństwo: dlaczego „trochę ciepło” nie znaczy „prawdopodobnie ciepło”
- Logika rozmyta: t-normy, implikacje i reguły JEŻELI–TO
- Sterowanie rozmyte: Mamdani i Sugeno od wentylatora po wahadło na wózku
- Klasteryzacja rozmyta: algorytm fuzzy c-means i punkty między skupieniami
- Systemy neuro-rozmyte (ANFIS): reguły rozmyte, które uczą się z danych
- Łańcuchy Markowa: macierz przejścia, rozkład stacjonarny i PageRank
- Ukryte modele Markowa: algorytm Viterbiego i nieuczciwe kasyno
- Sieci bayesowskie: dlaczego trawa jest mokra i co z tego wynika dla zraszacza
- Filtr Kalmana: jak z niedokładnych pomiarów oszacować, gdzie jest samochód i jak szybko jedzie
- Rodzaje uczenia maszynowego: nadzorowane, nienadzorowane, półnadzorowane i inne
- Prompty, kontekst i RAG: jak dać modelowi właściwe informacje
- Wariacyjne autoenkodery (VAE): nowe obrazki z ciągłej przestrzeni latentnej
- Generatywne sieci przeciwstawne (GAN): fałszerz kontra detektyw
- Modele dyfuzyjne: jak z czystego szumu powstaje obraz
- Procesy decyzyjne Markowa: stany, akcje, nagrody i równania Bellmana
- Q-learning i DQN: uczenie się wartości akcji od tabeli po sieć neuronową
- Policy gradient i PPO: uczenie się bezpośrednio polityki
- Jak działa agent AI: model językowy w pętli z narzędziami
- Programowanie z agentami AI: zadanie, testy i kontrola
- Ocena i bezpieczeństwo systemów AI: jak mierzyć i jak pilnować
Pełny program serii Gotowe: 52 z 83 tematów
- Jak działa spadek gradientu i dlaczego współczynnik uczenia ma największe znaczenie.
- Dlaczego zwykły spadek w wąskiej dolinie idzie zygzakiem i jak rozwiązują to momentum i Adam.
- Dlaczego sieci uczą się na małych losowych partiach i co oznaczają minima lokalne i punkty siodłowe.
Warto wiedzieć wcześniej: Pochodne, gradient i reguła łańcuchowa: jak model ustala, w którą stronę się uczyć
W poprzednich częściach przygotowaliśmy wszystko, co potrzebne: model to funkcja z parametrami, funkcja straty to krajobraz nad przestrzenią parametrów, a gradient wskazuje najbardziej stromy kierunek pod górę. Teraz połączymy to w algorytm, którym uczy się niemal każda sieć neuronowa na świecie — spadek gradientu. Jego idea mieści się w jednym zdaniu, a jego szczegóły decydują o tym, czy model nauczy się w godzinę, w tydzień, czy wcale.
1. Idea: z góry we mgle
Definicja — spadek gradientu
Dla funkcji straty J(θ) wybieramy początkowe parametry θ0 i współczynnik uczenia η > 0 i powtarzamy
θt+1 = θt − η ∇J(θt),
dopóki strata wyraźnie się poprawia.
Stoisz w gęstej mgle na wzgórzu i chcesz zejść do doliny. Nic nie widzisz, tylko stopami czujesz nachylenie. Robisz krok tam, gdzie teren opada najbardziej, i znów się rozglądasz. Gradient to właśnie to nachylenie, współczynnik uczenia to długość kroku. Nic więcej w tym nie ma.
2. Współczynnik uczenia: jak długi krok
Długość kroku to najważniejszy wybór w całym algorytmie. Pokażemy to na najprostszym krajobrazie, paraboli J(x) = x2, ze startem w x = 4. Pochodna to 2x, więc każdy krok wykonuje x ← x − η · 2x = (1 − 2η)x. Dwanaście kroków dla czterech różnych współczynników uczenia:
- η = 0,1 — każdy krok skraca odległość od minimum tylko o jedną piątą. Po dwunastu krokach kulka jest dopiero w x ≈ 0,27.
- η = 0,4 — każdy krok skraca ją pięciokrotnie; po kilku krokach kulka jest praktycznie na dnie.
- η = 0,9 — krok jest tak długi, że kulka przeskakuje na drugą stronę. Mimo to się zbliża, bo skacze po coraz krótszych łukach.
- η = 1,05 — za każdym razem przeskakuje dalej, niż była: zamiast w dół leci na zewnątrz i po dwunastu krokach jest w x ≈ 12,55. Uczenie rozbiega się.
Twierdzenie — kiedy spadek na paraboli jest zbieżny
Dla J(x) = x2 jest xt = (1 − 2η)t x0, więc spadek jest zbieżny wtedy i tylko wtedy, gdy |1 − 2η| < 1, czyli 0 < η < 1. Najszybciej dla η = 0,5 — wtedy trafia do minimum jednym krokiem.
Mały krok jest bezpieczny, ale powolny. Duży krok jest szybki, dopóki nie przestrzeli. Zbyt duży krok psuje uczenie: błąd zamiast maleć rośnie, aż staje się nieskończony.
3. Wąskie doliny i zygzak
Prawdziwe krajobrazy to nie okrągłe misy. Zwykle są to długie, wąskie doliny — w jednym kierunku strome, w drugim prawie płaskie. Weźmy J(x, y) = x2/2 + 10y2, w kierunku y dwudziestokrotnie bardziej stromą. Zwykły spadek ma tu problem: współczynnik uczenia musi być mały ze względu na stromy kierunek (inaczej w y by się rozbiegał), a przy tak małym kroku w płaskim kierunku x ledwo się porusza. Do tego w kierunku y ciągle przeskakuje z jednej strony na drugą:
Każda metoda ma swój najlepszy współczynnik uczenia, znaleziony metodą prób. Mimo to zwykły spadek potrzebuje 36 kroków i idzie zygzakiem, podczas gdy momentum i Adam są na dole po 9. Dlaczego, pokażą następne dwa rozdziały.
4. Momentum: kula z bezwładnością
Definicja — spadek z momentum
vt+1 = β vt − η ∇J(θt), θt+1 = θt + vt+1,
gdzie v to „prędkość”, a β ∈ [0, 1) mówi, ile z niej zostaje na następny krok (typowo 0,9; w naszej dolinie najlepiej 0,6).
Zamiast ostrożnego piechura — ciężka kula. Tam, gdzie gradient wskazuje ciągle w tę samą stronę (wzdłuż doliny), kula nabiera prędkości. Tam, gdzie kierunek się zmienia (w poprzek doliny), ruchy tam i z powrotem wzajemnie się znoszą. Zygzak wygasa, a kula rozpędza się w dół.
5. Adam: własny krok dla każdego parametru
Definicja — Adam (Kingma i Ba, 2014)
m ← β1m + (1 − β1)g, s ← β2s + (1 − β2)g2, θ ← θ − η m̂ / (√ŝ + ε),
gdzie g = ∇J(θ), wszystkie operacje są wykonywane po składowych, a m̂, ŝ to m, s z korektą początkowego obciążenia (podzielone przez 1 − βt). Zwykłe wartości: β1 = 0,9, β2 = 0,999.
Adam to momentum, które dodatkowo dla każdego parametru pamięta, jak duże gradienty w nim zwykle występują, i dzieli przez nie krok. W stromym kierunku robi więc krótsze kroki, w płaskim dłuższe — jakby dolina rozciągnęła się w okrągłą misę. Dlatego idzie do celu niemal prosto (na rysunku tylko na końcu trochę go mija, bo wciąż niesie bezwładność) i dlatego jest dziś domyślnym wyborem do trenowania sieci neuronowych.
6. Stochastyczny spadek: uczenie partiami
Definicja — stochastyczny spadek gradientu (SGD)
Jeśli strata jest średnią po danych, J(θ) = (1/n) ∑i Li(θ), SGD zastępuje pełny gradient średnią po losowej minipartii B ⊂ {1, …, n}: g = (1/|B|) ∑i ∈ B ∇Li(θ). Przejście przez wszystkie dane nazywa się epoką.
Obliczenie gradientu po miliardzie przykładów jest kosztowne. Wystarczy spojrzeć na kilka losowych i wziąć ich średnią: oszacowanie nachylenia jest trochę zaszumione, ale kosztuje ułamek pracy. Za cenę jednego dokładnego kroku robisz setki przybliżonych.
Na regresji liniowej z 40 punktami porównamy pełny spadek (gradient po wszystkich 40 punktach) z SGD w partiach po 4 punkty:
Po 60 krokach pełny spadek ma stratę 0,0017, a SGD 0,0027 — krzywa SGD jest wyboista, ale niemal równie nisko. Tyle że każdy krok SGD przeszedł tylko przez 4 punkty zamiast 40, czyli dziesięć razy mniej pracy. Przy prawdziwych danych z milionami przykładów ta różnica jest decydująca. A szum ma też zaletę: pomaga wyskoczyć z płytkich dołków.
7. Minima lokalne i punkty siodłowe
Spadek gradientu znajduje dno tej doliny, w której zaczął. Funkcja wypukła ma tylko jedno dno, przy niewypukłej zależy to od startu. Funkcja x4 − 3x2 + x z części o funkcjach ma dwa minima:
Kulka, która startuje w x = 2, kończy w minimum lokalnym przy x ≈ 1,13 z wartością ≈ −1,07. Kulka z x = −2 znajduje minimum globalne przy x ≈ −1,30 z wartością ≈ −3,51. W wysokich wymiarach sieci neuronowych okazuje się, że złe minima lokalne są rzadsze, niż można by się spodziewać — większym kłopotem bywają punkty siodłowe, miejsca, gdzie gradient jest zerowy, ale w jednym kierunku krajobraz idzie w górę, a w innym w dół. Szum SGD i momentum pomagają się z nich zsunąć.
8. Jak to się robi w praktyce
- Adam albo SGD z momentum — dwa najczęstsze wybory. Adam działa dobrze od razu, SGD z momentum bywa po starannym dostrojeniu odrobinę lepszy.
- Harmonogram współczynnika uczenia — na początku powolny rozbieg (warmup), potem stopniowe zmniejszanie. Duże kroki przydają się daleko od celu, małe blisko niego.
- Rozmiar partii — typowo od 32 do tysięcy przykładów; ogranicza go pamięć karty graficznej.
- Epoki i wczesne zatrzymanie — dane przechodzi się wielokrotnie, a trening zatrzymuje się, gdy przestaje się poprawiać błąd na danych, których model nie widział.
- Normalizacja danych — gdy wejścia mają podobny zakres, krajobraz jest bardziej okrągły, a spadek łatwiejszy.
9. Podsumowanie
- Spadek gradientu powtarza θ ← θ − η∇J(θ): krok przeciw gradientowi.
- Współczynnik uczenia decyduje: mały jest powolny, duży oscyluje, zbyt duży się rozbiega.
- W wąskich dolinach zwykły spadek idzie zygzakiem; momentum dodaje bezwładność, Adam własny krok dla każdego parametru.
- SGD liczy gradient z małych partii — szumi, ale każdy krok jest wielokrotnie tańszy.
- Spadek znajduje dno doliny, w której zaczął; w niewypukłych krajobrazach liczy się start.
Tą częścią kończy się matematyka, której potrzebujesz, by zrozumieć uczenie. Kolejne moduły serii — prawdopodobieństwo, uczenie maszynowe i sieci neuronowe — na niej się opierają.
Masz inne zdanie? Napisz na support@coden-app.com.