SYNTOLOGY HomeExplorerAtlasCodeMethodologyAboutDevelopersFeedPricing
Paper · 2307.05891 · NeurIPS · 2023

PID-Inspired Inductive Biases for Deep Reinforcement Learning in Partially Observable Control Tasks

Jeff Schneider, Ian Char

arXiv · PDF · Open in the Atlas

Code that ran

We lifted 9 functions out of this paper's own repositories and ran 7 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
IanChar/GPIDE canonical 6 of 8
polixir/neorl2 — 1 of 1
FunctionStatusWhere it lives
MassSpringDamperEnv Ran polixir/neorl2/neorl2/envs/_msd.py
pointer only (licence: NONE) · get_code("3382e65482942663")
clip_magnitude Ran IanChar/GPIDE/rlkit/pythonplusplus.py
code served (permissive licence) · get_code("93d28ca67303e04b")
create_stats_ordered_dict Ran IanChar/GPIDE/rlkit/core/eval_util.py
code served (permissive licence) · get_code("fadf5f762ff04cd6")
get_average_returns Ran IanChar/GPIDE/rlkit/core/eval_util.py
code served (permissive licence) · get_code("a5d10a0b704c8db7")
identity Ran IanChar/GPIDE/rlkit/pythonplusplus.py
code served (permissive licence) · get_code("9910e2fc297f8665")
is_numeric Ran IanChar/GPIDE/rlkit/pythonplusplus.py
code served (permissive licence) · get_code("4138766e854db009")
simple_separated_format Ran IanChar/GPIDE/rlkit/core/tabulate.py
code served (permissive licence) · get_code("5cb0c55f58279f59")
add_prefix Not yet run IanChar/GPIDE/rlkit/core/logging.py
code served (permissive licence) · get_code("6dc14f1205c31904")
append_log Not yet run IanChar/GPIDE/rlkit/core/logging.py
code served (permissive licence) · get_code("46e6d80fdfab6884")

Repositories linked to this paper

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

Abstract

Deep reinforcement learning (RL) has shown immense potential for learning to control systems through data alone. However, one challenge deep RL faces is that the full state of the system is often not observable. When this is the case, the policy needs to leverage the history of observations to infer the current state. At the same time, differences between the training and testing environments makes it critical for the policy not to overfit to the sequence of observations it sees at training time. As such, there is an important balancing act between having the history encoder be flexible enough to extract relevant information, yet be robust to changes in the environment. To strike this balance, we look to the PID controller for inspiration. We assert the PID controller's success shows that only summing and differencing are needed to accumulate information over time for many control tasks. Following this principle, we propose two architectures for encoding history: one that directly uses PID features and another that extends these core ideas and can be used in arbitrary control tasks. When compared with prior approaches, our encoders produce policies that are often more robust and achieve better performance on a variety of tracking tasks. Going beyond tracking tasks, our policies achieve 1.7x better performance on average over previous state-of-the-art methods on a suite of locomotion control tasks. 1

For agents

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

get_harvested_code_for_paper("2307.05891")
get_code_for_paper("2307.05891")
have("2307.05891")

Connect an agent — have() is free.