Stable-BC: Controlling Covariate Shift with Stable Behavior Cloning
<|reference_start|>Stable-BC: Controlling Covariate Shift with Stable Behavior Cloning: Behavior cloning is a common imitation learning paradigm. Under behavior cloning the robot collects expert demonstrations, and then trains a policy to match the actions taken by the expert. This works well when the robot learner visits states where the expert has already demonstrated the correct action; but inevitably the robot will also encounter new states outside of its training dataset. If the robot learner takes the wrong action at these new states it could move farther from the training data, which in turn leads to increasingly incorrect actions and compounding errors. Existing works try to address this fundamental challenge by augmenting or enhancing the training data. By contrast, in our paper we develop the control theoretic properties of behavior cloned policies. Specifically, we consider the error dynamics between the system's current state and the states in the expert dataset. From the error dynamics we derive model-based and model-free conditions for stability: under these conditions the robot shapes its policy so that its current behavior converges towards example behaviors in the expert dataset. In practice, this results in Stable-BC, an easy to implement extension of standard behavior cloning that is provably robust to covariate shift. We demonstrate the effectiveness of our algorithm in simulations with interactive, nonlinear, and visual environments. We also conduct experiments where a robot arm uses Stable-BC to play air hockey. See our website here: https://collab.me.vt.edu/Stable-BC/<|reference_end|>
@article{mehta2024stable-bc:,
    title={Stable-BC: Controlling Covariate Shift with Stable Behavior Cloning},
    author={Shaunak A. Mehta, Yusuf Umut Ciftci, Balamurugan Ramachandran, Somil
  Bansal, Dylan P. Losey},
    journal={arXiv preprint arXiv:2408.06246},
    year={2024},
    archivePrefix={arXiv},
    eprint={2408.06246},
    primaryClass={cs.RO}
}