Документация 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 — это проект с открытым исходным кодом, распространяемый по лицензии MIT. Работа над ним продолжается, в том числе силами множества энтузиастов. Однако для современных исследований в области обучения с подкреплением требуются огромные вычислительные ресурсы, которые частные разработчики не могут себе позволить. Поэтому если вы или ваша организация могли бы предоставить часть своих вычислительных ресурсов или посодействовать нам иным образом, просим вас связаться с нами!

Этот пакет написан на чистом языке Julia. Если вы сочли его полезным, поддержите нас на сайте JuliaLang.org. ❤

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

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