0Pricing
Learn AI with Python · Aula

Métodos de gradiente de política: REINFORCE

Teorema do gradiente de política, algoritmo REINFORCE, subtração de uma linha de base e redução da variância.

Métodos de gradiente de política: REINFORCE é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.

RL baseado em valor vs baseado em Policy

Alguns métodos de RL aprendem o valor das ações e depois agem de forma gananciosa. Em vez disso, os métodos de gradiente de Policy aprendem a Policy diretamente: uma função que produz probabilidades de ações. Isso lida naturalmente com ações contínuas e Policies estocásticas.

A Policy pi(a|s)

Uma Policy parametrizada pi(a|s, theta) mapeia um estado para uma distribuição de probabilidades sobre as ações, com parâmetros theta (uma rede neural). O treinamento ajusta theta para favorecer ações que proporcionam mais recompensa.

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)

Amostrando ações

Como a Policy é uma distribuição, você amostra uma ação em vez de escolher a máxima. A amostragem proporciona exploração e torna a Policy estocástica.

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

Executando uma trajetória

Um episódio (trajetória) é a sequência de estados, ações e recompensas do início ao fim. Você coleta uma trajetória completa agindo no ambiente até que ele termine.

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

O retorno descontado G_t

O retorno G_t é a recompensa futura total a partir do instante t, descontada por gamma para que as recompensas mais próximas tenham maior peso. Ele informa quão boas foram as ações realizadas a partir da etapa 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)

O objetivo do REINFORCE

REINFORCE realiza subida do gradiente sobre o retorno esperado. Intuitivamente: aumente a probabilidade das ações que levaram a um retorno alto e diminua a das que levaram a um retorno baixo. Cada ação recebe um peso determinado por G_t.

O gradiente da política

A perda é -sum(log_prob * G_t). O sinal negativo transforma a subida do gradiente em descida, para que o otimizador maximize o retorno. A log-probabilidade das ações com retorno alto é aumentada.

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

Atualizando a política

Faça a retropropagação e atualize como de costume. Uma atualização usa uma trajetória inteira, que é descartada em seguida (REINFORCE é executado em política: apenas dados da política atual).

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

Problema da alta variância

O REINFORCE básico é notoriamente instável e apresenta alta variância: os retornos variam enormemente entre episódios, portanto as estimativas do gradiente são ruidosas e o aprendizado é lento e irregular.

Linha de base para redução da variância

Subtrair uma linha de base (como o retorno médio) de G_t reduz a variância sem introduzir viés no gradiente. As ações são recompensadas por serem melhores que o esperado, não apenas por terem retorno positivo.

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

Por que REINFORCE é importante

REINFORCE é a base de todos os métodos de gradiente da política. Suas limitações, a alta variância e a baixa eficiência de amostras, motivam os métodos actor-critic e PPO que serão apresentados a seguir.

Verificação rápida

Teste sua compreensão do gradiente da política.

Recapitulação: REINFORCE

Você aprendeu a parametrizar uma política pi(a|s,theta), executar trajetórias, calcular o retorno com desconto G_t e realizar a subida do gradiente com a perda -sum(log_prob * G_t). Você viu a alta variância do REINFORCE e como uma linha de base a reduz.

Perguntas Frequentes

A aula “Métodos de gradiente de política: REINFORCE” é grátis?

Sim — o texto completo de “Métodos de gradiente de política: REINFORCE” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.

O que vou aprender em “Métodos de gradiente de política: REINFORCE”?

Teorema do gradiente de política, algoritmo REINFORCE, subtração de uma linha de base e redução da variância. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Learn AI with Python?

Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Métodos de gradiente de política: REINFORCE”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Learn AI with Python?

Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Métodos de gradiente de política: REINFORCE
  2. Métodos ator-crítico (A2C)
  3. Otimização proximal de política (PPO)
  4. Ambientes personalizados do Gymnasium
← Voltar para Learn AI with Python