Formación Módulo 7 de 11

M07

Algoritmos e hiperparámetros

PPO, SAC y los botones que ajustan cómo aprende tu coche

  • Duración: 45 min
  • Todos
  • Vídeo + test de 5 preguntas

Al terminar sabrás…

  • Diferenciar PPO y SAC y saber cuándo se puede usar cada uno
  • Explicar qué son el aprendizaje on-policy, el off-policy y la entropía
  • Conocer cada hiperparámetro de DeepRacer on AWS con su valor por defecto y su rango
  • Diseñar experimentos que cambien una sola variable cada vez
  • Llevar un diario de experimentos para comparar modelos con criterio

Vídeo: Algoritmos e hiperparámetros en 5 minutos

Algoritmos e hiperparámetros en 5 minutosEl vídeo de este módulo está en preparación. Mientras tanto, tienes el guion completo justo debajo.
Guion del vídeo (texto)

Algoritmo e hiperparámetros. Ya sabes que la función de recompensa le dice al coche qué es conducir bien. El algoritmo es otra cosa: es el método que usa para aprender de esas recompensas. Y los hiperparámetros son los ajustes de ese método, como la sensibilidad del ratón en un videojuego. No cambian el objetivo, cambian cómo de rápido y cómo de estable aprende. Los eliges al crear el modelo, en el segundo paso del asistente.

PPO, el que viene por defecto. PPO es el algoritmo por defecto. Mejora a base de pequeños ajustes prudentes, como cuando corriges tu técnica después de cada vuelta de entrenamiento. Aprende solo de las experiencias de su forma actual de conducir, y por eso se dice que es on policy. Es estable y fiable, pero necesita más vueltas para aprender. Además, funciona tanto con espacio de acciones discreto como continuo.

SAC, el explorador. SAC es el explorador. Puede reaprovechar experiencias de versiones anteriores de su política, por eso es off policy. Saca más partido a cada vuelta, pero es menos estable y necesita más ajuste fino. Una condición importante: solo funciona con espacio de acciones continuo. Y recuerda que, si clonas un modelo, no podrás cambiar de algoritmo, así que la elección inicial cuenta.

Entropía y SAC alpha. La entropía mide la incertidumbre de la política. Si es alta, el coche está indeciso y prueba cosas distintas. Si es baja, está muy seguro de lo que hace. PPO la usa como un freno para no encasillarse demasiado pronto. SAC la incluye en lo que intenta maximizar, y el valor alpha decide cuánto pesa: cerca de uno favorece explorar y cerca de cero se olvida de la exploración extra.

Los hiperparámetros clave. Los más importantes son cuatro. La tasa de aprendizaje decide cómo de grandes son los ajustes: alta aprende rápido pero se vuelve inestable. El tamaño de lote y los epochs deciden cuántas experiencias se estudian juntas y cuántas veces se repasan. El factor de descuento indica cuánto importan las recompensas futuras. Y el número de episodios dice cuántas vueltas se recogen antes de actualizar la red.

Valores por defecto. Los valores por defecto de la plataforma son un buen punto de partida. La tasa de aprendizaje es de tres diezmilésimas, el tamaño de lote es de sesenta y cuatro y el factor de descuento es de cero coma noventa y nueve. En PPO, además, se hacen diez pasadas por lote y se recogen veinte episodios antes de cada actualización. Si estás empezando, no los toques hasta tener una buena función de recompensa.

Experimenta como en un laboratorio. Probar hiperparámetros al azar es como cambiar a la vez los neumáticos, el motor y el piloto: si mejoras, no sabrás por qué. Trabaja como en un laboratorio. Ten un modelo de referencia y crea variantes que cambien una sola cosa. Entrena todas en la misma pista y durante el mismo tiempo, y evalúalas con el mismo número de vueltas. Solo así la comparación es justa.

Tu diario de experimentos. Cada entrenamiento consume horas de cómputo, así que no desperdicies ninguno. Lleva un diario: nombre del modelo, de cuál viene, qué cambiaste, tu hipótesis y los resultados de la evaluación. Antes de lanzar el siguiente experimento, escribe una conclusión en una frase. En un campeonato donde se suman los tiempos de tres carreras, el equipo que aprende de cada intento es el que llega más lejos.

La función de recompensa le dice a tu coche qué es conducir bien. El algoritmo y sus hiperparámetros deciden cómo aprende a partir de esas recompensas. Piensa en aprender a ir en bici: la meta (no caerte y llegar rápido) es la recompensa; tu forma de practicar (muchos intentos cortos o pocos largos, corregir mucho o poco tras cada caída) son el algoritmo y sus ajustes.

En DeepRacer on AWS los eliges en el segundo paso del asistente, Choose vehicle sensors and hyperparameters (elegir sensores e hiperparámetros).

