Хорошие реализации обучения с подкреплением?
Вопрос
Для проекта класса искусственного интеллекта мне нужно реализовать алгоритм обучения с подкреплением, который превосходит простую игру в тетрис.Игра написана на Java, и у нас есть исходный код.Я знаю основы теории обучения с подкреплением, но мне было интересно, есть ли у кого-нибудь в сообществе SO практический опыт работы с подобными вещами.
- Каковы были бы ваши рекомендации по внедрению усиленного обучения в игре "тетрис"?
- Есть ли какие-нибудь хорошие проекты с открытым исходным кодом, которые выполняют аналогичные задачи, которые стоило бы проверить?
Редактировать:Чем конкретнее, тем лучше, но приветствуются общие ресурсы по данному предмету.
Последующие действия:
Подумал, что было бы неплохо, если бы я опубликовал продолжение.
Вот решение (код и запись) В итоге у меня получилось для любых будущих студентов :).
Решение
Взгляните на 2009 год RL-соревнование.Одной из проблемных областей является игра в тетрис.В позапрошлом году тоже была проблема с тетрисом.Вот этот 52-страничный итоговый отчет от финалиста того года, занявшего пятое место, в котором подробно рассказывается о том, как работал агент.
Другие советы
В Исследование Хитона электронная книга довольно хороша в объяснении концепций нейронных сетей (с помощью кода).Глава 4 посвящена машинному обучению и различным методам обучения для ваших сетей.Существует загружаемая библиотека и примеры приложений, с которыми вы можете ознакомиться.
Вот хорошая книга на эту тему:
Машинное обучение и интеллектуальный анализ данных:Введение в Принципы и алгоритмы
автор: Игорь Кононенко, Матьяз Кукар (июнь 2007)
Также взгляните на эти проекты с открытым исходным кодом:
ТД-Окорок, gnubackgammon или любой другой подобный проект имели огромный успех в играх.
Книга Саттон и Барто "Обучение с подкреплением:Введение" также имеет некоторые другие Примеры внедрения.
Это не относится конкретно к усиленному обучению, но в Стэнфорде есть отличная серия лекций по машинное обучение на Youtube и iTunes.
Ссылка на первую лекцию, которая занимает примерно 30 минут, чтобы погрузиться в содержание.
Мешковина это новейшая библиотека Java, которая предоставляет реализации многих распространенных алгоритмов обучения с подкреплением, а также несколько сред и полезных инструментов.
Этот вопрос действительно старый, но для всех, кто читает это в 2018 году, я настоятельно рекомендую вам использовать базовые показатели OpenAI, если вас интересуют надежные ссылки на существующие алгоритмы RL.Эти алгоритмы реализованы группой сотрудников OpenAI, которые действительно разбираются в этих вещах и были тщательно настроены и отлажены.
Честно говоря, для тетриса это не нужно, но в настоящее время я подозреваю, что домашние задания могут включать в себя более сложные среды.
Я бы предложил изучить RL4J, основанный на Java.Я использовал это и был поражен тем, как все работает гладко, и вы можете изучать даже сети LSTM с помощью алгоритма обучения с подкреплением с помощью алгоритма Actor Critic (называется A3C).
Вот ссылка:https://github.com/deeplearning4j/dl4j-examples/blob/master/rl4j-examples/
Я заметил, что этот вопрос довольно устарел (10 лет назад) и что здесь могла бы быть полезна коллекция современных фреймворков и сред RL.Я создал репозиторий GitHub для этого и намерен регулярно обновлять его.