E1 · Tu entrenamiento
3 minEjecuta curvas.py en el entrenamiento de la clase 5 y anota el término que más pagó al final.
Listo cuando: python3 kit/curvas.py $F/treino/ppo; echo "saída: $?" → treino: ppo · 20 iterações y saída: 0.
Clase 6 · 16 min
Una curva de recompensa que sube no significa que el robot aprendió a caminar. En esta clase lees el log de tu entrenamiento y el de dos entrenamientos reales de 150 iteraciones, grabados para el curso: en uno la recompensa sube porque el robot aprendió a caer más temprano. El otro muestra el arreglo y el límite del arreglo.
Comenzar la clase
Objetivo: leer el log de un entrenamiento y reconocer colapso y recompensa hackeada (reward hacking).
Haz clic en cada bloque. Cada alerta compara el primer y el último cuarto del entrenamiento.
Caminar de rodillas, temblar y quedarse parado son los atajos clásicos. Todos aparecen leyendo esos cuatro números juntos, nunca la recompensa sola.
El progresso.csv de la clase 5.
F=${FTH:-$HOME/fth}; cd $F/locomocao && . $F/.venv/bin/activate
python3 kit/curvas.py $F/treino/ppo; echo "saída: $?"treino: ppo · 20 iterações (médias do primeiro e do último quarto) recompensa inicial: -3.64 · final: -4.75 episódio médio: 46 → 58 passos (de 1000) velocidade para a frente no fim: 0.14 m/s · termo que mais pagou no fim: pose (1.00) alertas: 0 saída: 0
En 20 iteraciones la recompensa todavía oscila y el término que más paga es pose: la policy apenas salió de la pose por defecto. No hay alertas, pero tampoco hay aprendizaje que leer. Por eso el kit trae dos entrenamientos más grandes. Atención: curvas.py sale con 0 aunque haya alerta; lee la línea alertas:, no el código de salida.
Generados con el mismo kit/treinar.py, 32 entornos, semilla 0. cai-cedo usa kit/recompensa.yaml (8 min); com-vivo agrega el término is_alive con peso 5 (10 min). Solo el progresso.csv está en el repositorio.
is_alive: {weight: 5.0} # 5 × 0,02 s = +0,1 por passo de pé: ficar vivo passa a valer mais que a puniçãoF=${FTH:-$HOME/fth}; cd $F/locomocao && . $F/.venv/bin/activate
for x in cai-cedo com-vivo; do python3 kit/curvas.py kit/exemplos/$x; echo; donetreino: cai-cedo · 150 iterações (médias do primeiro e do último quarto) recompensa inicial: -4.31 · final: -1.12 episódio médio: 55 → 15 passos (de 1000) velocidade para a frente no fim: 0.15 m/s · termo que mais pagou no fim: upright (0.23) ALERTA: recompensa hackeada: a recompensa subiu porque o episódio encurtou; cada passo de pé custa mais do que paga, e cair cedo virou a melhor estratégia alertas: 1 treino: com-vivo · 150 iterações (médias do primeiro e do último quarto) recompensa inicial: 1.36 · final: 2.32 episódio médio: 57 → 63 passos (de 1000) velocidade para a frente no fim: 0.16 m/s · termo que mais pagou no fim: is_alive (6.27) alertas: 0
cai-cedo: la recompensa subió de −4,31 a −1,12 mientras el episodio cayó de 55 a 15 pasos. Como cada paso de pie daba saldo negativo (la penalización por acción brusca pesaba más que los premios), caer temprano se volvió la mejor estrategia.
com-vivo: con is_alive peso 5 (+0,1 por paso de pie, 5 por segundo), el episodio pasa a crecer (57 → 63) y ninguna alerta se dispara. Pero el término que más paga es is_alive y la velocidad es 0,16 m/s: el entrenamiento aprendió a no caer, aún no a caminar.
Ejecuta, mira cómo la lectura de las curvas frena el entrenamiento y ejecuta de nuevo. Ese es el ciclo de esta clase.
Simulación ilustrativa en el navegador. La alerta en la lectura de las curvas es intencional: es el caso cai-cedo.
Lee antes de creer.
Ejecuta curvas.py en el entrenamiento de la clase 5 y anota el término que más pagó al final.
Listo cuando: python3 kit/curvas.py $F/treino/ppo; echo "saída: $?" → treino: ppo · 20 iterações y saída: 0.
Ejecuta los dos ejemplos y escribe, en una frase, por qué subió la recompensa del cai-cedo.
Listo cuando: la salida del cai-cedo muestra ALERTA: recompensa hackeada y alertas: 1; tu frase cita el episodio acortándose (55 → 15 pasos).
El con-vivo no se cae, pero camina a 0,16 m/s. Propón un ajuste de un término (cuál, peso anterior, peso nuevo) y di qué señal esperarías ver en las curvas si funciona.
Listo cuando: escribiste un término de kit/recompensa.yaml con los dos pesos y una señal medible (p. ej.: velocidad al final por encima de 0,3 m/s sin que el episodio se acorte).
La explicación aparece después de tu respuesta.
Pregunta 1 de 4
En el cai-cedo, la recompensa subió y el episodio cayó de 55 a 15 pasos. ¿Qué aprendió la policy?competencia
Pregunta 2 de 4
El con-vivo no dispara ninguna alerta. ¿Por qué todavía no es un buen entrenamiento?
Pregunta 3 de 4
¿Qué lectura detecta la "recompensa hackeada" con más seguridad?
Pregunta 4 de 4
¿Por qué el kit guarda dos entrenamientos de ejemplo en lugar de pedirte que ejecutes 150 iteraciones?
Elige una alternativa. La explicación aparece después de tu intento.