Почему генетические алгоритмы не используются для оптимизации нейронных сетей?

13

Насколько я понимаю, генетические алгоритмы являются мощными инструментами для многоцелевой оптимизации.

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

Также я считаю, что концептуально обучение NN с GA возможно. Мне было интересно, почему они не используются на практике? Это вопрос производительности?

cat91
источник

Ответы:

5

Обучение нейронных сетей (NN) с использованием генетических алгоритмов (GA) не только осуществимо, но есть некоторые нишевые области, где производительность достаточно высока, чтобы ее можно было часто использовать. Хорошим примером этого является Neuroevolution для расширения топологий или NEAT , который является успешным подходом к созданию контроллеров в простых средах, таких как игры.

В более общем случае подход не подходит для больших, глубоких сетей с множеством параметров для настройки.

Генетические алгоритмы и другие глобальные поиски оптимальных параметров надежны в отличие от алгоритмов, основанных на градиенте. Например, вы можете обучить NN активациям пошаговых функций или любым другим недифференцируемым функциям активации. У них есть недостатки в другом месте. Одна вещь, актуальная в случае GA, используемых для NN, состоит в том, что весовые параметры являются взаимозаменяемыми в некоторых комбинациях, но сильно взаимозависимы в других комбинациях. Объединение двух одинаково хороших нейронных сетей с разными параметрами - что вы бы сделали в перекрестном соединении в GA - обычно приводит к третьей сети с низкой производительностью. Успех NEAT частично заключается в поиске способа решения этой проблемы путем «расширения» связей NN и сопоставления их между аналогичными нейронными сетями.

Градиентный подход гораздо эффективнее. В общем, и не только в области NN, если вы можете вычислить градиент функции относительно параметров, то вы можете найти оптимальные параметры быстрее, чем большинство других методов оптимизации. Точный градиент гарантирует, по крайней мере, небольшое улучшение от одной оценки, и большинство других оптимизаторов попадают в парадигму генерации и повторной попытки, которая не может дать такого рода гарантию. Оказалось, что слабость стремления найти локальные оптимумы не является серьезным препятствием для функций потерь в NN, и с некоторой степенью успеха справляется с использованием расширений базового градиентного спуска, таких как импульс, RPROP, Адам и т. Д.

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

Нил Слэйтер
источник
1

На самом деле, Google Brain уже сделал подобное для классификаторов изображений

Тем не менее, их исследования используют обратное распространение для обучения сетей, но они используют генетические алгоритмы, чтобы найти хорошую архитектуру. Еще одна вещь, которую стоит упомянуть: чтобы получить лучшую модель - им потребовалось огромное количество вычислительных ресурсов.

Они опубликовали первую статью в 2017 году, а в 2018 году получили улучшенную версию . Вы можете прочитать об этом в их блоге

Есть другое исследование для поиска сетевой архитектуры, но они используют байесовскую оптимизацию вместо генетических алгоритмов.

Вадим Б.
источник