La randomisation de domaine (Domain Randomization, ou DR en anglais) est une méthode utilisée depuis les années 2020, qui a fait progresser l'apprentissage automatique, apprentissage par renforcement (RL), robotique et simulation numérique et plus largement l'intelligence artificielle. Elle consiste à modifier — de manière aléatoire — les paramètres d’un environnement simulé, afin d’améliorer la capacité d’adaptation des modèles d’IA entraînés en simulation dans cet environnement virtuel. Cette approche, devenue courante dans les années 2020, permet aux algorithmes d’être plus robustes lorsqu’ils sont ensuite déployés dans des conditions réelles, comblant ainsi le « fossé » entre la simulation et la réalité (le sim2real gap) sans nécessiter de données du monde réel pour l'entraînement.
C'est ainsi que le robot Tesla Optimus a pu acquérir des mouvements fluides (ainsi que grâce à des ajustements du profil énergétique et à des améliorations matérielles).
Un constat est qu'entraîner un modèle d'IA (a minima un réseau de neurones) uniquement sur un simulateur très réaliste peut entraîner un surapprentissage aux particularités de ce simulateur, ce qui rend ensuite difficile le transfert des résultats de l'apprentissage vers le monde réel.
L'algorithme de randomisation de domaine est de type transfert de simulation à réel (transfert Sim-to-real en anglais), c'est-à-dire visant le transfert d'apprentissage fait en simulation vers la réalité.
Il repose sur l'idée simple que, si un modèle peut d'abord apprendre à fonctionner correctement dans une grande variété de conditions simulées aléatoires, il sera alors plus tard capable de généraliser à des situations réelles qui peuvent être perçues comme une autre variation de ces conditions.
La « randomisation de domaine », en variant aléatoirement les caractéristiques des données synthétiques générées, rend le modèle moins sensible aux spécificités de la simulation et plus apte à gérer la variabilité et l'imprévu présente dans le monde réel ; elle agit comme un régulateur en « encourageant » le modèle à apprendre plutôt les caractéristiques fondamentales d'une tâche plutôt que de mémoriser des détails illusoires en réalité liés à la simulation.
En pratique, cela passe par une modification aléatoire de divers aspects de l'environnement de simulation, à chaque itération d'entraînement. Ces aspects peuvent inclure :
En entraînant un agent ou un modèle à réaliser une tâche malgré ces variations constantes, on l'oblige à se focaliser sur les caractéristiques essentielles à la résolution de la tâche plutôt que sur les détails spécifiques d'un environnement simulé particulier.
L'idée de varier les conditions d'entraînement pour améliorer la généralisation est ancienne, mais la randomisation de domaine n'a pu être mise en œuvre de manière poussée qu'avec les progrès de l'apprentissage profond et son application à la robotique.
Des travaux pionniers, notamment ceux menés par OpenAI, ont démontré que des politiques de contrôle ou des modèles de perception entraînés uniquement avec des données simulées randomisées pouvaient être directement transférés avec succès vers des robots réels sans nécessiter d'ajustement (approche dite « zero-shot transfer »).
Cette capacité à éviter la collecte coûteuse et fastidieuse de données réelles pour l'entraînement a fortement contribué à populariser la technique dans la communauté de la robotique et de l'apprentissage par renforcement.
Malgré les succès empiriques de cet algorithme, sa compréhension théorique reste limitée. Xiaoyu Chen et al. (2022) ont proposé un cadre théorique pour les transferts sim -> réel qui montre l’importance de l’utilisation de la mémoire dans le processus de randomisation de domaine.
L'utilisation de la randomisation de domaine (RD) dans le développement de systèmes basés sur l'apprentissage, vise à éviter les écueils rencontrés par l'apprentissage par renforcement quand il est appliqué directement dans le monde réel. La RD a comme avantages :
Cependant, la randomisation de domaine pose encore des défis :
Le choix des paramètres et des plages de randomisation joue un rôle important, mais comment déterminer au mieux les paramètres à randomiser, et dans quelles plages (uniforme, gaussienne, etc.) ; ce choix peut être complexe et nécessiter des ajustements manuels basés sur l'intuition ou des essais-erreurs. Des plages trop étroites peuvent limiter la généralisation, tandis que des plages trop larges peuvent rendre l'apprentissage de la tâche difficile.
Un piège à éviter est l'inefficacité potentielle : l'apprentissage sur un échantillonnage uniforme sur un grand nombre de paramètres peut conduire à un entraînement inefficace et inutile (quand les configurations sont vraiment peu probables ou non pertinentes pour la tâche réelle, l'agent gaspille ses ressources et le temps).
La recherche actuelle et future dans ce domaine vise notamment à rendre la randomisation de domaine encore plus performante et plus facile à appliquer à une gamme plus large d'apprentissages et de tâches robotiques, avec des scénarii plus adaptés au monde réel.
Au lieu de randomiser uniformément, on cherche à identifier et à générer les environnements simulés les plus « informatifs » ou les plus « difficiles » pour l'agent durant son entraînement.
Ici, l'agent est formé en commençant par des randomisations faibles, puis en augmentant progressivement sa variabilité, ou en utilisant des techniques d'apprentissage continu pour s'adapter séquentiellement à de nouvelles randomisations.
Dans ce cas, il s'agit de développer des méthodes pour que l'agent apprenne lui-même la distribution de paramètres de randomisation la plus efficace pour le transfert vers le monde réel.
Il est possible d'intégrer la randomisation de domaine avec l'adaptation de domaine ou l'identification de système pour combiner les avantages de ces approches.