Ulepszenia treningu sieci MLP
Sieci Neuronowe 1
Powierzchnia błędu
Minima lokalne i minimum globalne
Plateau - regiony o małej zmienności błędu względem wag
Jak omijać minima lokalne?
∙ Wielokrotny start z różnymi wartościami początkowymi - najprostsza ale skuteczna metoda
∙ Szum dodawany do wag lub szum dodany do danych pozwala wygładzić funkcję błędu i uciec z płytszych minimów – formalnie jest to równoważne regularyzacji, czyli dodaniu dodatkowego członu wygładzającego do funkcji błędu
∙ Losowa kolejność prezentowania przypadków
∙ Modyfikacje BP lub inne algorytmy optymalizacji
Sieci Neuronowe 3
Metody globalnej minimalizacji
∙ Metody globalnej minimalizacji: wiele metod.
∙ Monte Carlo, symulowane wyżarzanie, metody multisympleksowe, minimalizacja Tabu, homotopia ...
∙ Dużo prac łączących algorytmy genetyczne z sieciami MLP
∙ Zalety: globalne, proste w realizacji, niektóre nie potrzebują gradientu, inne łączą zalety metod gradientowych z
metodami globalnymi
∙ Wady: zwykle kosztowne i czasochłonne
Dobór kroku uczenia
∙ zbyt mała wartość 𝜂 - powolna zbieżność
∙ za duża wartość 𝜂 - niestabilny trening, oscylacje
∙ wartość kroku może byc zmieniana w czasie uczenia, różne podejścia:
– zmniejszana w czasie treningu
– zwiększana dla płaskich powierzchni błędu
– dobierana niezależnie do warstwy lub pojedynczych neuronów i wag
Sieci Neuronowe 5
Płaskie powierzchnie i strome doliny
Powierzchnia błędu w wielu wymiarach ma różne nachylenie
Rys: Riedmiller, Machine Learning
Trening z momentem
prędkość uczenia zależna od poprzednich wartości gradientów
∆w (t) = −𝜂∇E (t) + 𝛾∆w (t − 1)
∙ zwiększa krok uczenia, gdy gradient nie zmienia kierunku.
Przyśpieszenie na płaskich odcinkach (gdzie∇E stałe) wynosi w przybliżeniu
∆w (t) = − 𝜂 1− 𝛾∇E
∙ redukuje oscylacje (spowalnia uczenie), gdy gradient zmienia kierunek
∙ gdy∇E = 0 wagi są nadal modyfikowane (bezwładność), może to ułatwić opuszczenie strefy „przyciągania” do minimum lokalnego
∙ 0 < 𝛾 < 1, typowo współczynnik 𝛾 = 0.9Sieci Neuronowe 7
Trening z momentem
SGD bez momentu SGD z momentem
Inicjalizacja wag
∙ Losowe wartości z rozkładu jednostajnego w okolicach 0
∙ Za duże wagi powodują duże wartości aktywacji i ryzyko nasycenia funkcji sigmoidalnych
∙ Dla d wejść można wybrać wartości z zakresu
− 1
√
d < wij < 1
√ d
co przy standaryzacji danych daje średnio aktywację neuronów w zakresie liniowym [−1, 1] sigmoidy
∙ Analogicznie dla kolejnych warstw
Sieci Neuronowe 9
Skalowanie wartości wejściowych
∙ Rożne skale mierzonych cech xi, „dzikie” rozkłady dalekie od rozkładu normalnego, wartości odstające
∙ Dane wejściowe xi powinny posiadać zbliżone zakresy wartości
∙ Standaryzacja
xs = x − 𝜇 𝜎
𝜇 - wartość średnia, 𝜎 - odchylenie standardowe
∙ Normalizacja w zakresie [−1, +1]
xn= 2 x − xmin xmax − xmin − 1
RPROP
Resilent BP (Riedmiller, Braun, 1992)
∙ radzi sobie z problemem znikających (oraz za dużych) gradientów
∙ wyłącznie znak gradientu (nie amplituda) uwzględniany w obliczeniach
∙ stała uczenia dobierana dla każdej wagi niezależnie
∆wij(t) = −𝜂ij(t) sgn(︂ 𝜕E (w(t))
𝜕wij )︂
Sieci Neuronowe 11
RPROP
∙ wymaga informacji z 2 ostatnich kroków uczenia
∙ 𝜂ij rośnie, gdy brak zmiany kierunku gradientu
∙ 𝜂ij maleje, gdy następuje zmiana kierunku
∆wij(t) = −𝜂ij(t) sgn(︂ 𝜕E (w(t))
𝜕wij
)︂
gdzie
𝜂ij(t) =
⎧
⎪⎪
⎨
⎪⎪
⎩
min(a · 𝜂ij(t − 1), 𝜂max) dla 𝜕E (w(t))𝜕w
ij
𝜕E (w(t−1))
𝜕wij > 0 max(b · 𝜂ij(t − 1), 𝜂min) dla 𝜕E (w(t))𝜕w
ij
𝜕E (w(t−1))
𝜕wij < 0 𝜂ij(t − 1) w pozostałych przypadkach a = 1.2, b = 0.5, 𝜂min= 10−6, 𝜂max = 50
Quickprop (Fahlman, 1988)
∙ założenie: wagi są niezależne a funkcja błędu w okolicach minimum może być przybliżona parabolą
∙ przybliżenie za pomocą wartości i gradientów funkcji w 2 punktach w (m) i w (m − 1)
∆w (m + 1) = ∇ijE (m)
∇ijE (m − 1) − ∇ijE (m)∆w (m)
∙ wagi mają niezależną zbieżność uczenia
∙ zbieżność kwadratowa
∙ trening może być niestabilny
Sieci Neuronowe 13
Metody 2 rzędu
Rozwinięcie w szereg Taylora:
E (w + ∆w) ≈ E (w) + ∇E (w)T∆w +1
2∆wT∇2E (w)∆w gdzie∇2E (w) = H jest macierzą n × n pochodnych 2 rzędu (Hessian)
Hij = 𝜕2E (x; w)
𝜕wi𝜕wj Gradient funkcji kosztu:
∇E (w + ∆w)T ≈ ∇E (w)T + ∆wTH Minimum osiągane dla∇E (w + ∆w) = 0, stąd
∆w = −H−1∇E (w)
rozwiązanie w jednym kroku, jeżeli potrafimy obliczyć H−1
Metoda Newtona
Iteracyjna metoda 2 rzędu:
w(t + 1) = w(t) − H−1∇E (w(t))
∙ metoda kosztowna czasowo O(n3) (odwracanie macierzy w każdej iteracji)
∙ zbieżność (kwadratowa) po kilku iteracjach
∙ metoda kosztowna pamięciowo, Hessian O(n2) , gdzie n liczba wag
∙ praktyczne zastosowania tylko dla małych sieci
∙ H nie zawsze jest dodatnio określona - stosuje się aproksymacje
Sieci Neuronowe 15
Spadek gradientu
Metoda Newtona
Rys:https: // www. neuraldesigner. com/ blog/ 5_ algorithms_ to_ train_ a_ neural_ network
Metody quasi-Newtona
Przybliżenia do Hesjanu
∙ zaniedbanie pozadiagonalnych elementów
∆wi = −𝜕E
𝜕wi
⧸︃𝜕2E
𝜕wi2
∙ metoda zmiennej metryki - przybliżenie do H−1oraz iteracyjna metoda Newtona, kwadratowo zbieżna
– Davidon-Fletcher-Power (DFP)
– Broyden-Fletcher-Goldfarb-Shanno (BFGS).
∙ Metoda Levenberg-Marquardta oparta jest na przybliżeniu Gaussa-Newtona
Sieci Neuronowe 17
Metoda Levenberg-Marquardta
Jakobian dla funkcji błędu E =∑︀n
i =1ei2 , gdzie n ilość wektorów treningowych
Jij = 𝜕ei
𝜕wj Pochodna funkcji błędu:
∇E = 2JTe Przybliżenie do Hesjanu:
H≈ 2JTJ + 𝜇I
gdzie współczynnik tłumienia 𝜇 zapewnia dodatnią określoność H.
Aktualizacja wag:
∆w = −2(︀JTJ + 𝜇I)︀−1
JTe
Metoda Levenberg-Marquardta
∆w = −2(︀JTJ + 𝜇I)︀−1
JTe
∙ dla 𝜇 = 0 mamy metodę Newtona
∙ dla dużych 𝜇 mamy metodę największego spadku z małym krokiem uczenia
∙ LM startuje z dużą wartością 𝜇 a następnie w trakcie uczenia 𝜇 jest zmniejszane
∙ bardzo szybko zbieżna metoda dla funkcji, które są sumą kwadratów (MSE)
∙ nie nadaje się do zastosowań z funkcją Cross Entropy
∙ nie praktyczne dla dużych danych, duży koszt pamięci, Jakobian ma wymiar n× k, gdzie n - ilość wektorów, k - ilość parametrów (wag)
Sieci Neuronowe 19
Metoda gradientów sprzężonych
Metoda gradientów sprzężonych (conjugated gradients) w kolejnych krokach iteracji poszukuje minimum wzdłuż kierunków sprzężonych do wszystkich poprzednich kierunków.
Kierunki ∆w(m) i ∆w(m − 1) są sprzężone gdy:
∆wT(m − 1)H∆w(m) = 0 Kierunek wyszukiwania minimum w iteracji m
∆w(m) = −∇E (w(m)) + 𝛽∆w(m − 1) gdzie współczynnik sprzężenia 𝛽
∙ reguła Fletchera-Reevesa
𝛽 = (∇E (w(m)))2 (∇E (w(m − 1)))2
∙ reguła Polaka-Ribiera
𝛽 = (∇E (w(m)) − ∇E (w(m − 1))) ∇E (w(m)) (∇E (w(m − 1)))2
Metoda gradientów sprzężonych
∙ pierwszy kierunek w(0) wyznaczamy za pomocą spadku gradientu
∙ w każdym kroku wyszukujemy minimum wzdłuż pojedynczego kierunku (liniowe szukanie) sprzężonego
∙ po n krokach (gdzie n jest liczbą optymalizowanych parametrów) metodę inicjujemy ponownie w ostatnio znalezionym punkcie
∙ dla kwadratowej funkcji kosztu w n wymiarach metoda CG osiąga minimum w n krokach
∙ zbieżność znacznie szybsza od GD bez konieczności wyznaczania H−1
∙ małe zapotrzebowanie pamięciowe
Sieci Neuronowe 21
Minimalizacja CG
∙ kolejny kierunek sprzężony nie wpływa ujemnie na wartość błędu wzdłuż poprzednio wyszukanych kierunków
∙ dla H diagonalnej kolejne kierunki są ortogonalne względem siebie
Duda, Hart, Pattern recognition
Sieci Neuronowe 23 Rys:https: // www. neuraldesigner. com/ blog/ 5_ algorithms_ to_ train_ a_ neural_ network