Хотя байесовский анализ охватывает гораздо больше, наивный байесовский алгоритм, хорошо известный по спам-фильтрам, основан на одном очень фундаментальном допущении: все переменные практически не зависят друг от друга. Так, например, при фильтрации спама каждое слово обычно рассматривается как переменная, что означает, что если в письме содержится слово «виагра», то это знание влияет на вероятность того, что оно также будет содержать слово «лекарство» (или «foo»). или "спам" или что-нибудь еще). Интересно, что это предположение совершенно очевидно неверно, когда речь идет о естественном языке, но все же удается получить разумные результаты.
Теперь один из способов, с помощью которого люди иногда обходят предположение о независимости, состоит в том, чтобы определить переменные, которые являются технически комбинациями вещей (например, поиск токена «купить виагру»). Это может сработать, если вы знаете, какие конкретные случаи нужно искать, но в целом в игровой среде это означает, что вы вообще ничего не помните. Поэтому каждый раз, когда вам нужно двигаться, выполнять действие и т. Д., Оно совершенно не зависит от всего, что вы делали до сих пор. Я бы сказал, что даже для самых простых игр это очень неэффективный способ изучения игры.
Я бы предложил вместо этого использовать q-learning. Большинство примеров, которые вы найдете, обычно так или иначе являются простыми играми (например, научиться ориентироваться на карте, избегая стен, ловушек, монстров и т. Д.). Усиленное обучение - это тип обучения в режиме онлайн без присмотра, которое действительно хорошо работает в ситуациях, которые могут быть смоделированы как агент, взаимодействующий с окружающей средой, такой как игра (или роботы). Он делает это, пытаясь выяснить, каково оптимальное действие в каждом состоянии среды (где каждое состояние может включать столько переменных, сколько необходимо, гораздо больше, чем просто «где я»). Хитрость заключается в том, чтобы поддерживать достаточное количество состояний, которые помогают боту принимать правильные решения, не имея четкой точки в «пространстве» вашего состояния для каждой возможной комбинации предыдущих действий.
Проще говоря, если бы вы строили шахматного бота, у вас, вероятно, возникли бы проблемы, если бы вы попытались создать политику принятия решений, которая принимала бы решения на основе всех предыдущих ходов, начиная с набора всех возможных комбинаций шахматных ходов. растет очень быстро. Даже более простая модель, в которой каждая фигура находится на доске, по-прежнему представляет собой очень большое пространство состояний, поэтому вам нужно найти способ упростить то, что вы отслеживаете. Но обратите внимание, что вы можете отслеживать какое-то состояние, чтобы ваш бот не просто пытался снова и снова превращать левый член в стену.
Статья в Википедии довольно жаргонизна, но этот урок намного лучше переводит концепции в примеры из реального мира.
Единственный улов в том, что вам нужно уметь определять награды, чтобы обеспечить их как положительное «подкрепление». То есть вы должны иметь возможность определять состояния, в которые пытается добраться бот, иначе это будет продолжаться вечно.