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 truncO 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
- Métodos de gradiente de política: REINFORCE
- Métodos ator-crítico (A2C)
- Otimização proximal de política (PPO)
- Ambientes personalizados do Gymnasium