06 · Sieci · 5 min czytania · aktualizacja
Czym jest krajobraz funkcji straty (loss landscape) w sieciach neuronowych?
W skrócie
Krajobraz straty to wartość błędu jako funkcja wszystkich wag sieci. Jego kształt wyjaśnia, dlaczego trening działa mimo niewypukłości i od czego zależy wynik.
Co to jest
Krajobraz funkcji straty (ang. loss landscape, loss surface) to funkcja przypisująca każdemu możliwemu zestawowi wag sieci wartość błędu na danych treningowych. Trening sieci to wędrówka po tym krajobrazie w poszukiwaniu nisko położonych miejsc, przy czym optymalizator widzi tylko lokalne nachylenie, czyli gradient. Kształt krajobrazu decyduje o tym, jak szybko i dokąd trafi trening.
Najprostsza metafora to turysta we mgle, który chce zejść do doliny, widząc tylko teren pod stopami. Dla modelu z dwiema wagami krajobraz da się narysować jak mapę poziomic. Dla sieci z milionem wag żyje on w przestrzeni o milionie wymiarów, więc oglądamy go wyłącznie przez przekroje: wartości straty wzdłuż jednej lub dwóch wybranych prostych w przestrzeni wag.
Dla regresji liniowej z błędem kwadratowym krajobraz jest wypukłą misą z jednym dnem. Dla sieci neuronowej nie jest wypukły, a mimo to spadek gradientu w praktyce zwykle znajduje rozwiązania o bardzo niskiej stracie. Zrozumienie, dlaczego tak jest, to jedno z ważniejszych pytań teorii uczenia głębokiego.
Mechanizm — dlaczego tak działa
Pierwszym źródłem niewypukłości jest symetria. Neurony w warstwie ukrytej można dowolnie przenumerować, przestawiając razem ich wagi wejściowe i wyjściowe, a sieć liczy wtedy dokładnie tę samą funkcję. Warstwa z 64 neuronami ma więc 64! równoważnych zestawów wag dla każdego rozwiązania. Średnia dwóch takich równoważnych punktów zwykle nie jest rozwiązaniem, a funkcja, która ma wiele oddzielnych minimów i wyższy teren pomiędzy, nie może być wypukła.
Drugie zjawisko dotyczy wymiaru. W punkcie krytycznym (gradient równy zeru) każdy z milionów kierunków może zakrzywiać się w górę albo w dół. Żeby punkt był minimum lokalnym, wszystkie kierunki muszą iść w górę, co w wysokim wymiarze jest mało prawdopodobne, jeśli strata jest wysoka. Typowe punkty krytyczne o wysokiej stracie to więc punkty siodłowe, z których istnieje droga w dół. Badania empiryczne i teoretyczne sugerują, że w dużych sieciach złe minima lokalne są rzadsze, niż podpowiada intuicja z dwóch wymiarów, choć to nie jest twierdzenie prawdziwe dla każdej sieci.
Trzecia obserwacja: w szerokich sieciach rozwiązań jest bardzo dużo i tworzą połączone obszary. Prace o łączności trybów (mode connectivity) pokazały, że dwa niezależnie wytrenowane rozwiązania często da się połączyć krzywą, wzdłuż której strata pozostaje niska. Prosta linia między nimi zwykle przechodzi przez wyższą barierę, ale ta bariera wyraźnie maleje, gdy najpierw przenumeruje się neurony jednej sieci tak, aby pasowały do drugiej.
Często dyskutuje się też ostrość minimum. Płaskie minimum oznacza, że małe zaburzenia wag niewiele zmieniają stratę. Hipoteza głosi, że takie minima lepiej uogólniają, a mniejsze batche i większe współczynniki uczenia pomagają je znajdować. To zjawisko jest obserwowane, ale sporne: ostrość zależy od parametryzacji i da się ją sztucznie zmienić bez zmiany funkcji sieci, więc nie jest prostą miarą jakości.
Ograniczenie wszystkich wizualizacji: przekrój jedno- czy dwuwymiarowy przez przestrzeń o tysiącach wymiarów pokazuje bardzo mały wycinek i może zarówno ukryć, jak i wyolbrzymić przeszkody.
Na przykładzie
Sieć 64-64-10 z ReLU wytrenowana na zbiorze Digits 8×8 (piksele podzielone przez 16, 1347 obrazków treningowych, MLPClassifier, random_state=0). Prosta od wag początkowych do końcowych daje stratę treningową 2,47 na starcie, 1,28 w jednej czwartej drogi, 0,27 w połowie, 0,044 w trzech czwartych i 0,0090 na końcu. Strata maleje monotonicznie: z tej perspektywy krajobraz wygląda jak gładki stok bez przeszkód.
Druga sieć, wytrenowana tak samo, ale z random_state=1, osiąga stratę 0,0078 i trafność testową 97,8% (pierwsza 97,3%). Na środku odcinka między nimi strata rośnie do 0,155, czyli 17–20 razy więcej niż na końcach odcinka, a trafność treningowa spada ze 100% do 96,5%. Po przenumerowaniu neuronów drugiej sieci tak, by odpowiadały neuronom pierwszej (dopasowanie wag algorytmem węgierskim), druga sieć liczy dokładnie tę samą funkcję, a strata w połowie drogi wynosi już tylko 0,022. Większość „bariery” wynikała z symetrii permutacji, a nie z tego, że sieci znalazły zupełnie różne rozwiązania.
Dane: Digits (ręcznie pisane cyfry 8×8)
W praktyce
- Prosty przekrój zrób sam: zapisz wagi θ₀ i θ₁, licz stratę dla (1 − t)·θ₀ + t·θ₁ przy t od 0 do 1. W PyTorch wystarczy
torch.lerpna każdym tensorze zstate_dict(). - Do przekrojów dwuwymiarowych używa się losowych kierunków znormalizowanych filtrami, żeby uniknąć złudzeń wynikających ze skali wag.
- Niestabilna krzywa uczenia (strata skacze w górę) zwykle oznacza zbyt duży krok względem krzywizny krajobrazu; zmniejsz
lralbo dodaj rozgrzewkę współczynnika uczenia. - Uśrednianie wag z jednego przebiegu (
torch.optim.swa_utils.AveragedModel) działa, bo punkty z jednej doliny są ze sobą połączone; uśrednianie dwóch niezależnych sieci bez dopasowania neuronów zwykle psuje model. - Normalizacja wsadowa i połączenia rezydualne wygładzają krajobraz, co jest jednym z wyjaśnień, dlaczego ułatwiają trening głębokich sieci.
Najczęstsze pytania
- Czy sieci neuronowe utykają w minimach lokalnych?
- Rzadziej, niż się kiedyś obawiano, zwłaszcza duże sieci. Częstsze problemy to płaskie obszary i punkty siodłowe, w których gradient jest bardzo mały i trening zwalnia. Małe sieci, jak dwa neurony uczące się XOR, rzeczywiście potrafią utknąć.
- Czy płaskie minimum zawsze lepiej uogólnia?
- Nie zawsze. Korelacja bywa obserwowana, ale miary ostrości zależą od skali wag i istnieją kontrprzykłady. Traktuj to jako użyteczną intuicję, a nie prawo.
- Dlaczego dwa treningi z różnym ziarnem dają różne wagi, ale podobną trafność?
- Bo w krajobrazie jest bardzo wiele równie dobrych rozwiązań, a część z nich to te same funkcje zapisane z przenumerowanymi neuronami. Ziarno decyduje, do którego z nich trafi trening, a nie czy trafi do dobrego.
Źródła
- Goodfellow I. J., Vinyals O., Saxe A. M., „Qualitatively characterizing neural network optimization problems”, ICLR 2015.
- Li H., Xu Z., Taylor G., Studer C., Goldstein T., „Visualizing the Loss Landscape of Neural Nets”, NeurIPS 2018.
- Garipov T., Izmailov P., Podoprikhin D., Vetrov D., Wilson A. G., „Loss Surfaces, Mode Connectivity, and Fast Ensembling of DNNs”, NeurIPS 2018.
- Ainsworth S. K., Hayase J., Srinivasa S., „Git Re-Basin: Merging Models modulo Permutation Symmetries”, ICLR 2023.
- Goodfellow I., Bengio Y., Courville A., „Deep Learning”, MIT Press, 2016, rozdz. 8 „Optimization for Training Deep Models”.