Algorytmy uczenia się

https://aie24.pl/

Uczenie sieci neuronowej polega na modyfikacji parametrów sieci tak, aby zminimalizować funkcję strat na zbiorze uczącym. W zasadzie można zastosować dowolny algorytm optymalizacji. W praktyce nowoczesne sieci neuronowe są prawie zawsze trenowane z jakimś wariantem stochastycznego gradientu (SGD). Tutaj celem jest zminimalizowanie strat L(w), gdzie w reprezentuje wszystkie parametry sieci. Każdy krok aktualizacji w procesie opadania gradientu wygląda następująco:

gdzie α to wskaźnik uczenia się. Dla standardowego zjazdu gradientowego strata L jest definiowana w odniesieniu do całego zestawu treningowego. Dla SGD określa się ją w odniesieniu do minipartii m przykładów losowo wybranych na każdym etapie. Literatura dotycząca metod optymalizacji wielowymiarowych przestrzeni ciągłych zawiera niezliczone ulepszenia podstawowego spadku gradientu. Nie omówimy ich tutaj wszystkich, ale warto wspomnieć o kilku ważnych kwestiach, które są szczególnie istotne przy trenowaniu sieci neuronowych:

  • W przypadku większości sieci, które rozwiązują rzeczywiste problemy, zarówno wymiarowość w, jak i rozmiar zbioru uczącego są bardzo duże. Rozważania te zdecydowanie przemawiają za stosowaniem SGD ze stosunkowo małym rozmiarem minipartii m: stochastyczność pomaga algorytmowi uciec od małych lokalnych minimów w wielowymiarowej przestrzeni wagowej; a mały rozmiar minipartii zapewnia, że ​​koszt obliczeniowy każdego kroku aktualizacji wagi jest małą stałą, niezależną od rozmiaru zestawu uczącego.
  • Ponieważ udział gradientu każdego przykładu uczącego w minipartii SGD można obliczyć niezależnie, rozmiar minipartii jest często wybierany tak, aby maksymalnie wykorzystać równoległość sprzętową w GPU lub TPU.
  • Aby poprawić konwergencję, zwykle dobrym pomysłem jest stosowanie szybkości uczenia się, która z czasem maleje. Wybór odpowiedniego harmonogramu to zazwyczaj kwestia prób i błędów.
  • W pobliżu lokalnego lub globalnego minimum funkcji straty w odniesieniu do całego zbioru uczącego, gradienty oszacowane z małych minipartii będą często charakteryzowały się dużą wariancją i mogą wskazywać w całkowicie złym kierunku, co utrudnia zbieżność. Jednym z rozwiązań jest zwiększanie rozmiaru minipartii w miarę postępu szkolenia; innym jest włączenie idei pędu, która utrzymuje średnią bieżącą gradientów minionych minipartii w Momentum w celu skompensowania małych rozmiarów minipartii.
  • Należy zachować ostrożność, aby złagodzić niestabilności liczbowe, które mogą powstać z powodu przepełnienia, niedopełnienia i błędu zaokrąglania. Są one szczególnie problematyczne przy wykorzystaniu wykładników w funkcjach aktywacji softmax, sigmoid i tanh oraz przy iteracji obliczenia w bardzo głębokich sieciach i sieciach powtarzalnych, które prowadzą do zanikania i eksplodowania aktywacji i gradientów.

Ogólnie rzecz biorąc, proces uczenia się wag sieci zwykle wykazuje malejące zyski. Pracujemy, dopóki nie będzie już praktyczne zmniejszanie błędu testu przez dłuższe bieganie. Zwykle nie oznacza to, że osiągnęliśmy globalne lub nawet lokalne minimum funkcji straty. Zamiast tego oznacza to, że musielibyśmy wykonać niepraktycznie dużą liczbę bardzo małych kroków, aby nadal zmniejszać koszty, lub że dodatkowe kroki spowodowałyby jedynie nadmierne dopasowanie lub że szacunki gradientu są zbyt niedokładne, aby poczynić dalsze postępy.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *