2013-09-25 3 views
3

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

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

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

Может кто-то пожалуйста, объясните

+0

Adeeb, уже было указано, что они не попадают в обучение подкрепления. Генетические алгоритмы относятся к категории эволюционных алгоритмов. Если вы хотели что-то, что использовали «подкрепление», загляните в нейронные сети. –

ответ

4

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

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

Другой пример должен был бы интерпретировать бинарную строку как decision tree

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

EDIT: У вас есть сеть внизу с тремя соединениями, и вы решили кодировать каждый вес четырьмя битами. Тогда ваша двоичная строка может, в простейшем кодировании, быть этими 3 весами сцепленными.

enter image description here

+0

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

+0

Затем вы будете кодировать информацию о своей нейронной сети, такую ​​как узлы, слои и веса в двоичной строке. Возможно, вы могли бы начать с статической топологии и только кодировать вес соединения в двоичной строке. – PureW

+0

Я получаю то, что вы сейчас говорите, мой ANN имеет 3 слоя, поэтому я могу просто добавить другие веса? – Adeeb

Смежные вопросы