Skip to content

Physics-informed Dyna-style model-based deep reinforcement learning for dynamic control

License

Notifications You must be signed in to change notification settings

Jianxun-Wang/PIMBRL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PiMBRL

This repo provides code for our paper Physics-informed Dyna-style model-based deep reinforcement learning for dynamic control (arXiv version), implemented in Pytorch.

An uncontrolled KS environment.

A RL controlled KS environment.

PiMBRL performance vs. Model-free RL baseline.

(Vanilla Model-based RL failed to converge, thus not shown in this figure).

Abstract

Model-based reinforcement learning (MBRL) is believed to have much higher sample efficiency compared with model-free algorithms by learning a predictive model of the environment. However, the performance of MBRL highly relies on the quality of the learned model, which is usually built in a blackbox manner and may have poor predictive accuracy outside of the data distribution. The deficiencies of the learned model may prevent the policy from being fully optimized. Although some uncertainty analysisbased remedies have been proposed to alleviate this issue, model bias still poses a great challenge for MBRL. In this work, we propose to leverage the prior knowledge of underlying physics of the environment, where the governing laws are (partially) known. In particular, we developed a physics-informed MBRL framework, where governing equations and physical constraints are used to inform the model learning and policy search. By incorporating the prior information of the environment, the quality of the learned model can be notably improved, while the required interactions with the environment are significantly reduced, leading to better sample efficiency and learning performance. The effectiveness and merit have been emonstrated over a handful of classic control problems, where the environments are governed by canonical ordinary/partial differential equations.

code structure:

  • src/ contains the source code of the framework.

    • NN/ includes deep nerual network related code.
      • RL/ includes policy & Q function networks
      • model.py contains surrogate models
    • RLago/ contains RL algorithms including DDPG, TD3, SAC.
    • ModelBased/
      • dyna.py & dynav2.py contains the code for the dyna-style algorithms.
    • utils/ useful tools.
    • envs.py contains self-defined environments, mimic the gym environments.
  • examples/ contains a set of examples of using the framework.

    • ks.py one-dimensional environment governed by KS equation.
    • cartpole.py the classic cartpole problem
    • pendu.py modified pendulum problem
    • burgers.py one-dimensional environment governed by Burgers' equation.
  • .env

Usage:

Please refer to examples/ks.py for usage.

Requirements:

    python>=3.8.8
    pytorch==1.8.1
    gym==0.19.0
    numpy>=1.19.2

Citation

If you find this repo useful in your research, please consider citing our paper: Physics-informed Dyna-style model-based deep reinforcement learning for dynamic control.

@article{liu2021physics,
  title={Physics-informed Dyna-style model-based deep reinforcement learning for dynamic control},
  author={Liu, Xin-Yang and Wang, Jian-Xun},
  journal={Proceedings of the Royal Society A},
  volume={477},
  number={2255},
  pages={20210618},
  year={2021},
  publisher={The Royal Society}
}

Problems

If you find any bugs in the code or have trouble in running PiMBRL in your machine, you are very welcome to open an issue in this repository.

Acknoledgements

The code in src/RLalgo is inspired by OpenAI's spinningup.

About

Physics-informed Dyna-style model-based deep reinforcement learning for dynamic control

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages