Rodzaje optymalizatorów w głębokim uczeniu, które powinien znać każdy inżynier AI
Opublikowany: 2020-12-01Spis treści
Wstęp
Głębokie uczenie to ogromny postęp w porównaniu z uczeniem maszynowym pod względem elastyczności, większej dokładności i szerokiego zakresu możliwości w zastosowaniach przemysłowych. Niezależnie od tego, czy jest to aplikacja do czatu, autokorekta gramatyczna, tłumaczenie na różne języki, wykrywanie fałszywych wiadomości czy automatyczne pisanie historii na podstawie kilku początkowych sformułowań, uczenie głębokie znajduje zastosowanie w prawie każdym sektorze.
Przy tak dużym wykorzystaniu ważne jest, aby te algorytmy działały przy minimalnych zasobach, dzięki czemu możemy zmniejszyć powtarzające się koszty i zapewnić wydajne wyniki w krótszym czasie. Optymalizator to metoda lub algorytm aktualizacji różnych parametrów, które mogą zmniejszyć straty przy znacznie mniejszym wysiłku. Przyjrzyjmy się niektórym popularnym optymalizatorom uczenia głębokiego, które zapewniają zadowalające wyniki.
Ucz się kursów AI ML z najlepszych światowych uniwersytetów. Zdobywaj programy Masters, Executive PGP lub Advanced Certificate Programy, aby przyspieszyć swoją karierę.
Spadek gradientu (GD)
Jest to najbardziej podstawowy optymalizator, który bezpośrednio wykorzystuje pochodną funkcji straty i szybkości uczenia się w celu zmniejszenia straty i osiągnięcia minimów. To podejście jest również stosowane w propagacji wstecznej w sieciach neuronowych, gdzie zaktualizowane parametry są współdzielone między różnymi warstwami w zależności od tego, kiedy osiągnięto minimalną stratę. Jest łatwy do zaimplementowania i interpretacji wyników, ale wiąże się z różnymi problemami.
Wagi są aktualizowane po obliczeniu gradientu całego zestawu danych, co spowalnia proces. Wymaga również dużej ilości pamięci do przechowywania tych tymczasowych danych, co sprawia, że jest to proces zasobożerny. Chociaż idea tego algorytmu jest dobrze dopasowana, należy ją poprawić.
Stochastyczne zejście gradientowe
Jest to zmieniona wersja metody GD, w której parametry modelu są aktualizowane przy każdej iteracji. Oznacza to, że po każdej próbie uczącej testowana jest funkcja straty i aktualizowany jest model. Te częste aktualizacje powodują zbieżność do minimów w krótszym czasie, ale dzieje się to kosztem zwiększonej wariancji, która może spowodować, że model przekroczy wymaganą pozycję.

