Подтвердить что ты не робот

Разница между нейронной сетью и эволюционным алгоритмом

У меня хорошая основа для эволюционных алгоритмов, поэтому теперь я начал читать об искусственных нейронных сетях. Я столкнулся с этим   http://www.ai-junkie.com/ann/evolved/nnt2.html, показывая, как использовать ANN для развития Танков, которые собирают мины. Он использует GA для развития входных весов на каждом нейроне.

Я знаю, что могу использовать GA (без ANN) для решения той же проблемы. Я уже создал Tetris Bot, используя только GA, чтобы оптимизировать весы в функции оценки сетки (проверьте мой блог http://www.bitsrandomicos.blogspot.com.br/).

Мой вопрос: какова концептуальная/практическая разница между использованием ANN + GA в ситуации, когда я мог бы использовать только GA? Я имею в виду, мой Tetris Bot ANN (я так не думаю).

Есть несколько связанных вопросов об этом, но я не мог найти ответ:

Являются ли эволюционные алгоритмы и нейронные сети в тех же доменах?

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

Спасибо!

4b9b3361

Ответ 1

A генетический алгоритм - это алгоритм оптимизации.

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

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

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

Ответ 2

Ответ alfa - это прекрасно. Вот только изображение, чтобы проиллюстрировать, что он сказал:

enter image description here Мета-оптимизатор = Нет (но может быть)
Оптимизатор = генетический алгоритм
Проблема = Bot Tetris (например, ANN)

Ответ 3

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

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

Проверьте этот пример "игры AI": https://synaptic.juancazala.com/#/
(обратите внимание, насколько это просто, все, что вам нужно сделать, это дать им достаточную подготовку, вам не обязательно знать что-то об игре AI), и как только это будет достаточно хорошо, все, что вам нужно сделать, это "загрузить" память и запустите его, когда это необходимо)

Ответ 4

Я не эксперт, но основанный на том, что я знаю с поля.

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

Короче говоря, до тех пор, пока у него есть кивка в сторону какого-то основного неврологического субъекта, он может быть ANN, даже если он использует какую-то форму GA.

Если вы используете GA, это не обязательно ANN.