Dlaczego algorytmy genetyczne nie są wykorzystywane do optymalizacji sieci neuronowych?

13

Z mojego zrozumienia, Algorytmy genetyczne są potężnymi narzędziami do optymalizacji wielu celów.

Ponadto szkolenie sieci neuronowych (szczególnie głębokich) jest trudne i wiąże się z wieloma problemami (funkcje kosztów niewypukłych - lokalne minima, zanikanie i eksplodowanie gradientów itp.).

Również jestem konceptualny, że szkolenie NN z GA jest wykonalne. Zastanawiałem się, dlaczego nie stosuje się ich w praktyce? Czy to kwestia wydajności?

cat91
źródło

Odpowiedzi:

5

Szkolenie sieci neuronowych (NN) przy pomocy algorytmów genetycznych (GA) jest nie tylko wykonalne, ale istnieje kilka niszowych obszarów, w których wydajność jest wystarczająco dobra, aby często ją wykorzystywać. Dobrym przykładem tego jest Neuroewolucja rozszerzających się topologii lub NEAT , która jest udanym podejściem do generowania kontrolerów w prostych środowiskach, takich jak gry.

Jednak w bardziej ogólnym przypadku podejście to nie jest dobrze skalowane do dużych, głębokich sieci z wieloma parametrami do dostrojenia.

Algorytmy genetyczne i inne globalne poszukiwania optymalnych parametrów są niezawodne w taki sposób, jak algorytmy gradientowe. Na przykład, możesz trenować NN z aktywacjami funkcji krokowych lub dowolnymi innymi niezróżnicowanymi funkcjami aktywacyjnymi. Mają słabości gdzie indziej. Jedną rzeczą istotną w przypadku GA stosowanych dla NN jest to, że parametry wagowe są wymienne w niektórych kombinacjach, ale silnie współzależne w innych kombinacjach. Scalenie dwóch równie dobrych sieci neuronowych o różnych parametrach - co zrobiłbyś w cross-overie w GA - zwykle spowoduje trzecią sieć o niskiej wydajności. Sukces NEAT polega częściowo na znalezieniu sposobu rozwiązania tego problemu poprzez „zwiększenie” połączeń NN i dopasowanie ich między podobnymi sieciami neuronowymi.

Podejścia oparte na gradiencie są znacznie wydajniejsze. Ogólnie rzecz biorąc, i nie tylko w dziedzinie NN, jeśli można obliczyć gradient funkcji w odniesieniu do parametrów, wówczas można znaleźć parametry optymalne szybciej niż większość innych technik optymalizacji. Dokładny gradient gwarantuje co najmniej niewielką poprawę w stosunku do pojedynczej oceny, a większość innych optymalizatorów popada w paradygmat generowania i ponawiania próby, który nie może dać tego rodzaju gwarancji. Słaba tendencja do znajdowania lokalnych optymów nie okazała się poważną przeszkodą dla funkcji strat w NN i została rozwiązana z pewnym stopniem powodzenia dzięki rozszerzeniom podstawowego spadku gradientu, takim jak pęd, RPROP, Adam itp.

W praktyce w dużej sieci wielowarstwowej metody gradientu są prawdopodobnie o rząd wielkości szybsze niż wyszukiwanie GA, takie jak NEAT w celu znalezienia parametrów sieci. Nie znajdziesz wyszkolonych przez GA sieci CNN, które rozwiązałyby ImageNet, ani nawet MNIST, w których GA samodzielnie ustalił wagi sieci. Jednak GA lub przynajmniej niektóre ich warianty nie są w 100% wykluczone. Na przykład w tym blogu z 2017 r. Dokonano przeglądu najnowszych artykułów, w tym ewolucji klasyfikatorów obrazów na dużą skalę, która bada wykorzystanie GA do odkrywania hiperparametrów NN, co jest ważnym zadaniem w uczeniu maszynowym i niezbyt wykonalnym przy użyciu metod opartych na gradientach.

Neil Slater
źródło
1

W rzeczywistości Google Brain zrobił już coś podobnego w przypadku klasyfikatorów obrazów

Mimo to ich badania wykorzystują propagację wsteczną do szkolenia sieci, ale wykorzystują algorytmy genetyczne, aby znaleźć dobrą architekturę. Jeszcze jedna rzecz do wspomnienia: aby dostać się do ich najlepszego modelu - wymagało to ogromnej mocy obliczeniowej.

Pierwszy artykuł opublikowali w 2017 r., Aw 2018 r. Otrzymali ulepszoną wersję . Możesz o tym przeczytać w swoim blogu

Istnieją inne badania dotyczące wyszukiwania architektury sieci, ale używają one optymalizacji bayesowskiej zamiast algorytmów genetycznych

Vadym B.
źródło