  Reward design is a fundamental problem in reinforcement learning (RL). A
misspecified or poorly designed reward can result in low sample efficiency and
undesired behaviors. In this paper, we propose the idea of programmatic reward
design, i.e. using programs to specify the reward functions in RL environments.
Programs allow human engineers to express sub-goals and complex task scenarios
in a structured and interpretable way. The challenge of programmatic reward
design, however, is that while humans can provide the high-level structures,
properly setting the low-level details, such as the right amount of reward for
a specific sub-task, remains difficult. A major contribution of this paper is a
probabilistic framework that can infer the best candidate programmatic reward
function from expert demonstrations. Inspired by recent generative-adversarial
approaches, our framework searches for the most likely programmatic reward
function under which the optimally generated trajectories cannot be
differentiated from the demonstrated trajectories. Experimental results show
that programmatic reward functionslearned using this framework can
significantly outperform those learned using existing reward learning
algo-rithms, and enable RL agents to achieve state-of-the-artperformance on
highly complex tasks.
