Самообучение ИИ
[ Поделиться ]
[ Спасибо! ]
|
10:09
Первое что в современном обществе приходит на ум при словосочетании «самообучение ИИ» это словосочетание «Нейронные сети» - что в корне неверное мнение.
Вспомним основы философии, и посмотрим, так уже необходимы нейронные сети к каком-либо обучении:
Процесс познания делится на две ступени, которые порождают одна другую.
1. Теория.
2. Практика.
Теория в ИИ это его умение делать предположения на основе имеющейся у него информации.
Практика это не что иное как сбор информации.
Поясню это на шашках.
Допустим вы садитесь играть с ИИ который еще вообще не обучался.
На момент начала игры ИИ должен знать лишь основные правила: как ходить можно, как нельзя, и при каких условиях засчитывается поражение.
Партия 1:
ИИ за черных.
Вы за белых.
ИИ ходит хаотично, используя обычный рандом.
Вы с легкостью навязываете ему свою стратегию и выигрываете партию.
Партия 2:
ИИ за белых.
Вы за черных.
ИИ сначала ходит как вы в прошлой партии, тупо повторяя за вами.
Вы легко обрываете собственную стратегию.
ИИ опять ходит рандомно и проигрывает.
Партия 3:
ИИ за черных.
Вы за белых.
Вы начинаете стратегию использованную в Партии 1.
ИИ обрывает эту стратегию вашим же ходом из Партии 2.
Вы выбираете новую стратегию.
ИИ еще не знает эту стратегию, поэтому ходит рандомно.
Думаю вы уже поняли в чем дело. Пока ИИ ходит рандомно, он одновременно учится вашей стратегии, которую вы ему невольно показываете.
У ИИ в отличии от человека идеальная память, он не забудет не одной партии.
Но тем не менее вначале он будет только проигрывать.
Он будет проигрывать пока не изучит Все ваши стратегии в шашках.
Это займет много партий, но с каждой из них ИИ будет становится определенно более опасным противником.
Теперь когда вы поняли как механизм обучения будет выглядеть снаружи, рассмотрим каким алгоритмом его можно реализовать внутри.
Алгоритм ИИ
ИИ должен прежде всего знать какое положение для какой стороны выгодно.
То есть у него должны быть конкретные записи:
...
Три шашки черных там то.
Одна шашка белых там то.
Белые из этого положения выиграли 0 раз.
Ничья : 0 раз.
Черные выиграли 10 раз.
---------------------------------------
Три шашки черных там то.
Две шашки белых там то.
Белые выиграли 1 раз.
Ничья 2 раза.
Черные выиграли 6 раз.
…
Имея такие записи написать алгоритм выбора хода легче легкого.
ИИ просто оценит на основе имеющихся у него ходов, какой из них его приведет к наиболее выгодному положению.
Для него нет «хороших» ходов, есть лишь переходы между положениями шашек.
Чем больше этих положений он «знает», тем сильнее он играет.
Вначале ИИ будет играть хуже ребенка.
Делая каждый раз ход на основе рандомного выбора, он первую свою партию будет лишь записывать положения шашек.
Постепенно радомных ходов у ИИ будет все меньше, а записанных положений все больше.
Он будет явно избегать уже известных проигрышных положений.
И с каждой партией все больше приближаться к Полному знанию всех положений в шашках.
Нюансы
Первое на что мы бы хотели повлиять, это естественно на скорость обучения ИИ.Для этого можно сделать как две вещи:1. Заставить ИИ всегда выбирать те ходы которые приводят к неизвестным ранее положениям.2. Заставить ИИ играть самого с собой.Если использовать оба метода одновременно то мы получим так называемый «режим обучения».В этом режиме ИИ посредственно играет, но быстро учится.Но как только ИИ переберет все положения в шашках, используется первый метод или нет, это потеряет всякое значение.Вторая проблема уже техническая и требует отдельной статьи.Дело в том что если одна запись будет занимать не более 100 байт по самым грубым оценкам.То все записи будут занимать более сотни террабайт.Конечно все положения и не нужны, часть из них не может возникнуть в игре.Другую часть можно убрать искусственно, например дав указание ИИ сдаваться например при условиях с разницей в счете более чем в шесть шашек.Или сделать следующий шаг.Научить ИИ находить в положениях шашек закономерности, и постепенно переводить его решения на основу закономерностей.Или наоборот его ограничить, запрещая создавать более некоторого количества записей.ПослесловиеЭтим я хотел прежде всего сказать что не стоит бояться использовать даже в самых простых играх ИИ. Ведь чем проще игра тем проще написать ИИ для нее! Сложность ИИ прежде всего зависит от количество вариантов выбора. И если у самого игрока всего три варианта выбора, насколько же сложен будет ИИ для такой игры? Вообщем дерзайте!
Категория: Разработка игр | Просмотров: 6158 | Добавил: Ellementul (07.10.2015) | Рейтинг: 5.0/1 Автор: Иван Суров | | |
HTML ссылка на материал: BB ссылка на материал: |
Всего комментариев: 1 | ||
| ||