ПрограммированиеФорумИгровая логика и ИИ

Есть ли игры использующие самообучающиеся нейросети в логике принятия решений? (6 стр)

Страницы: 13 4 5 6 7 8 Следующая »
#75
16:57, 6 сен 2015

BalticBear
> В моей игре нейросеть решает задачу принятия решения. Каждый нейрон - это
> действие, которое способен выполнять агент (например, атака ближнего боя, атака
> дальнего боя, самолечение, прыжок в сторону и т.д.). Сетка работает по принципу
> "победитель забирает всё", то есть срабатывает нейрон с наибольшей суммой.
Но чтобы принять решение, надо понимать пути приведения решения в жизнь. Т.е. без связи нейросети с пасфайндером не обойтись. А для этого придется карту предcтавить нейросетью или подобной ей структурой (как сеть независимых вычислительных элементов).

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

#76
17:56, 6 сен 2015

snv
> Но чтобы принять решение, надо понимать пути приведения решения в жизнь.
Существует ряд сигналов, подаваемых на вход нейрона, которые кратко описывают ситуацию. Например, находится ли агент под атакой ближнего или дальнего боя, сколько врагов взяли его в цель, сколько врагов окружили ячейку агента, в каком состоянии находится агент (его здоровье, энергия, мана и т.д.). Если агент выбирает цель, то он получает информацию по состоянию каждого врага на поле боя.
Блок вариантов для отступления представляет собой 6 нейронов - каждый для своего направления. И каждый нейрон обрабатывает входные данные независимо от другого. Входные данные представляют собой оценку каждого врага, нацеленного на агента: сравнивается здоровье, определяется близко он или далеко, а также в каком направлении он расположен.

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

#77
18:44, 6 сен 2015

BalticBear
Это все понятно, так же начинал. А как ты делал обучающую серию?
На автомате  (на реальных раскладах и последствиях) оказалось слишком муторно и смутно представлялось в реализации.
Рисовать таблицы вручную— Ну его нахрен.

#78
20:43, 6 сен 2015

Mira
Поначалу посылал рэндом на вход сети и смотрел как она себя ведет. Потом сталкивал двух агентов лбами и наблюдал как они меняют поведение, либо сам сражался с одним из агентов. В общем, да, получается работал с реальными раскладами и последствиями.
У меня использовались однослойные сети, а они быстро обучаются. Поэтому тенденции в изменении поведения обнаруживались скоро. И по ним уже делались поправки, если они были чересчур неадекватными.
Про текущую версию нейросети, используемую в данной игре, тоже нельзя сказать, что она идеальна. Агенты не обучаются всегда оптимальным образом. Случаются синдромы "труса" (когда агент боится близко приближаться к врагам, после полученных в прошлом тумаков) или "милосердия" (когда микроб отказывается добивать тяжелораненого и переключается на более здоровую цель. Не знаю даже, откуда они это берут. Такое встречается только у микробов). То есть, как у людей - всё очень сложно )

#79
22:38, 16 сен 2015

а таки что с вашим сайтом?
BalticBear
> Случаются синдромы "труса"
вы таки не можете проверить состояние автомата данного микроба?
П.с. интересно, состояние автомата "милосердного" микроба

#80
11:02, 17 сен 2015

philosoph
А что с сайтом не так, не открывается? Проверил только-что, работает.

> вы таки не можете проверить состояние автомата данного микроба?
> П.с. интересно, состояние автомата "милосердного" микроба
Я могу посмотреть состояние весовых коэффициентов. Например, вот весовые коэффициенты "милосердного" микроба на нейроне атаки ближнего боя:

--Melee
{A_Health1=0, A_Health2=5, A_Health3=3, A_Health4=5, A_Energy1=5, A_Energy2=4, A_Energy3=5, 
A_Energy4=5, A_Mana1=5, A_Mana2=5, A_Mana3=4, A_Mana4=5, A_Act_Idle=-3, A_Act_Jump=5, 
A_Act_Melee=-1, A_Act_Moving=5, A_Act_Ranged=5, A_Act_Shield=5, A_Act_Heal=5, 
A_Targeted1=3, A_Targeted2=3, A_Targeted3=4, A_UnderRAttack=5, A_UnderMAttack=-5, 
A_EnemiesAround1=5, A_EnemiesAround2=5, A_EnemiesAround3=3, O_Health1=-5, O_Health2=5, O_Health3=5, O_Health4=4, 
O_Energy1=5, O_Energy2=5, O_Energy3=5, O_Energy4=5, O_Mana1=4, O_Mana2=4, O_Mana3=5, O_Mana4=5, 
O_Act_Idle=2, O_Act_Jump=-1, O_Act_Melee=2, O_Act_Moving=5, O_Act_Ranged=5, O_Act_Heal=5, 
O_Targeted1=5, O_Targeted2=4, O_Targeted3=-5, O_UnderRAttack=5, O_UnderMAttack=-1, 
O_EnemiesAround1=5, O_EnemiesAround2=5, O_EnemiesAround3=4, R_Health_LT_Other=5, R_Health_GT_Other=-1, R_IsOtherCloseToMe=5}

