Когда использовать генетические алгоритмы против использования Neural Networks?

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

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

Ответ 1

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

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

и

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

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

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

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

Ответ 2

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

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

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

Ответ 3

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

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

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

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

Ответ 4

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

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

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

Ответ 5

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

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

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

Примеры: экстраполяция графа. Распознавание лица.

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

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

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

Ответ 6

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

Ответ 7

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

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

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

Ответ 8

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

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