lets-do-irl  by reinforcement-learning-kr

PyTorch implementations of inverse reinforcement learning algorithms

created 6 years ago
760 stars

Top 46.7% on sourcepulse

GitHubView on GitHub
Project Summary

This repository provides PyTorch implementations of key Inverse Reinforcement Learning (IRL) algorithms, including APP, MaxEnt, GAIL, and VAIL. It's designed for researchers and practitioners in reinforcement learning who need to understand and apply these methods for learning from expert demonstrations, particularly in robotics and control tasks. The project offers practical examples and training scripts for common environments.

How It Works

The project implements IRL algorithms by learning a reward function from expert demonstrations, which is then used to train an agent via standard RL techniques. For the MountainCar environment, Q-learning is used as the underlying RL algorithm for APP and MaxEnt. For Mujoco environments like Hopper, Proximal Policy Optimization (PPO) is employed as the RL backbone for GAIL and VAIL. This dual approach allows for experimentation with different RL algorithms suited to discrete and continuous action spaces.

Quick Start & Requirements

  • Install: Clone the repository and navigate to the respective environment folders (e.g., lets-do-irl/mountaincar/app).
  • Prerequisites: PyTorch (v0.4.1), OpenAI GYM, Mujoco, NumPy. Specific environments may require additional dependencies.
  • Setup: Requires installing PyTorch and potentially Mujoco. Training times vary based on environment and algorithm.
  • Docs: Let's do Inverse RL Guide (Korean)

Highlighted Details

  • Implements Apprenticeship Learning via Inverse Reinforcement Learning (APP).
  • Includes Maximum Entropy Inverse Reinforcement Learning (MaxEnt).
  • Features Generative Adversarial Imitation Learning (GAIL).
  • Incorporates Variational Discriminator Bottleneck (VAIL) for improved imitation learning.
  • Demonstrations and training scripts are provided for MountainCar-v0 and Mujoco Hopper-v2 environments.

Maintenance & Community

The project lists four core team members with GitHub and Facebook links. There are no explicit mentions of ongoing maintenance, community channels (like Discord/Slack), or a public roadmap.

Licensing & Compatibility

The repository does not explicitly state a license. The code is written in Python using PyTorch, making it generally compatible with other Python ML libraries. However, the lack of a specified license may impose restrictions on commercial use or redistribution.

Limitations & Caveats

The project uses an older version of PyTorch (v0.4.1), which may present compatibility issues with newer libraries and hardware. The README is primarily in Korean, and some implementation details or explanations might be less accessible to non-Korean speakers. There is no explicit mention of testing on platforms other than those implied by the environment setups.

Health Check
Last commit

1 year ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
15 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.