Ale zaletą tej techniki jest niskie zapotrzebowanie na pamięć w porównaniu z poprzednią, ponieważ teraz nie ma potrzeby przechowywania poprzednich wartości funkcji utraty.
Mini-partia Gradient Descent
Innym wariantem tego podejścia GD jest mini-partia, w której parametry modelu są aktualizowane w małych partiach. Oznacza to, że po każdych n partiach parametry modelu będą aktualizowane, co zapewnia, że model zbliża się do minimów w mniejszej liczbie kroków bez częstego wykolejania. Powoduje to mniejsze zużycie pamięci i małą wariancję modelu.
Przeczytaj: Pomysły na projekty uczenia maszynowego
Gradient oparty na pędzie
Wróćmy do metody, której używamy do aktualizacji parametrów. Bazując na pochodnej pierwszego rzędu funkcji straty, dokonujemy wstecznej propagacji gradientów. Częstotliwość aktualizacji może być po każdej iteracji, partii lub na końcu, ale nie zastanawiamy się, ile aktualizacji mamy w parametrach.
Jeśli ten element historii zostanie uwzględniony w kolejnych aktualizacjach, może przyspieszyć cały proces i to właśnie oznacza rozpęd w tym optymalizatorze. Ten element historii przypomina sposób, w jaki nasz umysł zapamiętuje rzeczy. Jeśli idziesz ulicą i pokonujesz całkiem spory dystans, to będziesz mieć pewność, że cel jest w pewnej odległości przed Tobą i zwiększysz prędkość.
Ten element zależy od poprzedniej wartości, szybkości uczenia się i nowego parametru zwanego gamma, który steruje aktualizacją historii. Reguła aktualizacji będzie wyglądać tak: w = w – v, gdzie v jest elementem historii.
Niestierowa Przyspieszony Gradient (NAG)
GD oparte na pędzie dało impuls obecnie używanym optymalizatorom, najwcześniej zbliżając się do minimów, ale wprowadził nowy problem. Ta metoda wymaga wielu zawracania i oscyluje w dolinie minimów, zwiększając całkowity czas. Potrzebny czas jest wciąż o wiele za krótszy niż w normalnym GD, ale ten problem również wymaga naprawy i jest to robione w NAG.
Zastosowane tutaj podejście polegało na tym, że aktualizacja parametrów byłaby wykonywana najpierw z elementem historii, a następnie obliczana jest tylko pochodna, która może przesunąć ją w przód lub w tył. Nazywa się to podejściem wyprzedzającym i ma to więcej sensu, ponieważ jeśli krzywa zbliża się do minimów, pochodna może sprawić, że będzie się poruszać powoli, aby było mniej oscylacji, a tym samym zaoszczędzić więcej czasu.

Przeczytaj także: Techniki głębokiego uczenia, które powinieneś znać
Adagrad
Do tej pory skupiamy się tylko na tym, jak parametry modelu wpływają na nasze szkolenie, ale nie mówiliśmy o hiperparametrach, którym przypisywana jest stała wartość podczas szkolenia. Jednym z takich ważnych hiperparametrów jest szybkość uczenia się, a jej zróżnicowanie może zmienić tempo treningu.
W przypadku danych wejściowych rzadkiej cechy, gdzie większość wartości wynosi zero, możemy sobie pozwolić na wyższy wskaźnik uczenia się, który zwiększy gradient umierania wynikający z tych rzadkich cech. Jeśli mamy gęste dane, możemy mieć wolniejsze uczenie się.
Rozwiązaniem tego jest posiadanie adaptacyjnego tempa uczenia się, które może się zmieniać zgodnie z dostarczonymi danymi wejściowymi. Optymalizator Adagrad próbuje zaoferować tę adaptacyjność, zmniejszając tempo uczenia się proporcjonalnie do zaktualizowanej historii gradientów.
Oznacza to, że w przypadku większych aktualizacji element historii jest gromadzony, a zatem zmniejsza szybkość uczenia się i odwrotnie. Wadą tego podejścia jest to, że tempo uczenia się agresywnie spada i po pewnym czasie zbliża się do zera.
RMSPPro
Jest to ulepszenie optymalizatora Adagrad. Ma to na celu zmniejszenie agresywności tempa uczenia się, biorąc wykładniczą średnią gradientów zamiast skumulowanej sumy kwadratów gradientów. Adaptacyjna szybkość uczenia się pozostaje nienaruszona, ponieważ teraz średnia wykładnicza będzie karać większą szybkość uczenia się w warunkach, w których jest mniej aktualizacji i mniejsza szybkość w większej liczbie aktualizacji.
Adam
Adaptive Moment Estimation łączy w sobie moc RMSProp (podpory średniej kwadratowej) i GD opartej na pędzie. W optymalizatorach Adam moc pędu GD do przechowywania historii aktualizacji i szybkość adaptacyjnego uczenia się zapewniana przez RMSProp sprawia, że optymalizator Adam jest potężną metodą. Wprowadza również dwa nowe hiperparametry beta1 i beta2, które zwykle są utrzymywane w okolicach 0,9 i 0,99, ale można je zmienić w zależności od przypadku użycia.

