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

Ну, в nhibernate, по крайней мере, сессии. Доберитесь (идентификатор) загрузит объект из базы данных, в то время как сессия. Загрузка (идентификатор) только создает объект прокси к нему, не оставляя Ваш сервер. Работы точно так же, как любое лениво загруженное свойство в Вашем POCOs (или POJOs:). Можно тогда использовать этот прокси в качестве ссылки на сам объект для создания отношений, и т.д.

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

134
задан nbro 4 July 2018 в 19:04
поделиться

8 ответов

From wikipedia:

A genetic algorithm (GA) is a search technique used in computing to find exact or approximate solutions to optimization and search problems.

and:

Neural networks are non-linear statistical data modeling tools. They can be used to model complex relationships between inputs and outputs or to find patterns in data.

If you have a problem where you can quantify the worth of a solution, a genetic algorithm can perform a directed search of the solution space. (E.g. find the shortest route between two points)

When you have a number of items in different classes, a neural network can "learn" to classify items it has not "seen" before. (E.g. face recognition, voice recognition)

Execution times must also be considered. A genetic algorithm takes a long time to find an acceptable solution. A neural network takes a long time to "learn", but then it can almost instantly classify new inputs.

124
ответ дан 23 November 2019 в 23:55
поделиться

GAs generate new patterns in a structure that you define.

NNs classify (or recognize) existing patterns based on training data that you provide.

GAs perform well at efficiently searching a large state-space of solutions, and converging on one or more good solutions, but not necessarily the 'best' solution.

NNs can learn to recognize patterns (via training), but it is notoriously difficult to figure out what they have learned, i.e. to extract the knowledge from them once trained, and reuse the knowledge in some other (non-NN).

37
ответ дан 23 November 2019 в 23:55
поделиться

There are many similarities between them, so I will only try to outline their differences.

Neural networks

Are able to analyze online patterns (those that change over time). Generally, this is a time-varying sample that needs to be matched and predicted.

Examples:

  • Graph extrapolation
  • Facial recognition

Genetic algorithms

Used when you can code attributes that you think may contribute to a specific, non-changing problem. The emphasis is on being able to code these attributes (sometimes you know what they are) and that the problem is to a large degree unchanging (otherwise evolutions don't converge).

Examples:

  • Scheduling airplanes/shipping
  • Timetables.
  • Finding the best characteristics for a simple agent in an artificial environment
  • Rendering an approximation of a picture with random polygons
22
ответ дан 23 November 2019 в 23:55
поделиться

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

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

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

7
ответ дан 23 November 2019 в 23:55
поделиться

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

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

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

42
ответ дан 23 November 2019 в 23:55
поделиться

You can use genetic algorithms as an alternative to the backpropagation algorithm to update weights in neural networks. For an example of this refer to: http://www.ai-junkie.com/ann/evolved/nnt1.html.

14
ответ дан 23 November 2019 в 23:55
поделиться

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

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

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

26
ответ дан 23 November 2019 в 23:55
поделиться

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

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

5
ответ дан 23 November 2019 в 23:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: