ML Atlas

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_init w KMeans, random_state w MLPClassifier).
  • 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".

Zobacz też