Документация Engee

ReinforcementLearning.jl

ReinforcementLearning.jl — это пакет для обучения с подкреплением на Julia.

В основе его устройства лежат следующие принципы.

  • Многоразовость и расширяемость: продуманные компоненты и интерфейсы помогают пользователям реализовывать новые алгоритмы.

  • Простота экспериментирования: новые пользователи могут легко проводить эксперименты для оценки производительности, сравнивать разные алгоритмы, а также оценивать и диагностировать агенты.

  • Воспроизводимость: от традиционных табличных методов до современных алгоритмов глубокого обучения с подкреплением.

🏹 Начало работы

julia> ] add ReinforcementLearning

julia> using ReinforcementLearning

julia> run(
           RandomPolicy(),
           CartPoleEnv(),
           StopAfterNSteps(1_000),
           TotalRewardPerEpisode()
       )

В приведенном выше примере демонстрируются четыре основных компонента стандартного эксперимента обучения с подкреплением:

  • Политика. RandomPolicy — это простейший экземпляр типа AbstractPolicy. Он создает случайное действие на каждом шаге.

  • Среда. CartPoleEnv — это типичный объект типа AbstractEnv для тестирования алгоритмов обучения с подкреплением.

  • Конечное условие. StopAfterNSteps(1_000) сообщает о том, что эксперимент должен завершиться после 1_000 шагов.

  • Обработчик. Структура TotalRewardPerEpisode — один из наиболее обыкновенных подтипов AbstractHook. Она служит для сбора суммарной награды за каждый эпизод эксперимента.

В руководстве можно узнать, как эти четыре компонента сообща позволяют решать множество интересных задач. Мы также периодически делимся в нашем блоге особенностями реализации некоторых алгоритмов. Особенно рекомендуем ознакомиться с введением в ReinforcementLearning.jl, в котором разъясняется, как задумывалось устройство пакета.

✋ Получение справки

Нужна помощь с ReinforcementLearning.jl? Вот как ее можно получить:

  1. Читайте документацию в Интернете! Скорее всего, ответ уже есть в примере или в документации по API. Выполните поиск с помощью поля в левом верхнем углу.

  1. Обратитесь к нам в Julia Slack в канале #reinforcement-learnin.

  2. Задайте вопрос на форуме обсуждения Julia в категории Machine Learning (Машинное обучение), добавив тег reinforcement-learning (обучение с подкреплением).

  3. Если пакет ReinforcementLearning.jl работает не так, как следует ожидать, или вы выявили в нем неточности, создайте проблему на его странице в GitHub, предоставив минимальный рабочий пример и действия для воспроизведения проблемы.

✍️ Цитирование

Если вы используете пакет ReinforcementLearning.jl в научной публикации, то можно сослаться на него в CITATION.bib.