Разница между нейронной сетью и эволюционным алгоритмом - PullRequest
14 голосов
/ 25 марта 2012

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

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

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

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

Используются ли эволюционные алгоритмы и нейронные сети в одних и тех же областях?

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

Спасибо!

Ответы [ 4 ]

19 голосов
/ 25 марта 2012

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

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

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

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

6 голосов
/ 25 марта 2012

Альфа ответ идеально.Вот только изображение, чтобы проиллюстрировать то, что он сказал:

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

4 голосов
/ 27 января 2017

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

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

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

0 голосов
/ 25 марта 2012

Я не эксперт, но на основании того, что я знаю из области ..

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...