L'optimisation de politique proximale (PPO) est un algorithme d'apprentissage par renforcement (RL) utilisé pour entraîner un agent intelligent à prendre des décisions dans un environnement. Il appartient à la famille des méthodes de gradient de politique, qui optimisent directement la politique en estimant les gradients de la récompense attendue. PPO est particulièrement adapté au RL profond, où la politique est représentée par un réseau de neurones de grande taille, et est devenu un choix standard pour de nombreuses applications en raison de son équilibre entre simplicité, stabilité et efficacité d'échantillonnage.
L'algorithme a été introduit en 2017 comme une approximation de l'optimisation de politique par région de confiance (TRPO), une méthode antérieure visant à stabiliser l'entraînement en limitant la quantité de changement de la politique à chaque mise à jour. PPO simplifie cela en utilisant une fonction objectif tronquée, évitant ainsi le surcoût computationnel des méthodes de second ordre de TRPO. Depuis 2018, PPO est l'algorithme RL par défaut chez OpenAI, et il a été appliqué à des domaines allant de la robotique au jeu vidéo.
Mécanisme de base
PPO est un algorithme sur-politique, ce qui signifie qu'il met à jour la politique en utilisant des données collectées à partir de la version actuelle de la politique. L'idée centrale est de prendre plusieurs étapes d'ascension de gradient sur la politique tout en garantissant que la nouvelle politique ne s'écarte pas trop de l'ancienne. Cela est réalisé grâce à une fonction objectif substitutive tronquée, qui pénalise les changements qui rendraient le rapport de probabilité entre les nouvelles et anciennes politiques trop grand ou trop petit.
La fonction objectif est conçue pour fournir une estimation conservatrice de l'amélioration de la politique. En tronquant le rapport, PPO empêche des mises à jour excessivement grandes qui pourraient déstabiliser l'entraînement, un problème courant dans les méthodes de gradient de politique. Ce mécanisme est computationnellement efficace, car il ne nécessite qu'une optimisation de premier ordre, contrairement à TRPO qui utilise la matrice hessienne.
Relation avec TRPO
TRPO, publié en 2015, a résolu les problèmes d'instabilité des algorithmes antérieurs comme le réseau Q profond (DQN) en utilisant une méthode de région de confiance pour limiter la divergence KL entre les politiques ancienne et nouvelle. Cependant, l'application de cette contrainte nécessitait le calcul de la matrice hessienne des dérivées secondes, ce qui est inefficace pour les problèmes à grande échelle. PPO a été développé comme une approximation qui évite le calcul de la hessienne en tronquant le gradient de politique à la place. Cela rend PPO plus simple à implémenter et à régler, tout en atteignant des performances comparables ou supérieures dans de nombreuses tâches.
Applications
PPO a été largement adopté dans la recherche et l'industrie. Chez OpenAI, il a été utilisé comme algorithme RL par défaut pour entraîner des agents dans divers environnements. Une application notable était OpenAI Five, un système qui a battu des joueurs professionnels au jeu vidéo Dota 2 en 2019. PPO a également été utilisé pour contrôler des bras robotiques, jouer à des jeux Atari, et dans d'autres domaines nécessitant une prise de décision séquentielle. Sa robustesse et sa facilité d'utilisation en ont fait un choix populaire pour les praticiens du apprentissage automatique travaillant sur des problèmes d'apprentissage par renforcement.
Variantes et extensions
Plusieurs variantes de PPO ont été proposées pour répondre à des défis spécifiques. Par exemple, certaines versions intègrent une troncature adaptative ou utilisent différentes techniques d'estimation des avantages. PPO est également souvent combiné avec d'autres méthodes, telles que les architectures de apprentissage profond, pour traiter des observations de haute dimension. La conception de l'algorithme a influencé la recherche ultérieure en RL, et il reste une référence contre laquelle les nouveaux algorithmes sont comparés.