GithubHelp home page GithubHelp logo

stevenyangyj / pg-is-all-you-need Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mrsyee/pg-is-all-you-need

0.0 1.0 0.0 1.64 MB

Policy Gradient is all you need! A step-by-step tutorial for well-known PG methods.

License: MIT License

Jupyter Notebook 99.90% Makefile 0.01% Python 0.10%

pg-is-all-you-need's Introduction

All Contributors

PG is all you need!

This is a step-by-step tutorial for Policy Gradient algorithms from A2C to SAC, including learning acceleration methods using demonstrations for treating real applications with sparse rewards. Every chapter contains both of theoretical backgrounds and object-oriented implementation. Just pick any topic in which you are interested, and learn! You can execute them right away with Colab even on your smartphone.

Please feel free to open an issue or a pull-request if you have any idea to make it better. :)

If you want a tutorial for DQN series, please see Rainbow is All You Need.

Contents

  1. Advantage Actor-Critic (A2C) [NBViewer] [Colab]
  2. Proximal Policy Optimization Algorithms (PPO) [NBViewer] [Colab]
  3. Deep Deterministic Policy Gradient (DDPG) [NBViewer] [Colab]
  4. Twin Delayed Deep Deterministic Policy Gradient Algorithm (TD3) [NBViewer] [Colab]
  5. Soft Actor-Critic (SAC) [NBViewer] [Colab]
  6. DDPG from Demonstration (DDPGfD) [NBViewer] [Colab]
  7. Behavior Cloning (with DDPG) [NBViewer] [Colab]

Environment

Pendulum-v0

Reference: OpenAI gym Pendulum-v0

Observation

Type: Box(3)

Num Observation Min Max
0 cos(theta) -1.0 1.0
1 sin(theta) -1.0 1.0
2 theta dot -8.0 8.0

Actions

Type: Box(1)

Num Action Min Max
0 Joint effort -2.0 2.0

Reward

The precise equation for reward:

-(theta^2 + 0.1*theta_dt^2 + 0.001*action^2)

Theta is normalized between -pi and pi. Therefore, the lowest cost is -(pi^2 + 0.1*8^2 + 0.001*2^2) = -16.2736044, and the highest cost is 0. In essence, the goal is to remain at zero angle (vertical), with the least rotational velocity, and the least effort. Max steps per an episode is 200 steps.

Prerequisites

This repository is tested on Anaconda virtual environment with python 3.6.1+

$ conda create -n pg-is-all-you-need python=3.6.1
$ conda activate pg-is-all-you-need

Installation

First, clone the repository.

git clone https://github.com/MrSyee/pg-is-all-you-need.git
cd pg-is-all-you-need

Secondly, install packages required to execute the code. Just type:

make dep

Development

Install packages required to develop the code:

make dev

If you want to check the difference of jupyter files that you modified, use nbdime:

nbdiff-web

Related Papers

  1. M. Babaeizadeh et al., "Reinforcement learning through asynchronous advantage actor-critic on a gpu.", International Conference on Learning Representations, 2017.
  2. J. Schulman et al., "Proximal Policy Optimization Algorithms." arXiv preprint arXiv:1707.06347, 2017.
  3. T. P. Lillicrap et al., "Continuous control with deep reinforcement learning." arXiv preprint arXiv:1509.02971, 2015.
  4. S. Fujimoto et al., "Addressing Function Approximation Error in Actor-Critic Methods." arXiv preprint arXiv:1802.09477, 2018.
  5. T. Haarnoja et al., "Soft Actor-Critic: Off-Policy Maximum Entropy Deep Reinforcement Learning with a Stochastic Actor." arXiv preprint arXiv:1801.01290, 2018.
  6. M. Vecerik et al., "Leveraging Demonstrations for Deep Reinforcement Learning on Robotics Problems with Sparse Rewards."arXiv preprint arXiv:1707.08817, 2017
  7. A. Nair et al., "Overcoming Exploration in Reinforcement Learning with Demonstrations." arXiv preprint arXiv:1709.10089, 2017.

Contributors

Thanks goes to these wonderful people (emoji key):

Kyunghwan Kim
Kyunghwan Kim

๐Ÿ’ป ๐Ÿ“–
Jinwoo Park (Curt)
Jinwoo Park (Curt)

๐Ÿ’ป ๐Ÿ“–
Mincheol Kim
Mincheol Kim

๐Ÿ’ป ๐Ÿ“–

This project follows the all-contributors specification. Contributions of any kind welcome!

pg-is-all-you-need's People

Contributors

curt-park avatar mclearning2 avatar mrsyee avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.