SYNTOLOGY HomeExplorerAtlasCodeMethodologyAboutDevelopersFeedPricing
Paper · 2401.10700 · ICLR · 2024

Safe Offline Reinforcement Learning with Feasibility-Guided Diffusion Model

Jingjing Liu, Dongjie Yu, Shengbo Li, Xianyuan Zhan, Jianxiong Li, Yinan Zheng, Yujie Yang

arXiv · PDF · Open in the Atlas

Code that ran

We lifted 10 functions out of this paper's own repositories and ran 9 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.

RepositoryRoleRan
zhengyinan-air/fisor canonical 6 of 7
ZhengYinan-AIR/FISOR canonical 3 of 3
FunctionStatusWhere it lives
compute_q Ran ZhengYinan-AIR/FISOR/jaxrl5/agents/fisor/fisor.py
pointer only (licence: NONE) · get_code("efbad980c5e8e094")
cosine_beta_schedule Ran zhengyinan-air/fisor/jaxrl5/networks/diffusion.py
pointer only (licence: NONE) · get_code("87d1bc442d93916d")
evaluate Ran zhengyinan-air/fisor/jaxrl5/evaluation.py
pointer only (licence: NONE) · get_code("e9deb66cfd03bf3c")
evaluate_pr Ran zhengyinan-air/fisor/jaxrl5/evaluation.py
pointer only (licence: NONE) · get_code("b65945d27009d941")
expectile_loss Ran ZhengYinan-AIR/FISOR/jaxrl5/agents/fisor/fisor.py
pointer only (licence: NONE) · get_code("ad221b0896e1bcd0")
get_weight_decay_mask Ran zhengyinan-air/fisor/jaxrl5/networks/mlp.py
pointer only (licence: NONE) · get_code("1049990078a4b0f2")
linear_beta_schedule Ran zhengyinan-air/fisor/jaxrl5/networks/diffusion.py
pointer only (licence: NONE) · get_code("0cd44ae2231fcb3b")
safe_expectile_loss Ran ZhengYinan-AIR/FISOR/jaxrl5/agents/fisor/fisor.py
pointer only (licence: NONE) · get_code("7e821a429b5ff00e")
vp_beta_schedule Ran zhengyinan-air/fisor/jaxrl5/networks/diffusion.py
pointer only (licence: NONE) · get_code("4567300f0e6b808c")
subsample_ensemble Not yet run zhengyinan-air/fisor/jaxrl5/networks/ensemble.py
pointer only (licence: NONE) · get_code("c021b9fd8bb7677d")

Repositories linked to this paper

Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.

Abstract

Safe offline reinforcement learning is a promising way to bypass risky online interactions towards safe policy learning. Most existing methods only enforce soft constraints, i.e., constraining safety violations in expectation below thresholds predetermined. This can lead to potentially unsafe outcomes, thus unacceptable in safety-critical scenarios. An alternative is to enforce the hard constraint of zero violation. However, this can be challenging in offline setting, as it needs to strike the right balance among three highly intricate and correlated aspects: safety constraint satisfaction, reward maximization, and behavior regularization imposed by offline datasets. Interestingly, we discover that via reachability analysis of safe-control theory, the hard safety constraint can be equivalently translated to identifying the largest feasible region given the offline dataset. This seamlessly converts the original trilogy problem to a feasibility-dependent objective, i.e., maximizing reward value within the feasible region while minimizing safety risks in the infeasible region. Inspired by these, we propose FISOR (FeasIbility-guided Safe Offline RL), which allows safety constraint adherence, reward maximization, and offline policy learning to be realized via three decoupled processes, while offering strong safety performance and stability. In FISOR, the optimal policy for the translated optimization problem can be derived in a special form of weighted behavior cloning, which can be effectively extracted with a guided diffusion model thanks to its expressiveness. Moreover, we propose a novel energy-guided sampling method that does not require training a complicated time-dependent classifier to simplify the training. We compare FISOR against baselines on DSRL benchmark for safe offline RL. Evaluation results show that FISOR is the only method that can guarantee safety satisfaction in all tasks, while achieving top returns in most tasks. Project website: https://zhengyinan-air.github.io/FISOR/.

For agents

The same record, over MCP at https://syntology.ai/mcp:

get_harvested_code_for_paper("2401.10700")
get_code_for_paper("2401.10700")
have("2401.10700")

Connect an agent — have() is free.