O_Health1=-5, O_Health2=5, O_Health3=5, O_Health4=4 - это веса на сигналах, указывающих уровень здоровья цели. Видно, что агент предпочитает цели со здоровьем 25-100% от максимума, а к целям со здоровьем менее 25% относится отрицательно. Более того, судя по этим весам: R_Health_LT_Other=5, R_Health_GT_Other=-1, агенту вообще нравится атаковать только цели, у которых здоровье больше, чем у него.
Но, по значениям весов нельзя определить, как они были установлены. Можно только догадываться, какой такой жизненный опыт привел агента к этому поведению.

#81
11:20, 17 сен 2015

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

#82
11:32, 17 сен 2015

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

#83
11:55, 17 сен 2015

BalticBear
> Проверил только-что, работает.
работает, но почему то не в моём FF. ( Но да обходным путём зашел туды.

BalticBear
> Но, по значениям весов нельзя определить
логи, логи были бы полезны. )  А иначе как понимать, что НС работает с багами?

П.с. это таки не ИИ, а хороший, развернутый конечный автомат. Хотя, его и пытаются назвать ИИ, коим он не является. А впрочем, как первый шаг к оному, такая НС имеет вполне шанс жить)

#84
12:48, 17 сен 2015

philosoph
> работает, но почему то не в моём FF
Странно, у меня в Firefox 38-ой версии открывает... Обновил до 40-ой. Тоже открывает. Видимо настройки какие-то мешают.

philosoph
> логи, логи были бы полезны. )  А иначе как понимать, что НС работает с багами?
Согласен, тут логи бы не помешали. Первое время делал их, пока нейронов и входных сигналов было немного и агентов было всего два. Потом перестал, слишком много текста стало приходить.

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

#85
13:14, 17 сен 2015

Биологический организм это тоже конечный автомат только более совершенный.
Это все будет интереснее когда аппаратную поддержку сетям. Типа NPU )
Пока меня их скорость напрягает, в игре кроме как считать сети бывает ещё и графон и прочее. Для игр типа agar можно

#86
13:27, 17 сен 2015

Mira
> Биологический организм
ошибаетесь.

BalticBear
> если бы не процесс обучения
Ну дык, поэтому это развернутый конечный автомат. Хотя с учётом "обучения" вашего автомата, фиксированный автомат работал бы быстрее. Кстати, с помощью вашего автомата, можно составлять идеальные модели поведения для разных ситуаций. И в итоге написать великолепный конечный автомат, с огромным числом реакций на самые различные ситуации. В общем то использовать ваш автомат можно самым разнообразным способом)

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

BalticBear
> Видимо настройки какие-то мешают
есть такое.

BalticBear

> слишком много текста стало приходить.
а нужна...оптимизация логов. )

#87
14:16, 17 сен 2015

philosoph
Таким образом, можно любую логику принятия решений назвать конечным автоматом )

Как происходит принятие решения в конкретной ситуации? Есть некий набор вариантов решений (т.е. состояний). В ходе анализа (т.е. вычисления функций переходов к состояниям) текущей ситуации (т.е. входных данных для функций) выбирается одно из решений (т.е. происходит переход в состояние с наилучшим результатом функции). Следовательно, логика принятия решений является по сути конечным автоматом )

#88
14:50, 17 сен 2015

BalticBear
> любую логику принятия
ошибаетесь.

BalticBear
> некий набор вариантов решений
ошибаетесь. Вот в этом конкретном месте.  И именно эту ошибку люди делающие ботов любят более всего)

BalticBear
> в конкретной ситуации?
да и тут тоже. Дело в том, что конкретная ситуация имеет огромное число абстракций и точек зрения даже со стороны одного объекта. От самых локализованных до самых глобальных. )

#89
15:28, 17 сен 2015

philosoph
Даже у людей набор вариантов решений не бесконечен. Он ограничен их возможностями. Человек не может принять решение, которое физически не может сформироваться в его сознании.

philosoph
> Дело в том, что конкретная ситуация имеет огромное число абстракций и точек
> зрения даже со стороны одного объекта. От самых локализованных до самых
> глобальных. )
Абстракции и точки зрения - это лишь обработанные когда-то и сохраненные в памяти входные данные. Весовые коэффициенты у моих агентов можно назвать аналогом абстракций. Они меняются в зависимости от пережитого опыта агента. В итоге, у каждого агента появляется своя точка зрения на то, как поступать в конкретной ситуации. Конечно, их восприятие и возможности не идут ни в какое сравнение с тем, на что способен человек. У них всего 11 нейронов, а не 1011 )

Страницы: 13 4 5 6 7 8 Следующая »
ПрограммированиеФорумИгровая логика и ИИ

Тема в архиве.