Métodos de gradiente de política: REINFORCE
Teorema del gradiente de política, algoritmo REINFORCE, resta de una línea base y reducción de la varianza.
Métodos de gradiente de política: REINFORCE es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.
RL basado en valores frente a RL basado en políticas
Algunos métodos de RL aprenden el valor de las acciones y después actúan de forma codiciosa. En cambio, los métodos de gradiente de políticas aprenden la política directamente: una función que produce probabilidades de acción. Esto permite manejar de forma natural acciones continuas y políticas estocásticas.
La política pi(a|s)
Una política parametrizada pi(a|s, theta) transforma un estado en una distribución de probabilidad sobre las acciones, con parámetros theta (una red neuronal). El entrenamiento ajusta theta para favorecer las acciones que obtienen una mayor 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)Muestreo de acciones
Como la política es una distribución, se muestrea una acción en lugar de elegir la de mayor probabilidad. El muestreo proporciona exploración y hace que la política sea estocástica.
probs = policy(state)
dist = torch.distributions.Categorical(probs)
action = dist.sample()
log_prob = dist.log_prob(action)Recorrido de una trayectoria
Un episodio, o trayectoria, es la secuencia de estados, acciones y recompensas desde el inicio hasta el final. Se recopila una trayectoria completa actuando en el entorno hasta que termina.
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 truncEl retorno descontado G_t
El retorno G_t es la recompensa futura total desde el instante t, descontada mediante gamma para que las recompensas más cercanas tengan mayor peso. Indica qué tan buenas resultaron las acciones tomadas desde el paso t en adelante.
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)El objetivo de REINFORCE
REINFORCE realiza un ascenso del gradiente sobre el retorno esperado. Intuitivamente: aumente la probabilidad de las acciones que produjeron un retorno alto y reduzca la de las que produjeron uno bajo. Cada acción se pondera con G_t.
El gradiente de la política
La función de pérdida es -sum(log_prob * G_t). El signo negativo convierte el ascenso del gradiente en descenso, de modo que el optimizador maximiza el retorno. La probabilidad logarítmica de las acciones con un retorno alto aumenta.
G = returns(rewards)
loss = -torch.sum(torch.stack(log_probs) * G)Actualización de la política
Realice la retropropagación y actualice como de costumbre. Cada actualización utiliza una trayectoria completa y después la descarta (REINFORCE se basa en la política actual: solo utiliza datos de la política actual).
optimizer.zero_grad()
loss.backward()
optimizer.step()El problema de la alta varianza
El REINFORCE básico es famoso por ser inestable y tener una varianza alta: los retornos varían enormemente entre episodios, por lo que las estimaciones del gradiente son ruidosas y el aprendizaje es lento e irregular.
Línea base para reducir la varianza
Restar una línea base (como el retorno promedio) de G_t reduce la varianza sin introducir sesgo en el gradiente. Se premian las acciones por ser mejores de lo esperado, no solo por producir un retorno positivo.
baseline = G.mean()
advantage = G - baseline
loss = -torch.sum(torch.stack(log_probs) * advantage)Por qué es importante REINFORCE
REINFORCE es la base de todos los métodos de gradiente de política. Sus debilidades, la alta varianza y la ineficiencia en el uso de muestras, motivan los métodos actor-crítico y PPO que verá a continuación.
Comprobación rápida
Compruebe su comprensión del gradiente de política.
Resumen: REINFORCE
Aprendió a parametrizar una política pi(a|s,theta), ejecutar trayectorias, calcular el retorno descontado G_t y realizar un ascenso del gradiente con la función de pérdida -sum(log_prob * G_t). También observó la alta varianza de REINFORCE y cómo una línea base la reduce.
Preguntas frecuentes
¿La lección «Métodos de gradiente de política: REINFORCE» es gratis?
Sí — el texto completo de «Métodos de gradiente de política: REINFORCE» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.
¿Qué aprenderé en «Métodos de gradiente de política: REINFORCE»?
Teorema del gradiente de política, algoritmo REINFORCE, resta de una línea base y reducción de la varianza. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Learn AI with Python?
No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Métodos de gradiente de política: REINFORCE»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?
Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Métodos de gradiente de política: REINFORCE
- Métodos actor-crítico (A2C)
- Optimización de política proximal (PPO)
- Entornos personalizados de Gymnasium