Чому генетичні алгоритми не використовуються для оптимізації нейронних мереж?


13

З мого розуміння, генетичні алгоритми є потужним інструментом оптимізації багато об'єктів.

Крім того, навчання нейронних мереж (особливо глибоких) є важким та має багато питань (невипуклі функції витрат - локальні мінімуми, зниклі та вибухові градієнти тощо).

Крім того, я вважаю, що концептуальна підготовка NN з GA є можливою. Мені було цікаво, чому їх не використовують на практиці? Це питання продуктивності?

Відповіді:


5

Навчання нейронних мереж (NN) з генетичними алгоритмами (GA) не лише здійсненно, є деякі сфери, в яких продуктивність достатньо хороша, щоб часто використовуватися. Хорошим прикладом цього є Нейроеволюція розширення топологій або NEAT , який є вдалим підходом до генерації контролерів у простих середовищах, таких як ігри.

Однак у більш загальному випадку підхід не відповідає масштабам великих, глибоких мереж з великою кількістю параметрів.

Генетичні алгоритми та інші глобальні пошуки оптимальних параметрів є надійними, оскільки алгоритми на основі градієнта не є. Наприклад, ви можете тренувати мережу NN з активацією крокової функції або будь-якими іншими недиференційованими функціями активації. Вони мають слабкі місця в інших місцях. Одне з важливих випадків у випадку GA, що використовується для NN, - це те, що вагові параметри є взаємозамінними в деяких комбінаціях, але сильно залежать від інших комбінацій. Об'єднання двох однаково хороших нейронних мереж з різними параметрами - що ви зробили б при перехресті в GA - зазвичай призводить до третьої мережі з низькою продуктивністю. Успіх NEAT полягає частково в пошуку способу вирішення цього питання шляхом "розростання" зв'язків мережі та їх співставлення між подібними нейронними мережами.

Підходи на основі градієнтів набагато ефективніші. Взагалі, і не тільки в області доменних мереж, якщо ви можете обчислити градієнт функції щодо параметрів, то ви можете знайти оптимальні параметри швидше, ніж більшість інших методів оптимізації. Точний градієнт гарантує принаймні невелике поліпшення в результаті однієї оцінки, і більшість інших оптимізаторів потрапляють у парадигму генерування та повторення, яка не може дати такого роду гарантії. Слабкість тенденції до пошуку локальної оптими виявилася не основною перешкодою для функцій втрат в NN, і вона була вирішена з певним успіхом, використовуючи розширення до базового градієнтного спуску, такого як імпульс, RPROP, Adam тощо.

На практиці у великій багатошаровій мережі градієнтні методи, ймовірно, на порядок швидші, ніж пошук GA, такий як NEAT для пошуку мережевих параметрів. Ви не знайдете жодних CNN-тренінгів, які вирішують ImageNet, або навіть MNIST, де GA знайшов ваги мережі без допомоги. Однак ГС або хоча б деякі їх варіанти не виключаються на 100%. Наприклад, цей блог 2017 року переглядає останні документи, включаючи великомасштабну еволюцію класифікаторів зображень, яка досліджує використання ГА для виявлення гіперпараметрів NN, що є важливим завданням у машинному навчанні, і не дуже простежується за допомогою градієнтних методів.


1

Власне, Google Brain вже зробив подібну річ для класифікаторів зображення

Проте їх дослідження використовують розмноження для тренування мереж, але вони використовують генетичні алгоритми для пошуку гарної архітектури. Ще одне, що слід зазначити: щоб дійти до їх найкращої моделі - це вимагало від них величезної кількості обчислювальної потужності.

Вони опублікували перший документ у 2017 році, а в 2018 році отримали вдосконалену версію . Про це можна прочитати у їхньому блозі

Існує ще одне дослідження пошуку мережевої архітектури, але вони використовують байесівську оптимізацію замість генетичних алгоритмів

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.