Когда следует использовать генетические алгоритмы в отличие от нейронных сетей? [закрытый]


есть правило (или набор примеров), чтобы определить, когда использовать генетические алгоритмы в отличие от нейронных сетей (и наоборот), чтобы решить проблему?

Я знаю, что есть случаи, в которых вы можете смешивать оба метода, но я ищу сравнение высокого уровня между этими двумя методами.

8 121

8 ответов:

из Википедии:

A генетический алгоритм (GA) - это метод поиска, используемый в вычислениях для найти точное или приблизительное решений к задачам оптимизации и поиска.

и:

нейронные сети являются инструментами моделирования нелинейных статистических данных. Они могут использоваться для моделирования сложных взаимосвязей между входами и выходами или найти шаблоны in данные.

Если у вас есть проблема, где вы можете оценить стоимость решения генетический алгоритм выполнить направленный поиск пространства решения. (Например, найти кратчайший маршрут между двумя точками)

когда у вас есть несколько элементов в разных классах, a нейронные сети можно "научиться"классификация элементы, которые он не "видел" раньше. (Например, распознавание лиц, голоса признание)

время выполнения также должно быть учтено. Генетический алгоритм занимает много времени, чтобы найти приемлемое решение. Нейронная сеть занимает много времени, чтобы" учиться", но затем она может почти мгновенно классифицировать новые входы.

газ генерирует новые шаблоны в структуре, которую вы определяете.

NNs классифицируют (или распознают) существующие шаблоны на основе данных обучения, которые вы предоставляете.

газ хорошо работает при эффективном поиске большого пространства состояний решений и сходится к одному или нескольким хорошим решениям, но не обязательно к "лучшему" решению.

NNs может научиться распознавать паттерны (через обучение), но, как известно, трудно понять, что они узнали, т. е. извлеките знания из них после обучения и повторно используйте знания в некоторых других (не-NN).

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

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

Это две принципиально разные сущности, но иногда проблемы они способны решать перекрытия.

вы сравниваете две совершенно разные вещи.

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

генетические алгоритмы являются методом оптимизации. Учитывая функцию f(x), вы хотите определить x, который минимизирует/максимизирует f (x).

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

нейронные сети

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

примеры:

  • графической экстраполяции
  • распознавание лиц

генетическая алгоритмы

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

примеры:

  • планирование самолетов / доставка
  • расписание.
  • поиск лучших характеристик для простого агента в искусственной среде
  • рендеринг приближения изображения со случайными полигонами

вы можете использовать генетические алгоритмы в качестве альтернативы алгоритм обратного распространения ошибки для обновления весов в нейронных сетях. Для примера этого обратитесь к: http://www.ai-junkie.com/ann/evolved/nnt1.html.

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

нейронные сети, с другой стороны, (обычно) работают на непрерывных данных (поплавки и т. д.). Типичным приложением для NNs является аппроксимация функции, где у вас есть набор X входов и набор y связанных выходов, но аналитическая функция f: X → Y.

конечно, есть тысячи вариантов обоих, поэтому линия между ними несколько размыта.

нет никакого эмпирического правила. Во многих случаях вы можете сформулировать свою проблему, чтобы использовать любой из них. Машинное обучение по-прежнему является активной областью исследований, и какая модель обучения может быть спорной.

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