Reinforcement Learning Zoo
RLzoo — это набор наиболее практичных алгоритмов, фреймворков и приложений для обучения с подкреплением. Он реализован с использованием TensorFlow 2.0 и API слоёв нейронных сетей в TensorLayer 2, чтобы обеспечить практический подход к обучению с подкреплением и сравнительным тестам. RLzoo поддерживает базовые тесты, такие как OpenAI Gym и DeepMind Control Suite, с очень простыми конфигурациями. Кроме того, RLzoo поддерживает среду обучения роботов RLBench на основе симулятора Vrep/PyRep. В будущем будет поддерживаться крупномасштабное распределённое обучение для более реалистичных сценариев с Unity 3D, Mujoco, Bullet Physics и т. д.
В отличие от RLzoo, который предназначен для простого использования с высокоуровневыми API, у нас также есть руководство по RL, которое призвано сделать обучение с подкреплением простым, прозрачным и понятным с низкоуровневыми API. Это не только принесёт пользу начинающим специалистам по обучению с подкреплением, но и предоставит удобство опытным исследователям для быстрой проверки своих новых идей.
Пожалуйста, ознакомьтесь с нашей онлайн-документацией. Мы предлагаем пользователям сообщать об ошибках через проблемы Github. Пользователи также могут обсудить использование RLzoo в следующем канале Slack. actor = StochasticPolicyNetwork(obs_space, act_space, hidden_dim_list=num_hidden_layer * [hidden_dim], output_activation=tf.nn.tanh)
net_list = [actor, critic] # list of the networks
'Выберите оптимизаторы'
a_lr, c_lr = 1e-4, 1e-2 # a_lr: скорость обучения актёра; c_lr: скорость обучения критика
a_optimizer = tf.optimizers.Adam(a_lr)
c_optimizer = tf.optimizers.Adam(c_lr)
optimizers_list=[a_optimizer, c_optimizer] # список оптимизаторов
model = AC(net_list, optimizers_list)
'Полный список аргументов для алгоритма'
- net_list: список сетей (значение и политика), используемых в алгоритме, из общих функций или настройки
- optimizers_list: список оптимизаторов для всех сетей и дифференцируемых переменных
- gamma: дисконтированный коэффициент вознаграждения
- action_range: диапазон значений действий
'Запустите процесс обучения с переданными параметрами обучения'
model.learn(env, train_episodes=500, max_steps=200, save_interval=50, mode='train', render=False)
'Полные параметры обучения'
- env: обучающая среда
- train_episodes: общее количество эпизодов для обучения
- test_episodes: общее количество эпизодов для тестирования
- max_steps: максимальное количество шагов для одного эпизода
- save_interval: временные шаги для сохранения весов и построения результатов
- mode: 'train' или 'test'
- render: если true, визуализировать среду
'Протестируйте после обучения'
model.learn(env, test_episodes=100, max_steps=200, mode='test', render=True)
В папке пакета мы предоставляем примеры с явными конфигурациями для каждого алгоритма.
# в корневой папке rlzoo
cd rlzoo
python algorithms/<ALGORITHM_NAME>/run_<ALGORITHM_NAME>.py
# например: запустить актёр-критик
python algorithms/ac/run_ac.py
Также мы предоставляем интерактивную конфигурацию обучения с Jupyter Notebook и ipywidgets, где вы можете выбрать алгоритм, среду и общие настройки обучения простым нажатием на выпадающие списки и ползунки! Видео, демонстрирующее использование, выглядит следующим образом. Интерактивный режим можно использовать с rlzoo/interactive/main.ipynb
, запустив $ jupyter notebook
, чтобы открыть его. Proximal Policy Optimization (PPO)
Proximal policy optimization algorithms. Schulman et al., 2017.
Distributed Proximal Policy Optimization (DPPO)
Emergence of locomotion behaviours in rich environments. Heess et al., 2017.
Actor-Critic
Actor-Critic (AC)
Actor-critic algorithms. Konda er al., 2000.
Asynchronous Advantage Actor-Critic (A3C)
Asynchronous methods for deep reinforcement learning. Mnih et al., 2016.
Deep Deterministic Policy Gradient (DDPG)
Continuous Control With Deep Reinforcement Learning, Lillicrap et al., 2016
Twin Delayed DDPG (TD3)
Addressing function approximation error in actor-critic methods. Fujimoto et al., 2018.
Soft Actor-Critic (SAC)
Soft actor-critic algorithms and applications. Haarnoja et al., 2018.
Choices for EnvType
: 'atari', 'box2d', 'classic_control', 'mujoco', 'robotics', 'dm_control', 'rlbench'
OpenAI Gym:
DeepMind Control Suite
RLBench
Некоторые замечания по использованию среды.
Убедитесь, что название среды соответствует типу среды в основном скрипте. Типы сред включают: «atari», «box2d», «classic_control», «mujoco», «robotics», «dm_control», «rlbench».
При использовании DeepMind Control Suite установите пакет dm2gym с помощью команды pip install dm2gym.
При использовании сред RLBench добавьте путь к вашему локальному репозиторию rlbench в Python:
export PYTHONPATH=PATH_TO_YOUR_LOCAL_RLBENCH_REPO
Словарь всех различных сред хранится в ./rlzoo/common/env_list.py. Полный список сред в RLBench находится здесь. Установка Vrep->PyRep->RLBench выполняется следующим образом: http://www.coppeliarobotics.com/downloads.html -> https://github.com/stepjam/PyRep -> https://github.com/stepjam/RLBench.
В следующей таблице перечислены поддерживаемые конфигурации для алгоритмов RL с соответствующими средами в RLzoo.
Алгоритмы | Пространство действий | Политика | Обновление | Среды |
---|---|---|---|---|
DQN (double, dueling, PER) | Дискретное только | — | Off-policy | Atari, Classic Control |
AC | Дискретное/непрерывное | Стохастическое | On-policy | Все |
PG | Дискретное/непрерывное | Стохастическое | On-policy | Всё |
DDPG | Непрерывное | Детерминированное | Off-policy | Classic Control, Box2D, Mujoco, Robotics, DeepMind Control, RLBench |
TD3 | Непрерывное | Детерминированное | Off-policy | Classic Control, Box2D, Mujoco, Robotics, DeepMind Control, RLBench |
SAC | Непрерывное | Стохастическое | Off-policy | Classic Control, Box2D, Mujoco, Robotics, DeepMind Control, RLBench |
A3C | Дискретное/Непрерывное | Стохастическое | On-policy | Atari, Classic Control, Box2D, Mujoco, Robotics, DeepMind Control |
PPO | Дискретное/Непрерывное | Стохастическое | On-policy | Всё align="center"> |
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )