Вопрос

Для проекта класса искусственного интеллекта мне нужно реализовать алгоритм обучения с подкреплением, который превосходит простую игру в тетрис.Игра написана на Java, и у нас есть исходный код.Я знаю основы теории обучения с подкреплением, но мне было интересно, есть ли у кого-нибудь в сообществе SO практический опыт работы с подобными вещами.

  1. Каковы были бы ваши рекомендации по внедрению усиленного обучения в игре "тетрис"?
  2. Есть ли какие-нибудь хорошие проекты с открытым исходным кодом, которые выполняют аналогичные задачи, которые стоило бы проверить?

Редактировать:Чем конкретнее, тем лучше, но приветствуются общие ресурсы по данному предмету.

Последующие действия:

Подумал, что было бы неплохо, если бы я опубликовал продолжение.

Вот решение (код и запись) В итоге у меня получилось для любых будущих студентов :).

Бумага / Код

Это было полезно?

Решение

Взгляните на 2009 год RL-соревнование.Одной из проблемных областей является игра в тетрис.В позапрошлом году тоже была проблема с тетрисом.Вот этот 52-страничный итоговый отчет от финалиста того года, занявшего пятое место, в котором подробно рассказывается о том, как работал агент.

Другие советы

В Исследование Хитона электронная книга довольно хороша в объяснении концепций нейронных сетей (с помощью кода).Глава 4 посвящена машинному обучению и различным методам обучения для ваших сетей.Существует загружаемая библиотека и примеры приложений, с которыми вы можете ознакомиться.

Вот хорошая книга на эту тему:

Машинное обучение и интеллектуальный анализ данных:Введение в Принципы и алгоритмы
автор: Игорь Кононенко, Матьяз Кукар (июнь 2007)

Также взгляните на эти проекты с открытым исходным кодом:

ТД-Окорок, gnubackgammon или любой другой подобный проект имели огромный успех в играх.

Книга Саттон и Барто "Обучение с подкреплением:Введение" также имеет некоторые другие Примеры внедрения.

Это не относится конкретно к усиленному обучению, но в Стэнфорде есть отличная серия лекций по машинное обучение на Youtube и iTunes.

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

Мешковина это новейшая библиотека Java, которая предоставляет реализации многих распространенных алгоритмов обучения с подкреплением, а также несколько сред и полезных инструментов.

Этот вопрос действительно старый, но для всех, кто читает это в 2018 году, я настоятельно рекомендую вам использовать базовые показатели OpenAI, если вас интересуют надежные ссылки на существующие алгоритмы RL.Эти алгоритмы реализованы группой сотрудников OpenAI, которые действительно разбираются в этих вещах и были тщательно настроены и отлажены.

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

https://github.com/openai/baselines

Я бы предложил изучить RL4J, основанный на Java.Я использовал это и был поражен тем, как все работает гладко, и вы можете изучать даже сети LSTM с помощью алгоритма обучения с подкреплением с помощью алгоритма Actor Critic (называется A3C).

Вот ссылка:https://github.com/deeplearning4j/dl4j-examples/blob/master/rl4j-examples/

Я заметил, что этот вопрос довольно устарел (10 лет назад) и что здесь могла бы быть полезна коллекция современных фреймворков и сред RL.Я создал репозиторий GitHub для этого и намерен регулярно обновлять его.

https://github.com/TheMTank/RL-code-resources

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top