Trzeba przeczytać: Regularyzacja w głębokim uczeniu
Wniosek
W tym artykule przyjrzeliśmy się 8 optymalizatorom uczenia głębokiego w kolejności łatwości ich użycia oraz tego, w jaki sposób ograniczenie jednego optymalizatora jest przezwyciężane przez kolejny i tak dalej. Istnieje więcej modyfikacji jednego lub innych wspomnianych tutaj optymalizatorów, ale są to podstawowe, które należy rozważyć przed przejściem do złożonych rozwiązań.
Wybór zwycięzcy spośród nich jest wysoce subiektywny w stosunku do przypadku użycia i problemu, z którym się borykasz, ale z pewnością można umieścić Adam Optimizer na górze ze względu na jego połączenie z koncepcją momentum, która zmieniła sposób aktualizacji parametrów modelu i dostosowanie zmieniających się szybkość uczenia się dla różnych scenariuszy umożliwiająca efektywne przetwarzanie dowolnych danych wejściowych.
Ogólny trend pokazuje, że dla tej samej straty optymalizatory te zbiegają się w różnych lokalnych minimach. Podczas gdy optymalizatory adaptacyjnego uczenia się zbiegają się w ostrzejszych minimach, inne rodzaje technik zbiegają się w bardziej płaskich minimach, co jest lepsze dla uogólniania. Techniki te mogą pomóc tylko w pewnym stopniu, ponieważ głębokie sieci neuronowe stają się coraz większe, więc do uzyskania dobrych wyników potrzebne są bardziej wydajne metody.
Jeśli chcesz opanować uczenie maszynowe i sztuczną inteligencję, zwiększ swoją karierę dzięki naszemu tytułowi Master of Science in Machine Learning & AI z IIIT-B i Liverpool John Moores University.
Jak optymalizatory działają w trybie głębokiego uczenia?
Podczas gdy sieci neuronowe są w tej chwili modne, optymalizator jest czymś, co jest znacznie bardziej fundamentalne dla uczenia się sieci neuronowej. Podczas gdy sieci neuronowe mogą uczyć się samodzielnie, bez wcześniejszej wiedzy, optymalizator to program, który działa z siecią neuronową i pozwala jej uczyć się znacznie szybciej. Krótko mówiąc, dokonuje tego poprzez zmianę parametrów sieci neuronowej w taki sposób, aby trening z tą siecią neuronową był znacznie szybszy i łatwiejszy. Te optymalizatory umożliwiają sieciom neuronowym pracę w czasie rzeczywistym, a szkolenie zajmuje tylko kilka minut. Bez nich szkolenie z łatwością zajęłoby kilka dni.
Dlaczego optymalizacja algorytmów głębokiego uczenia się jest trudna?
Systemy uczenia głębokiego są ogólnie uważane za trudne do optymalizacji, ponieważ są duże i złożone, często obejmują wiele warstw i nieliniowości. Optymalizatory muszą radzić sobie z ogromnym systemem, co nie jest łatwe do zrozumienia. Niektóre narzędzia do głębokiego uczenia zapewniają tylko ograniczoną liczbę parametrów, które można dostroić, co ogranicza ich użyteczność. Istnieje jednak kilka skutecznych sposobów optymalizacji modeli uczenia głębokiego i poprawy ich uogólniania.
Jakie są różne optymalizatory w głębokim uczeniu?
W uczeniu głębokim optymalizatory służą do dostosowywania parametrów modelu. Celem optymalizatora jest dostosowanie wag modelu w celu maksymalizacji funkcji straty. Funkcja straty służy do mierzenia skuteczności modelu. Podczas uczenia modelu sieci neuronowej należy użyć optymalizatora. Istnieje wiele różnych optymalizatorów, których można używać z modelem uczenia głębokiego. Niektóre z najpopularniejszych optymalizatorów to RMSprop, momentum i Adam