PPO frente a SAC

La plataforma ofrece dos algoritmos: PPO, que viene por defecto, y SAC.

PPO (Proximal Policy Optimization) SAC (Soft Actor-Critic)
Espacio de acciones Discreto y continuo Solo continuo
Tipo de aprendizaje On-policy Off-policy
Entropía La usa como regularizador La añade a lo que maximiza
Estabilidad Más estable Menos estable
Datos que necesita Más Menos (más eficiente)
Descripción en la guía Mejora con "small, careful adjustments", como refinar la técnica tras cada vuelta de práctica "More flexible but requiring more fine-tuning"

On-policy y off-policy

  • On-policy (PPO): aprende solo de las experiencias generadas por su política actual. Es como un estudiante que solo repasa los ejercicios que acaba de hacer: lo que aprende es fiable, pero necesita hacer muchos ejercicios nuevos.
  • Off-policy (SAC): puede reutilizar experiencias de versiones anteriores de la política. Es como repasar también los exámenes de otros años: aprovecha mejor la información, pero a veces lo que aprendió con "la versión antigua de sí mismo" ya no encaja y el aprendizaje se vuelve más inestable.

En la plataforma, PPO "uses two neural networks during training - a policy network and a value network" (una red decide la acción y la otra estima lo buena que es la situación). SAC "embraces exploration, incentivizing entropy in its pursuit of optimal policy".

Entropía y SAC alpha

La entropía mide la incertidumbre de la política:

  • Entropía alta: la política está indecisa, reparte sus probabilidades entre muchas acciones. Explora.
  • Entropía baja: la política está muy segura de qué hacer. Explota lo que ya sabe.

Recuerda el dilema de la exploración: si el coche solo repite lo que ya funciona, nunca descubrirá algo mejor; si solo prueba cosas nuevas, nunca aprovechará lo aprendido.

  • PPO usa la entropía como regularizador: un pequeño empujón para no volverse "cabezota" demasiado pronto y caer en un óptimo local. En la plataforma se controla con Entropy (beta_entropy).
  • SAC la maximiza junto con la recompensa, y por eso "tends to give up on policies that choose unpromising behavior", lo que lo hace más eficiente con los datos. El peso de la entropía se controla con SAC alpha (sac_alpha): 1,0 favorece la exploración y 0,0 recupera el objetivo de RL estándar.

Tabla de hiperparámetros de DeepRacer on AWS

Valores por defecto y rangos tomados del código fuente oficial de la plataforma. Al cambiar de algoritmo en el asistente, se cargan los valores por defecto del algoritmo elegido.

Hiperparámetro (UI / clave) PPO SAC Rango permitido Qué hace
Gradient descent batch size / batch_size 64 64 32, 64, 128, 256 o 512 Cuántas experiencias se miran juntas antes de cada actualización. Más grande: aprendizaje más suave pero más lento
Number of epochs / num_epochs 10 no aplica entero de 3 a 10 (solo PPO) Cuántas pasadas se dan sobre el mismo lote. Más: aprende a fondo, pero arriesga sobreajuste
Learning rate / lr 0.0003 0.0003 de 1e-8 a 1e-3 Tamaño de cada ajuste. Alta: más rápida pero inestable. Baja: más lenta pero estable
Entropy / beta_entropy 0.01 no aplica de 0 a 1 (solo PPO) Mantiene la exploración penalizando el comportamiento demasiado determinista
SAC alpha / sac_alpha no aplica 0.2 de 0 a 1 (solo SAC) Equilibrio entre probar cosas nuevas y explotar lo aprendido
Discount factor / discount_factor 0.99 0.99 de 0 a 1 Peso de las recompensas futuras frente a las inmediatas. Alto: piensa en completar la vuelta
Loss type / loss_type Huber Mean squared error Huber o MSE Huber trata con suavidad los errores pequeños y no exagera los grandes; MSE castiga mucho los grandes
Number of experience episodes between each policy-updating iteration / num_episodes_between_training 20 1 (fijo) PPO: entero de 5 a 100; SAC: exactamente 1 Cuántos episodios se recogen antes de actualizar la red

Una analogía para la tasa de aprendizaje: es el tamaño de tus pasos cuando bajas una montaña con niebla buscando el valle. Pasos enormes te llevan rápido, pero puedes pasarte el valle y subir por el otro lado. Pasos diminutos son seguros, pero puede que se acabe el tiempo antes de llegar. La guía lo resume así: "A larger learning rate results in a faster training but may make the trained model lower quality."

Y para el factor de descuento: con 0,99 el coche valora casi igual un punto ahora que un punto dentro de un rato, así que "piensa" en toda la vuelta. Con un valor bajo sería un conductor que solo mira el metro que tiene delante.

Qué tocar primero y cómo experimentar

