Whi Kwon 37e9697b1b Refactor OpenManipulator env class (#46)
* Merge subin branch

Squashed commit of the following:

commit 98112b8c05f955b1eb49a6b78023cad0979d5f95
Author: Subin Yang <ysb8049@naver.com>
Date:   Sat Mar 30 18:19:46 2019 +0900

    Remove noqa

commit f45571a80afd403c8ec56db8a2fb5cbedf288db7
Author: Subin Yang <ysb8049@naver.com>
Date:   Sat Mar 30 17:50:39 2019 +0900

    Resolve flake8

commit 058d85bc4ed09441d27065e6d304bfb946942a98
Author: Subin Yang <ysb8049@naver.com>
Date:   Sat Mar 30 17:41:35 2019 +0900

    Modify structures of ros interface and reacher env

commit ae4c859ffa6b008823050f310bdccbee6a1de30a
Author: Subin Yang <ysb8049@naver.com>
Date:   Sat Mar 30 17:28:15 2019 +0900

    Resolve flake8

commit 4c74ec6527b52d75882ddbe1b4f518f9c252a25c
Author: Subin Yang <ysb8049@naver.com>
Date:   Sat Mar 30 17:23:30 2019 +0900

    Resolve flake8

commit 243b2f3739b4388d814a886d5cf1b85a05bb526a
Author: Subin Yang <ysb8049@naver.com>
Date:   Sat Mar 30 17:18:13 2019 +0900

    Add open manipulator environment

* Refactor openmanipulator environment class

* Refactored env structure

* Fix errors

* Fix error

* Add open_manipulator launch file

* Fix errors

* fix error

* fix error

* fix error

* fix error

* fix error

* fix error

* fix error

* Fix typo

* Delete unused script

* Change reward

* Fix typo, add env name to config

* Change demo file compatible to python2 (#40)

* Change demo file to python2 compatible

* Add object to classes for compatibility with python2

* Refactoring config, envs and ros interface (#48)

* Refactoring config architecture

* Replace network hyper params on agent config

* Modify env class and ros interface class

* Modify getter and setter on ros interface

* Modify wrong code

* Fix typo

* Add env config

* Final environment class and test scripts before the test (#43)

* new user branch

* Resolve formatting issues on test scripts

* Resolve formatting issues on test scripts

* Merge subin branch

Squashed commit of the following:

commit 98112b8c05f955b1eb49a6b78023cad0979d5f95
Author: Subin Yang <ysb8049@naver.com>
Date:   Sat Mar 30 18:19:46 2019 +0900

    Remove noqa

commit f45571a80afd403c8ec56db8a2fb5cbedf288db7
Author: Subin Yang <ysb8049@naver.com>
Date:   Sat Mar 30 17:50:39 2019 +0900

    Resolve flake8

commit 058d85bc4ed09441d27065e6d304bfb946942a98
Author: Subin Yang <ysb8049@naver.com>
Date:   Sat Mar 30 17:41:35 2019 +0900

    Modify structures of ros interface and reacher env

commit ae4c859ffa6b008823050f310bdccbee6a1de30a
Author: Subin Yang <ysb8049@naver.com>
Date:   Sat Mar 30 17:28:15 2019 +0900

    Resolve flake8

commit 4c74ec6527b52d75882ddbe1b4f518f9c252a25c
Author: Subin Yang <ysb8049@naver.com>
Date:   Sat Mar 30 17:23:30 2019 +0900

    Resolve flake8

commit 243b2f3739b4388d814a886d5cf1b85a05bb526a
Author: Subin Yang <ysb8049@naver.com>
Date:   Sat Mar 30 17:18:13 2019 +0900

    Add open manipulator environment

* Refactor openmanipulator environment class

* Test the training loop with td3 baseline

* Add one-shot launch file for gazebo initialization

* Refactored env structure

* Fix errors

* Fix error

* Fix errors

* fix error

* fix error

* fix error

* fix error

* fix error

* fix error

* fix error

* Fix typo

* Delete unused script

* Change reward

* Fix typo, add env name to config

* Refactoring config, envs and ros interface (#48)

* Refactoring config architecture

* Replace network hyper params on agent config

* Modify env class and ros interface class

* Modify getter and setter on ros interface

* Modify wrong code

* Fix typo

* Add env config

* Resolve flake8, typo issue

* Resolve conflict during pull remote
2019-04-09 20:45:21 +09:00
2019-02-03 17:16:55 +09:00
2019-03-25 19:07:19 +09:00
2019-02-16 17:30:12 +09:00
2019-02-16 17:30:12 +09:00
2019-03-25 21:32:03 +09:00

KAIR

Build Status Google Docstring style Pre-commit enabled

KAIR algorithm is a research repository with state of the art reinforcement learning algorithms for robot control tasks. It allows the researchers to experiment with novel ideas with minimal code changes.

Algorithms

The scripts folder contains implementations of a curated list of RL algorithms verified in MuJoCo environment.

  • Twin Delayed Deep Deterministic Policy Gradient (TD3)

    • TD3 (Fujimoto et al., 2018) is an extension of DDPG (Lillicrap et al., 2015), a deterministic policy gradient algorithm that uses deep neural networks for function approximation. Inspired by Deep Q-Networks (Mnih et al., 2015), DDPG uses experience replay and target network to improve stability. TD3 further improves DDPG by adding clipped double Q-learning (Van Hasselt, 2010) to mitigate overestimation bias (Thrun & Schwartz, 1993) and delaying policy updates to address variance.
    • Example Script on LunarLander
    • ArXiv Preprint
  • (Twin) Soft Actor Critic (SAC)

    • SAC (Haarnoja et al., 2018a) incorporates maximum entropy reinforcment learning, where the agent's goal is to maximize expected reward and entropy concurrently. Combined with TD3, SAC achieves state of the art performance in various continuous control tasks. SAC has been extended to allow automatically tuning of the temperature parameter (Haarnoja et al., 2018b), which determines the importance of entropy against the expected reward.
    • Example Script on LunarLander
    • ArXiv Preprint (Original SAC)
    • ArXiv Preprint (SAC with autotuned temperature)
  • TD3 from Demonstrations, SAC from Demonstrations (TD3fD, SACfD)

    • DDPGfD (Vecerik et al., 2017) is an imitation learning algorithm that infuses demonstration data into experience replay. DDPGfD also improved DDPG by (1) using prioritized experience replay (Schaul et al., 2015), (2) adding n-step returns, (3) learning multiple times per environment step, and (4) adding L2 regularizers to actor and critic losses. We incorporated these improvements to TD3 and SAC and found that it dramatically improves their performance.
    • Example Script of TD3fD on LunarLander
    • Example Script of SACfD on LunarLander
    • ArXiv Preprint

Installation

To use the algorithms, first use the requirements.txt file to install appropriate Python packages from PyPI.

cd scripts
pip install -r requirements.txt

How to Cite

We are currently writing a white paper to summarize the results. We will add a BibTeX entry below once the paper is finalized.

S
Description
Reinforcement learning algorithms for robot control tasks
Readme
2.7 MiB
Languages
Python 94.3%
CMake 3.6%
Dockerfile 1.5%
Shell 0.3%
Makefile 0.3%