01 · Podstawy · 4 min czytania · aktualizacja
Czy sieć neuronowa utknie w minimum lokalnym i dlaczego duże sieci nie?
W skrócie
Minimum lokalne to dolina krajobrazu straty, z której gradient nie wyprowadzi; globalne to najgłębsza. W dużych sieciach problemem są raczej siodła niż pułapki.
Co to jest
Krajobraz straty to wartość funkcji straty jako funkcja wszystkich wag modelu. Minimum lokalne to punkt, w którym strata jest mniejsza niż w całym jego otoczeniu, ale nie najmniejsza w ogóle; minimum globalne to punkt o najmniejszej stracie w ogóle. Spadek gradientu widzi tylko lokalne nachylenie, więc zatrzymuje się w pierwszej napotkanej dolinie.
Pojęcie dotyczy każdej optymalizacji niewypukłej: sieci neuronowych, k-means, mieszanin gaussowskich. Regresja liniowa i logistyczna mają stratę wypukłą z jednym minimum, więc tam problem nie istnieje.
Intuicja: w górach we mgle zawsze schodzisz w dół i w końcu stajesz w kotlince. Czy to najniższe miejsce w okolicy? Nie wiesz — wiesz tylko, że stąd każdy krok prowadzi w górę.
Mechanizm — dlaczego tak działa
Punkt krytyczny (gradient równy zeru) w n wymiarach jest minimum tylko wtedy, gdy krzywizna jest dodatnia we wszystkich n kierunkach. Gdy n to miliony wag, taka zgodność jest rzadka: większość punktów krytycznych to siodła — w dół w części kierunków, w górę w pozostałych. Dauphin i in. (2014) pokazali, że stosunek liczby siodeł do minimów rośnie wykładniczo z wymiarem, a minima o wysokiej stracie są wykładniczo rzadkie. Praktyczny wniosek: w dużej sieci „utknięcie” to zwykle spowolnienie na płaskim siodle, a nie zamknięcie w złej dolinie, a szum SGD sam wypycha z siodła.
Mała sieć to inna historia. Przy 2–3 neuronach ukrytych krajobraz ma mało wymiarów i doliny o naprawdę różnej głębokości; Safran i Shamir (2018) udowodnili, że złe minima lokalne są w dwuwarstwowych sieciach ReLU częste. Dlatego przy małej sieci wynik silnie zależy od seeda, a przy większej — prawie nie.
Nie każda mnogość minimów to problem. Zamiana dwóch neuronów ukrytych (wraz z wagami) nie zmienia funkcji sieci, więc warstwa z M neuronami ma co najmniej M!·2^M równoważnych minimów (Bishop, rozdz. 5.1.1) — to kopie tego samego rozwiązania, nie pułapki.
Zastrzeżenie: globalne minimum straty treningowej nie jest celem. Płaskie minima (szeroka dolina) generalizują lepiej niż ostre (Hochreiter i Schmidhuber 1997, Keskar i in. 2017), bo niewielka zmiana wag — a więc i danych — nie zmienia tam straty; szum SGD i mniejszy batch sprzyjają płaskim dolinom. Narzędzia: restart z innym seedem, momentum (przelatuje przez płytkie dołki), cykliczny learning rate z ponownym podgrzaniem (warm restarts).
Na przykładzie
Najprostszy przypadek to XOR: cztery punkty, z których (0,1) i (1,0) mają etykietę 1, a (0,0) i (1,1) — 0. Sieć z dwoma neuronami ukrytymi tanh może go rozwiązać idealnie. Trenowałem ją (MLPClassifier, solver lbfgs) z pięciu seedów: dwa razy osiągnęła 100%, dwa razy 75% i raz 50%. Ta sama architektura, te same dane — różne doliny. Przy czterech neuronach ukrytych seed 0 od razu dał 100%.
Na Digits 8×8 (1347 obrazów treningowych, 450 testowych, random_state=0) uruchomiłem MLPClassifier z 10 seedów dla różnych szerokości warstwy ukrytej. Przy 2 neuronach trafność testowa wahała się od 33,1% do 74,9% (odchylenie 15 punktów procentowych), przy 5 — od 85,3% do 94,7%, przy 20 — od 96,9% do 98,0%, przy 100 — od 96,9% do 98,2% (odchylenie 0,4 p.p.). Im więcej wymiarów, tym mniej znaczą złe doliny. Podobnie k-means na Digits z jednym startem (n_init=1) dał przez 20 seedów 20 różnych wartości inercji, od 4552 do 4760.
Dane: Digits (ręcznie pisane cyfry 8×8)
W praktyce
- Przy małej sieci lub k-means uruchom trening z kilku seedów i porównaj wyniki; duży rozrzut oznacza krajobraz z pułapkami (
n_initwKMeans,random_statewMLPClassifier). - Strata „stoi” przez wiele epok, a potem nagle spada — to typowe siodło lub plateau; pomagają momentum, Adam i większy learning rate, nie restart.
- Krzywą straty warto oglądać w skali logarytmicznej — płaskie odcinki widać wyraźniej.
- W treningu dużych modeli językowych problemem nie są minima lokalne, tylko niestabilności (skoki straty) i wybór learning rate.
- Typowy błąd: tłumaczenie każdego słabego wyniku „minimum lokalnym”, gdy przyczyną jest za mały learning rate, zła skala cech lub niedobór danych.
Najczęstsze pytania
- Czy sieć neuronowa może utknąć w minimum lokalnym?
- Mała sieć — tak, i wynik zależy wtedy od seeda. Duża sieć — rzadko: punkty krytyczne są prawie zawsze siodłami, a minima o wysokiej stracie wykładniczo rzadkie. W praktyce „utknięcie” dużej sieci to plateau, z którego wyprowadza szum SGD i momentum.
- Czym różni się punkt siodłowy od minimum lokalnego?
- W obu gradient wynosi zero. W minimum krzywizna jest dodatnia we wszystkich kierunkach — każdy ruch podnosi stratę. W siodle w części kierunków strata rośnie, w innych maleje: wystarczy mały szum, by zjechać dalej. W wysokich wymiarach siodła dominują liczebnie.
- Dlaczego większe sieci łatwiej trenować?
- Więcej wymiarów to więcej kierunków ucieczki z każdego punktu krytycznego, więc złe minima stają się wykładniczo rzadkie, a doliny — podobnie głębokie. Dodatkowo symetrie permutacyjne dają wiele równoważnych rozwiązań, do których prowadzi wiele dróg.
Źródła
- Dauphin i in. (2014). "Identifying and attacking the saddle point problem in high-dimensional non-convex optimization". NeurIPS. arXiv:1406.2572
- Choromanska, Henaff, Mathieu, Arous, LeCun (2015). "The loss surfaces of multilayer networks". AISTATS. arXiv:1412.0233
- Safran, I., Shamir, O. (2018). "Spurious local minima are common in two-layer ReLU neural networks". ICML. arXiv:1712.08968
- Goodfellow, Bengio, Courville (2016). Deep Learning, rozdz. 8.2.2 "Local minima", 8.2.3 "Plateaus, saddle points and other flat regions". https://www.deeplearningbook.org/contents/optimization.html
- Bishop (2006). Pattern Recognition and Machine Learning, rozdz. 5.1.1 "Weight-space symmetries".