  As robots and other intelligent agents move from simple environments and
problems to more complex, unstructured settings, manually programming their
behavior has become increasingly challenging and expensive. Often, it is easier
for a teacher to demonstrate a desired behavior rather than attempt to manually
engineer it. This process of learning from demonstrations, and the study of
algorithms to do so, is called imitation learning. This work provides an
introduction to imitation learning. It covers the underlying assumptions,
approaches, and how they relate; the rich set of algorithms developed to tackle
the problem; and advice on effective tools and implementation.
  We intend this paper to serve two audiences. First, we want to familiarize
machine learning experts with the challenges of imitation learning,
particularly those arising in robotics, and the interesting theoretical and
practical distinctions between it and more familiar frameworks like statistical
supervised learning theory and reinforcement learning. Second, we want to give
roboticists and experts in applied artificial intelligence a broader
appreciation for the frameworks and tools available for imitation learning.
