2017-02-10 15 views
-2

У меня есть простая реализация простой игры на Python.Понимание основ нейронной сети на маленьком примере игры

Игра имеет простые правила:

  • 2 игрока играют друг против друга
  • Каждый игрок имеет 10 карт
  • Каждый раунд игроки играют карты одновременно
  • Игрок, который сыграл выше карта выигрывает раунд
  • Когда карточек больше не осталось Player с наибольшим количеством выигранных раундов:

Теперь я хотел построить ИИ с использованием нейронной сети

Существует INIT-функция, chooseMove-Function (здесь вы можете увидеть враги в последний раз играли карты) и GameOver-Function (здесь вы можете увидеть результат игры)

Теперь мой вопрос:

-> Как подойти к этому? Я строю различные сети для разных ходов (1. перемещение, 2. перемещение, ....) или одно для всего? Что бы я определил как ввод и вывод, и как я могу сказать сети, какая победа и какая потеря?

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

Я знаю, что это все очень простые вопросы, и, возможно, показывает, что мое понимание NN не очень хорошее, но я подумал, что это может помочь мне понять основы NN.

ответ

1

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

  1. Определите проблему как классификацию или выбор. например Программа должна выбрать, какую карточку играть от данной руки.
  2. Нормализовать ваши данные до фиксированной длины.
  3. Получить данные обучения, например. Записи игр в формате база данных
  4. Создать NN
  5. Тренируйте NN с помощью перекодировать игры

Каждый точки над сложными темами и несколько сот страниц может быть написано о каждом из них.

Могу ли я предложить другой вариант, если вы хотите что-то простое: Написание NN, который решает, должен ли игрок в покер складываться в начале или присоединиться к игре, намного ближе к типичной проблеме NN. Ваш вход - 2 карты и размер покерного стола (6 или 10), чтобы он оставался простым. Ожидается, что NN примет решение «да-нет» в качестве вывода. Это проблема классификации с низким количеством параметров.Вам необходимо получить данные о подготовке, которые должны быть записи игр, которые играют люди. Базовая логика состоит в том, чтобы проверить, что было стартовой рукой игрока, и проверить, сколько денег игрок выиграл в этой игре, что определяет ожидаемое решение о том, сбросить карты или присоединиться к игре в начале. Вы можете выбрать для этого сеть RBF. Определение алгоритма обучения и представление данных о тренировках обучат ваш NN. Вы можете выбрать случайную прогулку в качестве своего первого метода обучения. После тренировки ваш NN должен иметь возможность решить, следует ли играть с данной рукой или нет. База данные покера доступны из Университета Альберты, которые могут быть использованы для создания обучающих данных:
http://poker.cs.ualberta.ca/irc_poker_database.html

+0

Я не могу выбрать, что, как правильный ответ, но я думаю, что нет правильного ответа на мой вопрос, так что .. Но большое спасибо за объяснение, а также за вашу предложенную идею! Я подумаю немного больше о своей проблеме, а затем я могу перейти на более простой :) – greece57

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

  • Нет связанных вопросов^_^