Jeff Schneider, Ian Char
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.
| Repository | Role | Ran |
|---|---|---|
| IanChar/GPIDE | canonical | 6 of 8 |
| polixir/neorl2 | — | 1 of 1 |
| Function | Status | Where 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") |
Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.
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
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.