Wytyczna wyboru hiperparametrów w głębokim uczeniu się

38

Szukam artykułu, który mógłby pomóc w wytyczeniu sposobu wyboru hiperparametrów głębokiej architektury, takich jak piętrowe auto-kodery lub sieci głęboko wierzące. Istnieje wiele hiperparametrów i jestem bardzo zdezorientowany, jak je wybrać. Również stosowanie weryfikacji krzyżowej nie jest opcją, ponieważ szkolenie naprawdę zajmuje dużo czasu!

Jack Twain
źródło
Polecam Ian Goodfellow's Deep Learning Book: deeplearningbook.org
Vadim

Odpowiedzi:

24

Istnieją w zasadzie cztery metody:

  1. Wyszukiwanie ręczne: korzystając z posiadanej wiedzy na temat parametrów zgadnij problem i obserwuj wynik. Na podstawie tego wyniku popraw parametry. Powtarzaj ten proces, aż znajdziesz parametry, które działają dobrze lub skończy Ci się czas.
  2. Wyszukiwanie w sieci: Korzystając z posiadanej wiedzy na temat problemu, identyfikujemy zakresy hiperparametrów. Następnie wybierz kilka punktów z tych zakresów, zwykle równomiernie rozmieszczonych. Trenuj swoją sieć przy użyciu każdej kombinacji parametrów i wybierz kombinację, która działa najlepiej. Alternatywnie możesz powtórzyć wyszukiwanie w wąskiej domenie skupionej wokół parametrów, które działają najlepiej.
  3. Wyszukiwanie losowe: Podobnie jak wyszukiwanie w siatce, wykorzystujesz wiedzę o problemie do identyfikowania zakresów dla hiperparametrów. Jednak zamiast metodycznie wybierać wartości z tych zakresów, wybierasz je losowo. Powtarzaj ten proces, aż znajdziesz parametry, które działają dobrze lub wykorzystasz to, czego się nauczysz, aby zawęzić wyszukiwanie. W artykule Random Search for Hyper-Parameter Optimization Dr. Bengio proponuje, aby była to podstawowa metoda, z którą wszystkie pozostałe metody powinny być porównywane, i pokazuje, że zwykle działa lepiej niż inne metody.
  4. Optymalizacja bayesowska: nowsze prace koncentrują się na ulepszeniu tych innych podejść poprzez wykorzystanie informacji uzyskanych z danego eksperymentu do podjęcia decyzji, jak dostosować parametry hiper dla następnego eksperymentu. Przykładem tej pracy może być praktyczna bayesowska optymalizacja algorytmów uczenia maszynowego autorstwa Adamsa i in.
DaemonMaker
źródło
14

Istnieje wiele różnych metod. Mogą być w dużej mierze podzielone na partycje w losowych / niekierowanych metodach wyszukiwania (takich jak wyszukiwanie siatki lub losowe) i metodach bezpośrednich. Pamiętaj jednak, że wszystkie one wymagają przetestowania znacznej liczby ustawień hiperparametrów, chyba że będziesz miał szczęście (przynajmniej setki, zależy od liczby parametrów).

W klasie metod bezpośrednich można wyróżnić kilka różnych podejść:

  • metody wolne od pochodnych, na przykład Nelder-Mead simplex lub DIRECT
  • metody ewolucyjne, takie jak CMA-ES i roje cząstek
  • podejścia oparte na modelach, np. EGO i sekwencyjne Kriging

Możesz zajrzeć do Optunity , pakietu Pythona, który oferuje różnorodne rozwiązania do strojenia hiperparametrów (na razie wszystko, o czym wspomniałem oprócz EGO i Kriging). Opcja będzie dostępna wkrótce dla MATLAB i R. Oświadczenie: Jestem głównym programistą tego pakietu.

Opierając się na moim osobistym doświadczeniu, metody ewolucyjne są bardzo skuteczne w tego rodzaju problemach.

Marc Claesen
źródło
10

Nie szukaj dalej! Yoshua Bengio opublikował jeden z moich ulubionych artykułów aplikacyjnych, który polecam wszystkim nowym inżynierom uczącym się maszynowo, kiedy zaczynają trenować sieci neuronowe: Praktyczne zalecenia dotyczące gradientowego szkolenia głębokich architektur. Aby uzyskać jego spojrzenie na zwrot hiperparametrów: w tym szybkość uczenia się, harmonogram szybkości uczenia się, wczesne zatrzymywanie, rozmiar minibatchu, liczbę ukrytych warstw itp., Patrz sekcja 3.

Sabalaba
źródło