Exterior Penalty Policy Optimization with Penalty Metric Network under Constraints

Shiqing Gao, Jiaxin Ding, Luoyi Fu, Xinbing Wang, Chenghu Zhou
7/22/2024
cs.LGcs.RO

No official code found. Best implementation: ShiqingGao/EPOPMN (6 stars, Apache-2.0, last commit 2024-07-22).

Abstract

In Constrained Reinforcement Learning (CRL), agents explore the environment to learn the optimal policy while satisfying constraints. The penalty function method has recently been studied as an effective approach for handling constraints, which imposes constraints penalties on the objective to transform the constrained problem into an unconstrained one. However, it is challenging to choose appropriate penalties that balance policy performance and constraint satisfaction efficiently. In this paper, we propose a theoretically guaranteed penalty function method, Exterior Penalty Policy Optimization (EPO), with adaptive penalties generated by a Penalty Metric Network (PMN). PMN responds appropriately to varying degrees of constraint violations, enabling efficient constraint satisfaction and safe exploration. We theoretically prove that EPO consistently improves constraint satisfaction with a convergence guarantee. We propose a new surrogate function and provide worst-case constraint violation and approximation error. In practice, we propose an effective smooth penalty function, which can be easily implemented with a first-order optimizer. Extensive experiments are conducted, showing that EPO outperforms the baselines in terms of policy performance and constraint satisfaction with a stable training process, particularly on complex tasks.

View on arXivView PDF

Code Implementations(1)

ShiqingGao/EPOPMNCommunity100%
Apache-2.0
60PythonJul 22, 20242 years agoApache-2.0

Similar Papers

Cite this paper

@article{gao2024exterior,
  title  = {Exterior Penalty Policy Optimization with Penalty Metric Network under Constraints},
  author = {Shiqing Gao and Jiaxin Ding and Luoyi Fu and Xinbing Wang and Chenghu Zhou},
  year   = {2024},
  eprint = {2407.15537},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2407.15537v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2407.15537.svg)](https://codeofpaper.com/paper/2407.15537)

Discussion