Los hiperparámetros "are empirical and require systematic tuning for each training", dice la guía: no hay una receta universal, hay que probar con método. Pero no son lo primero. El plan oficial para principiantes los deja casi para el final:

  1. Entrenar con la configuración y la recompensa por defecto en una pista sencilla.
  2. Mejorar la función de recompensa para premiar la velocidad.
  3. Ajustar el espacio de acciones (por ejemplo, subir la velocidad máxima).
  4. Pasar a pistas más complejas y comprobar que el modelo generaliza.
  5. (Opcional) Ajustar hiperparámetros y analizar los registros.

Un buen orden cuando llegues al paso 5: primero la tasa de aprendizaje (es la que más influye en la estabilidad), después el número de episodios entre actualizaciones y el tamaño de lote, y por último la entropía o SAC alpha si ves que el coche se encasilla o, al contrario, no termina de decidirse.

El método del laboratorio

  1. Un modelo de referencia. Tu mejor modelo hasta ahora, con sus resultados de evaluación apuntados.
  2. Una hipótesis. "Si bajo la tasa de aprendizaje a 0.0001, el entrenamiento será más estable y completará más vueltas."
  3. Una sola variable. Cambia solo esa. Misma recompensa, mismo espacio de acciones, misma pista, mismo tiempo de entrenamiento.
  4. El mismo punto de partida. Si comparas clones, clona todos del mismo modelo padre. No compares un clon (que ya sabía algo) con un modelo nuevo (que empieza de cero).
  5. La misma evaluación. Misma pista, mismo sentido y mismo número de vueltas.
  6. Una conclusión. Apúntala antes de lanzar el siguiente experimento.

Diario de experimentos

Copia esta plantilla en una hoja de cálculo o en tu cuaderno. Una fila por modelo.

N.º Modelo Clonado de Qué cambio Hipótesis Tiempo de entrenamiento % completado (eval.) Mejor tiempo por vuelta Salidas de pista Conclusión
1 ref-ppo-base (nuevo) Nada: referencia — 60 min
2 exp-lr-0001 ref-ppo-base lr de 0.0003 a 0.0001 Más estable, más vueltas completas 60 min
3 exp-batch-128 ref-ppo-base batch_size de 64 a 128 Aprendizaje más suave 60 min

Consejos para el diario:

  • Usa nombres de modelo que digan qué cambia (solo letras, números y guiones; hasta 64 caracteres).
  • Copia los datos de evaluación: porcentaje de vuelta completado, tiempo y salidas de pista.
  • Anota también lo que ves en el vídeo: "zig-zag en las rectas", "se sale siempre en la misma curva".
  • Escribe la conclusión aunque sea "no ha cambiado nada": también es información.

Actividad práctica

Diseña y lanza tu primer experimento controlado de hiperparámetros.

  1. Abre Your models (tus modelos) y elige tu mejor modelo como referencia. Copia sus datos de evaluación en la fila 1 del diario.
  2. Localiza sus hiperparámetros (los verás precargados en el asistente al clonarlo) y compáralos con la tabla de este módulo.
  3. Elige un solo hiperparámetro y escribe tu hipótesis en el diario. Si dudas, empieza por la tasa de aprendizaje.
  4. En el menú Actions (acciones) del modelo de referencia, elige Clone (clonar). Ponle un nombre como exp-lr-0001.
  5. En el paso Choose vehicle sensors and hyperparameters, cambia solo el hiperparámetro elegido, dentro del rango permitido. No toques la función de recompensa ni el espacio de acciones.
  6. Pon el mismo Maximum time que usarás para el resto de experimentos de esta serie y pulsa Train your model.
  7. Si tenéis horas suficientes, que otra persona del equipo haga un segundo clon cambiando otro hiperparámetro, a partir del mismo modelo de referencia.
  8. Evalúa cada clon en la misma pista y con el mismo número de vueltas que la referencia. Rellena el diario.
  9. Escribe la conclusión: ¿se cumplió la hipótesis? ¿Qué probarías ahora?

Resumen

  • PPO, el algoritmo por defecto, es on-policy, más estable y funciona con espacios discretos y continuos; SAC es off-policy, más eficiente con los datos y solo admite espacio continuo.
  • La entropía mide lo indecisa que está la política: PPO la usa como regularizador y SAC la maximiza con el peso SAC alpha.
  • Los valores por defecto (tasa de aprendizaje de 0.0003, lote de 64, descuento de 0.99, 10 epochs y 20 episodios en PPO) son un buen punto de partida.
  • Antes de tocar hiperparámetros, mejora la función de recompensa y el espacio de acciones.
  • Experimenta cambiando una sola variable cada vez, desde el mismo modelo padre, y apunta todo en el diario.

Test final

Comprueba lo que has aprendido. Necesitas 4 aciertos de 5 para superar el módulo.