Skip to content

Maximum Entropy and Maximum Causal Entropy Inverse Reinforcement Learning Implementation in Python

License

Notifications You must be signed in to change notification settings

herambnemlekar/inverse-reinforcement-learning

 
 

Repository files navigation

Maximum Entropy Inverse Reinforcement Learning

This is a python implementation of the Maximum Entropy Inverse Reinforcement Learning (MaxEnt IRL) algorithm based on the similarly named paper by Ziebart et al. and the Maximum Causal Entropy Inverse Reinforcement Learning (MaxCausalEnt IRL) algorithm based on his PhD thesis. Project for the Advanced Seminar in Imitation Learning, summer term 2019, University of Stuttgart.

This implementation is available as python package at https://pypi.org/project/irl-maxent/ and can be installed via pip install irl-maxent. You may also want to have a look at the accompanying presentation.

For an example demonstrating how the Maximum (non-causal) Entropy IRL algorithm works, see the corresponding Jupyter notebook (notebooks/maxent.ipynb). Note that the provided python files (src/) contain a slightly more optimized implementation of the algorithms.

To run a demonstration without the notebook, you can directly run ./src/example.py. Also have a look at this file on how to use the provided framework. The framework contains:

  • Two GridWorld implementations for demonstration (irl_maxent.gridworld)
  • The algorithm implementations (irl_maxent.maxent)
  • A gradient based optimizer framework (irl_maxent.optimizer)
  • Plotting helper functions (irl_maxent.plot)
  • A MDP solver framework, i.e. value iteration and corresponding utilities (irl_maxent.solver)
  • A trajectory/trajectory generation framework (irl_maxent.trajectory)

This project solely relies on the following dependencies: numpy, matplotlib, itertools, and pytest.

About

Maximum Entropy and Maximum Causal Entropy Inverse Reinforcement Learning Implementation in Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 64.6%
  • Python 35.4%