Автор оригинала: FreeCodeCapm Team.
Арини Джанакираман
Давайте посмотрим на это, АИ везде. А Face-Off Battle Разворачивается между Elon Musk и Марком Цукербергом на будущее АИ. Есть некоторые, которые его демонируют. И некоторые утопические взгляды утверждают, что АИ почти может быть боговым в том, чтобы помочь человечеству. Какая бы сторона твоих взглядов наклона, AI здесь, чтобы остаться.
Если вы взволнованы нырять вправо и Tinker с AI, то игры – отличное место для начала. Они были прошедшими для AI. Но прежде чем прыгать, вот немного истории о том, как игровое программирование развивалось через время.
История игрового программирования
Игровые программисты использовали для использования эвристических решений, если они должны делать образованные догадки. Мы видели это в самых ранних аркадах играх, таких как Понг и Пакман. Эта тенденция была нормой в течение очень долгого времени. Но разработчики игр могут предсказать, только так много сценариев и краевых случаев, поэтому ваш бот не работает в кругах!
Затем разработчики игр попытались подражать, как люди будут играть в игру, и смоделировали человеческий интеллект в игровом боте.
Команда в Deepmind сделала это путем обобщения и моделирования интеллекта, чтобы решить любую игру Atari, брошенную на нее. Игра BOT использовала глубокие учебные нейронные сети, которые не имеют знаний о том, что не имеют знаний. Они бьют игру, основанные на пикселях, которые они видели на экране, и их знание игровых управлений. Однако части Deepmind все еще не открыты, поскольку Google использует его, чтобы победить конкуренцию.
Демократизация АИ
Чтобы избежать концентрирования невероятной силы AI в руках несколько, элон-мускус, основанные Openai Отказ Это стремится к демократизации АИ, сделав его доступным для всех. Сегодня мы изучим тренажерный зал Openai и недавно выпущенную вселенную, которая построена на вершине тренажерного зала.
Симпатию Openai Обеспечивает простой интерфейс для взаимодействия и управления любым
Есть тысячи сред. Они варьируются от классических игр Atari, Minecraft и Grand Theft Auto, до Симуляции белкового склада которые могут вылечить рак. Вы можете создать бот и запустить его в любой среде, используя только несколько строк кода Python. Это слишком круто, чтобы не попробовать!
Проект (1 час)
Мы собираемся построить игровой бот AI, который использует технику «Усиление обучения». Я объясню это позже. Он будет автономно играть и победить игру Atari Neon Race Car (вы можете выбрать любую игру, которую вы хотите). Мы построим эту игру BOT, используя тренажерный зал Sprageai и библиотеки вселенной.
Шаг 1: Установка
Убедитесь, что у вас установлен Python или установить его с помощью доморящего. Вы можете скачать выделенный Python IDE, как Pycharm или iPython Notebook. Мне нравится держать его простым и использовать возвышенное. Наконец, установите тренажерный зал, вселенные и другие необходимые библиотеки, используя PIP.
// Install python using brewbrew install python3// Install the required OpenAI librariespip3 install gympip3 install numpy incrementalbrew install golang libjpeg-turbo pip install universe
Все в вселенной (средах) работает как контейнеры внутри докера. Если у вас его уже нет, установите и запустите Docker от здесь Отказ
Шаг 2: код игры бота
Игровой бот записан в Python, поэтому мы начнем, импортируя только два зависимости: тренажерный зал и вселенные.
import gymimport universe
Для этой игры BOT, давайте воспользуемся моим любимым детским игре, неоновые гоночные автомобили, как тестовая среда. Вы можете найти полный список других средов/игр, которые вы можете выбрать из здесь Отказ
Вселенная позволяет управлять как можно больше средств, сколько вы хотите, параллельно. Но для этого проекта мы будем использовать только один.
env = gym.make('flashgames.NeonRace-v0')env.configure(remotes=1) # creates a local docker container
Учебное обучение
Теперь мы добавляем игровую логику Bot, которая использует технику обучения подкрепления. Этот метод отмечает предыдущее состояние и вознаграждение игры (например, пиксели, которые видели на экране или на счет игры). Затем он подходит к действию для выполнения окружающей среды.
Цель состоит в том, чтобы сделать его следующее наблюдение лучше (в нашем случае – максимизировать счет игры). Это действие выбрано и выполняется агентом (игровой бот) с намерением максимизировать счет. Затем он применяется к окружающей среде. Окружающая среда записывает полученный государство и вознаграждение на основе того, было ли действие выгоднее или нет (выиграл игру?).
Теперь мы можем получить список наблюдений для каждой среды инициализированной с использованием метода env.reset ().
observation_n = env.reset()
Наблюдение здесь является средой-специфическим объектом. Он представляет собой то, что наблюдалось, например, необработанные данные пикселей на экране или статусе игры/оценки.
Следующим шагом является создание игрового агента с использованием бесконечного цикла, который непрерывно выполняет некоторые действия на основе наблюдения. В нашем боте давайте определим единственное действие неоднократно нажав стрелку вверх (глупый бот! Не стесняйтесь развивать его в сложный …). Действие здесь определяется типом события (keyEvent), клавиша управления (стрелка вверх (вверх стрелка) и настраивая его на true для всех наблюдений, что агент видит.
while True:action_n = [[('KeyEvent', 'ArrowUp', True)] for ob in observation_n]
Затем мы используем Env.Step ()
Метод использовать действие, чтобы двигаться вперед один раз. Это очень базовая реализация усиленного обучения.
observation_n, reward_n, done_n, info = env.step(action_n)
Метод шага здесь возвращает четыре переменных:
наблюдение_н
: Наблюдения окружающей средыReward_n
: Если ваше действие было выгодно или нет: + 1/-1DONE_N
: Указывает, является ли игра окончена или нет: Да/НетИнформация
: Дополнительная информация, такая как производительность и задержка для целей отладки
Вы можете запустить это действие одновременно для всех сред, в которых вы тренируете свой бот. Используйте метод env.render () для запуска бота.
env.render()
Теперь у вас есть игровой бот, готов конкурировать с окружающей средой. Полный код для этого базового бота, а также расширенная версия доступна в моем GitHub Repo здесь Отказ
Шаг 3: Запустите игровой бот
Теперь для веселой части: убедитесь, что Docker работает и запустить бот. Увидеть это в действии, избиение других автомобилей или не в состоянии сделать это. Если это не удается, продолжайте настроить свой бот, чтобы заставить его бить интеллект!
python gamebot.py
Продолжайте менять с AI и в конце концов, вы можете разблокировать режим Бога! # 100Дасофкод
Если вам понравилось это, пожалуйста, хлопайте ? с О, другие могут видеть это тоже! Подпишись на меня в Твиттере @ H аринилабс или М. Эдиум. Чтобы получить последние обновления на других историях или просто сказать привет:)
PS: Подпишитесь на мою рассылку здесь быть первым, чтобы получить новый новый контент, и он наполнен дозой вдохновения из мира # Жентех И да, мужчины тоже могут подписаться!