Predicting the behavior of complex systems is of great importance in many fields such as engineering, economics or meteorology. The evolution of such systems often follows a certain structure, which can be induced, for example from the laws of physics or of market forces. Mathematically, this structure is often captured by differential equations. The internal functional dependencies, however, are usually unknown. Hence, using machine learning approaches that recreate this structure directly from data is a promising alternative to designing physics-based models. In particular, for high dimensional systems with nonlinear effects, this can be a challenging task.
Learning dynamical systems is different from the classical machine learning tasks, such as image processing, and necessitates different tools. Indeed, dynamical systems can be actuated, often by applying torques or voltages. Hence, the user has a power of decision over the system, and can drive it to certain states by going through the dynamics. Actuating this system generates data, from which a machine learning model of the dynamics can be trained. However, gathering informative data that is representative of the whole state space remains a challenging task. The question of active learning then becomes important: which control inputs should be chosen by the user so that the data generated during an experiment is informative, and enables efficient training of the dynamics model?
In this context, Gaussian processes can be a useful framework for approximating system dynamics. Indeed, they perform well on small and medium sized data sets, as opposed to most other machine learning frameworks. This is particularly important considering data is often costly to generate and process, most of all when producing it involves actuating a complex physical system. Gaussian processes also yield a notion of uncertainty, which indicates how sure the model is about its predictions.
In this work, we investigate in a principled way how to actively learn dynamical systems, by selecting control inputs that generate informative data. We model the system dynamics by a Gaussian process, and use information-theoretic criteria to identify control trajectories that maximize the information gain. Thus, the input space can be explored efficiently, leading to a data-efficient training of the model. We propose several methods, investigate their theoretical properties and compare them extensively in a numerical benchmark. The final method proves to be efficient at generating informative data. Thus, it yields the lowest prediction error with the same amount of samples on most benchmark systems. We propose several variants of this method, allowing the user to trade off computations with prediction accuracy, and show it is versatile enough to take additional objectives into account.