0Pricing
Learn AI with Python · Leçon

Méthodes de gradient de politique : REINFORCE

Théorème du gradient de politique, algorithme REINFORCE, soustraction d’une référence, réduction de la variance.

Méthodes de gradient de politique : REINFORCE est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.

RL fondé sur la valeur ou sur la politique

Certaines méthodes de RL apprennent la valeur des actions, puis agissent de manière gloutonne. Les méthodes de gradient de politique apprennent au contraire la politique directement : une fonction qui produit des probabilités d'action. Cette approche gère naturellement les actions continues et les politiques stochastiques.

La politique pi(a|s)

Une politique paramétrée pi(a|s, theta) associe un état à une distribution de probabilités sur les actions, avec des paramètres theta (un réseau neuronal). L'entraînement ajuste theta pour favoriser les actions qui rapportent davantage de récompenses.

class Policy(nn.Module):
    def __init__(self, obs_dim, n_actions):
        super().__init__()
        self.net = nn.Sequential(
            nn.Linear(obs_dim, 128), nn.ReLU(),
            nn.Linear(128, n_actions)
        )
    def forward(self, s):
        return torch.softmax(self.net(s), dim=-1)

Échantillonnage des actions

Comme la politique est une distribution, vous sample une action au lieu de choisir la plus probable. L'échantillonnage favorise l'exploration et rend la politique stochastique.

probs = policy(state)
dist = torch.distributions.Categorical(probs)
action = dist.sample()
log_prob = dist.log_prob(action)

Déroulement d'une trajectoire

Un épisode, ou trajectoire, est la suite des états, des actions et des récompenses du début à la fin. Vous recueillez une trajectoire complète en agissant dans l'environnement jusqu'à sa terminaison.

states, actions, rewards, log_probs = [], [], [], []
state, _ = env.reset()
done = False
while not done:
    probs = policy(torch.tensor(state).float())
    dist = torch.distributions.Categorical(probs)
    a = dist.sample()
    state, r, term, trunc, _ = env.step(a.item())
    rewards.append(r); log_probs.append(dist.log_prob(a))
    done = term or trunc

Le retour actualisé G_t

Le retour G_t est la récompense future totale à partir de l'instant t, actualisée par gamma afin que les récompenses les plus proches comptent davantage. Il indique la qualité des actions effectuées à partir du step t.

def returns(rewards, gamma=0.99):
    G, out = 0, []
    for r in reversed(rewards):
        G = r + gamma * G
        out.insert(0, G)
    return torch.tensor(out)

L'objectif de REINFORCE

REINFORCE effectue une ascension de gradient sur le retour attendu. Intuitivement : augmentez la probabilité des actions qui ont produit un retour élevé et diminuez celle des actions ayant produit un retour faible. Chaque action est pondérée par G_t.

Le gradient de politique

La perte est -sum(log_prob * G_t). Le signe négatif transforme l'ascension de gradient en descente, afin que l'optimiseur maximise le retour. La log-probabilité des actions ayant un retour élevé est augmentée.

G = returns(rewards)
loss = -torch.sum(torch.stack(log_probs) * G)

Mise à jour de la politique

Effectuez la rétropropagation et la mise à jour comme d'habitude. Une mise à jour utilise une trajectoire entière, puis vous la supprimez (REINFORCE fonctionne avec la politique courante : seules les données produites par celle-ci sont utilisées).

optimizer.zero_grad()
loss.backward()
optimizer.step()

Le problème de la forte variance

La version classique de REINFORCE est réputée instable et présente une forte variance : les retours peuvent varier considérablement d'un épisode à l'autre, ce qui rend les estimations du gradient bruitées et l'apprentissage lent et irrégulier.

Réduire la variance avec une référence

Soustraire une référence (comme le retour moyen) de G_t réduit la variance sans introduire de biais dans le gradient. Nous récompensons les actions qui sont meilleures que prévu, et pas seulement celles qui produisent un retour positif.

baseline = G.mean()
advantage = G - baseline
loss = -torch.sum(torch.stack(log_probs) * advantage)

Pourquoi REINFORCE est important

REINFORCE est le fondement de toutes les méthodes de gradient de politique. Ses faiblesses, à savoir sa forte variance et sa faible efficacité d'échantillonnage, motivent les méthodes actor-critic et PPO que vous découvrirez ensuite.

Vérification rapide

Testez votre compréhension du gradient de politique.

Récapitulatif : REINFORCE

Vous avez appris à paramétrer une politique pi(a|s,theta), à déployer des trajectoires, à calculer le retour actualisé G_t et à effectuer une ascension de gradient avec la perte -sum(log_prob * G_t). Vous avez observé la forte variance de REINFORCE et compris comment une référence la réduit.

Questions Fréquemment Posées

La leçon « Méthodes de gradient de politique : REINFORCE » est-elle gratuite ?

Oui — le texte complet de « Méthodes de gradient de politique : REINFORCE » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Méthodes de gradient de politique : REINFORCE » ?

Théorème du gradient de politique, algorithme REINFORCE, soustraction d’une référence, réduction de la variance. Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Learn AI with Python ?

Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Méthodes de gradient de politique : REINFORCE » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?

Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Méthodes de gradient de politique : REINFORCE
  2. Méthodes acteur-critique (A2C)
  3. Optimisation proximale de politique (PPO)
  4. Environnements Gymnasium personnalisés
← Retour à Learn AI with Python