Генетические алгоритмы являются одной из форм метода оптимизации. Часто стохастический градиентный спуск и его производные являются лучшим выбором для оптимизации функций, но генетические алгоритмы все еще иногда используются. Например, антенна космического корабля НАСА ST5 была создана с использованием генетического алгоритма:
Когда методы генетической оптимизации являются лучшим выбором, чем более распространенные методы градиентного спуска?
Ответы:
Генетические алгоритмы (GA) - это семейство эвристических методов, которые эмпирически хороши во многих случаях, предоставляя достойный ответ, хотя они редко бывают лучшим вариантом для данной области.
Вы упоминаете алгоритмы на основе производных, но даже при отсутствии производных существует множество алгоритмов оптимизации без производных, которые работают намного лучше, чем GA. Посмотрите это и этот ответ для некоторых идей.
Общим для многих стандартных алгоритмов оптимизации (даже для методов без производных) является предположение о том, что базовое пространство является гладким многообразием (возможно, с несколькими дискретными измерениями), а функция оптимизации несколько хорошо себя ведет.
Однако не все функции определены на гладком многообразии. Иногда вы хотите оптимизировать по графу или другим дискретным структурам (комбинаторная оптимизация) - здесь есть специальные алгоритмы, но GA также будут работать.
Чем больше вы переходите к функциям, определенным в сложных, дискретных структурах, тем больше ГА могут быть полезны, особенно если вы можете найти представление, в котором генетические операторы работают наилучшим образом (что требует большой ручной настройки и знания предметной области).
Конечно, будущее может привести к тому, что мы вообще забудем ГА и разработаем методы для отображения дискретных пространств в непрерывное пространство , а также используем механизм оптимизации, который у нас есть для непрерывного представления.
источник
Генетические методы хорошо подходят для многокритериальной оптимизации, когда градиентный спуск посвящен монокритериальной оптимизации. Градиентный спуск позволяет найти минимум функций, когда существуют производные и существует только одно оптимальное решение (если мы исключаем локальные минимы). Генетический алгоритм может использоваться в многокритериальных задачах и приводить к целому ряду решений, каждый из которых является индивидуумом популяции, эволюционировавшей из начальной популяции. Значения для оптимизации - это фенотипы индивидов, и может быть несколько фенотипов. Как правило, ни один из индивидуумов не имеет одновременно лучшего значения каждого фенотипа, поэтому существует не только одно решение. Люди в окончательной популяции, которые являются решениями оптимизации, являются частью «фронта Парето» и помечены как «Парето ранг один» физические лица. Это означает, что по сравнению с другими людьми, имеющими одинаковую эффективность для каждого фенотипа, они по крайней мере лучше для одного фенотипа, чем другие.
источник
Лучший в каком смысле?
По моему опыту, ГА являются одним из самых прагматичных оптимизаторов. В то время как многие более точные алгоритмы требуют времени и усилий для формализации реальных проблем в математическом мире, GA могут обрабатывать любую функцию стоимости со сложными правилами и ограничениями (GA связаны, в конце концов, с подходом к исполнению, а не с конкретными расчетами). Этот процесс прост, и вы можете попробовать много подходов для исследовательской работы.
Я также ценю возможность повторно использовать прошлые решения алгоритма для будущих прогонов, что хорошо для повторных задач.
Концептуально, генетический алгоритм может быть представлен хэш-картой функций и подходит для таких функциональных языков, как Clojure, который также является языком, где вы можете очень быстро достичь больших результатов.
Генетические алгоритмы также могут быть вложенными: функция стоимости одного GA может быть GA! Эти алгоритмы используют преимущества современного аппаратного обеспечения и инфраструктуры, которые позволяют им вычислять очень большую совокупность, так что даже при простых операциях мутации / выделения вы все равно сможете добиться хороших результатов.
Даже для простых задач, таких как поиск минимума волновой функции, GA не так уж плохи и могут достичь приличной точности за приемлемое время.
Так что да, аналитические решения могут иметь более быстрое время выполнения и точность, но время, необходимое для их получения, перевешивает часто ожидаемые выгоды! Так когда ? Почти каждый раз для меня, по крайней мере, для мета-оптимизации.
источник