Module 6 — Exploration : epsilon glouton et alternatives
Le Q-learning du module 5 supposait discrètement qu'une politique -gloutonne suffisait à visiter chaque paire assez souvent. Cette hypothèse est fausse en général, et c'est même la raison la plus fréquente d'un agent qui « ne converge pas ». Ce module traite l'exploration comme le sujet à part entière qu'elle est.
Le dilemme, formulé proprement
À chaque pas, l'agent doit choisir entre :
- exploiter — jouer l'action qu'il croit la meilleure selon ses estimations actuelles ;
- explorer — jouer une action différente pour affiner ses estimations, quitte à sacrifier un gain immédiat.
Ne jamais explorer garantit de rester sur la meilleure action connue, qui peut être arbitrairement pire que la meilleure action existante. Toujours explorer produit un comportement aléatoire qui ne récolte jamais les fruits de ce qui a été appris. La difficulté est que le bon dosage dépend de ce qu'on ignore encore — et par définition on ne le sait pas.
L'agent brebis : le contre-exemple qui convainc
Un exemple minimal, à deux actions, montre pourquoi l'exploration n'est pas facultative.
Deux bras : le premier donne une récompense de 0,5 à chaque coup. Le second donne 1 avec probabilité 0,9 et 0 avec probabilité 0,1 — donc une récompense moyenne de 0,9. Un agent qui commence par tirer une fois chaque bras et observe (0,5) puis (0) va évaluer le second comme pire et ne le retirera plus jamais. Il a « appris » à jouer le pire bras, et le fera à l'infini.
Sur un MDP, le même phénomène produit une politique qui contourne l'objectif à jamais, parce que l'unique chemin qui y mène passe par un état jamais visité — donc jamais évalué.
Epsilon glouton, la ligne de base
L'approche la plus simple. Avec probabilité , jouer une action aléatoire ; sinon, jouer .
def politique_epsilon_greedy(Q, s, epsilon, nA):
if np.random.rand() < epsilon:
return np.random.randint(nA)
return int(np.argmax(Q[s]))
Trois recettes pratiques.
fixe est simple mais problématique : l'agent continue d'explorer même quand ses estimations sont solides, ce qui plafonne sa performance et empêche la convergence en politique optimale.
Décroissance linéaire ou exponentielle est le standard. Partir de (aléatoire pur), descendre progressivement jusqu'à à sur des dizaines de milliers d'épisodes. La formule est un bon point de départ.
Décroissance par nombre de visites — plus rare mais théoriquement propre — utilise où est le nombre de visites de l'état . Les états jamais visités restent explorés, les états connus deviennent gloutons.
Ce que epsilon glouton fait mal
Deux défauts qui ouvrent la porte aux alternatives.
L'exploration est uniforme sur les actions. Une action manifestement mauvaise a autant de chances d'être testée qu'une action prometteuse. Sur un espace de 10 actions avec une seule évidemment mauvaise, cela gaspille 10 % de l'exploration.
L'exploration ne tient pas compte de l'incertitude. Une action déjà jouée 1000 fois et une action jamais jouée reçoivent le même traitement, alors que la seconde a bien plus à apprendre.
Softmax, ou exploration proportionnelle à la valeur
Jouer chaque action avec une probabilité qui croît avec son estimé :
Le paramètre — la température — contrôle le pointu de la distribution. redonne le glouton pur. redonne l'aléatoire uniforme. Une valeur intermédiaire favorise les actions bien notées sans jamais fermer la porte aux autres. C'est plus fin que -glouton, mais sensible à l'échelle absolue des et donc plus délicat à régler.
UCB : optimisme face à l'incertitude
Une idée puissante venue du problème des bandits. Ajouter à chaque action un bonus qui croît avec l'incertitude :
où compte le nombre de sélections de et dose l'exploration. Une action peu jouée voit son bonus grandir jusqu'à devenir irrésistible, ce qui force sa sélection ; une fois jouée, le bonus retombe. On teste ainsi systématiquement les actions incertaines, sans jamais rester bloqué sur une évaluation prématurée.
UCB est théoriquement optimal sur les bandits multi-bras. Sur les MDP, sa version simple ci-dessus a des limites (les visites dépendent de la politique) mais l'esprit inspire des méthodes profondes comme les bonus d'exploration ou la curiosité intrinsèque, où l'incertitude est mesurée par un réseau auxiliaire.
Démonstration : exploration trop faible sur FrozenLake
Lancer le Q-learning du module 5 avec constant dès le départ. Sur FrozenLake glissant, la courbe de récompense stagne à zéro pendant des milliers d'épisodes : l'agent, gloutonneux dès le début, tourne autour du départ sans jamais atteindre l'objectif. Avec décroissant de 1 à 0,05, le même code résout l'environnement en 10 000 à 20 000 épisodes. Un unique hyperparamètre décide de tout.
En renforcement, un agent qui « ne converge pas » vient plus souvent d'une exploration insuffisante que d'un mauvais algorithme. Avant d'accuser Q-learning, tracer la couverture des paires visitées : si des paires restent à zéro alors qu'elles sont accessibles, aucun algorithme ne peut apprendre leur valeur. La bonne réponse est presque toujours plus d'exploration au démarrage, pas un modèle plus complexe.
En résumé
- Le dilemme exploration contre exploitation n'a pas d'analogue supervisé ; ne pas explorer garantit de rester coincé sur la meilleure action connue.
- -glouton avec décroissance est le standard ; fixe empêche la convergence.
- Softmax module l'exploration par la valeur ; UCB ajoute un bonus qui reflète l'incertitude.
- Un agent qui « ne converge pas » a le plus souvent une exploration insuffisante ; tracer la couverture avant de changer d'algorithme.
Module suivant : quitter le tabulaire, remplacer par un réseau de neurones et découvrir les instabilités que cela crée.