E1 · Seu treino
3 minRode o curvas.py no treino da aula 5 e anote o termo que mais pagou no fim.
Pronto quando: python3 kit/curvas.py $F/treino/ppo; echo "saída: $?" → treino: ppo · 20 iterações e saída: 0.
Aula 6 · 16 min
Uma curva de recompensa subindo não quer dizer que o robô aprendeu a andar. Nesta aula você lê o log do seu treino e de dois treinos reais de 150 iterações, gravados para o curso: num deles a recompensa sobe porque o robô aprendeu a cair mais cedo. O outro mostra o conserto e o limite do conserto.
Começar a aula
Objetivo: ler o log de um treino e reconhecer colapso e recompensa hackeada.
Clique em cada bloco. Cada alerta compara o primeiro e o último quarto do treino.
Andar de joelhos, tremer e ficar parado são os atalhos clássicos. Todos aparecem lendo esses quatro números juntos, nunca a recompensa sozinha.
O progresso.csv da aula 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
Em 20 iterações a recompensa ainda oscila e o termo que mais paga é pose: a política mal saiu da pose padrão. Nenhum alerta, mas também nenhum aprendizado para ler. Por isso o kit traz dois treinos maiores. Atenção: o curvas.py sai 0 mesmo com alerta; leia a linha alertas:, não o código de saída.
Gerados com o mesmo kit/treinar.py, 32 ambientes, semente 0. cai-cedo usa kit/recompensa.yaml (8 min); com-vivo acrescenta o termo is_alive com peso 5 (10 min). Só o progresso.csv está no repositório.
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: a recompensa subiu de −4,31 para −1,12 enquanto o episódio caiu de 55 para 15 passos. Como cada passo de pé dava saldo negativo (a punição por ação brusca pesava mais que os prêmios), cair cedo virou a melhor estratégia.
com-vivo: com is_alive peso 5 (+0,1 por passo de pé, 5 por segundo), o episódio passa a crescer (57 → 63) e nenhum alerta dispara. Mas o termo que mais paga é is_alive e a velocidade é 0,16 m/s: o treino aprendeu a não cair, ainda não a andar.
Rode, veja a leitura das curvas barrar o treino e rode de novo. É o laço desta aula.
Simulação ilustrativa no navegador. O alerta na leitura das curvas é proposital: é o caso cai-cedo.
Ler antes de acreditar.
Rode o curvas.py no treino da aula 5 e anote o termo que mais pagou no fim.
Pronto quando: python3 kit/curvas.py $F/treino/ppo; echo "saída: $?" → treino: ppo · 20 iterações e saída: 0.
Rode os dois exemplos e escreva, numa frase, por que a recompensa do cai-cedo subiu.
Pronto quando: a saída do cai-cedo mostra ALERTA: recompensa hackeada e alertas: 1; sua frase cita o episódio encurtando (55 → 15 passos).
O com-vivo não cai, mas anda a 0,16 m/s. Proponha um ajuste de um termo (qual, peso antigo, peso novo) e diga o sinal que você esperaria ver nas curvas se ele funcionar.
Pronto quando: você escreveu um termo do kit/recompensa.yaml com os dois pesos e um sinal mensurável (ex.: velocidade no fim acima de 0,3 m/s sem o episódio encurtar).
A explicação aparece depois da sua resposta.
Pergunta 1 de 4
No cai-cedo, a recompensa subiu e o episódio caiu de 55 para 15 passos. O que a política aprendeu?competência
Pergunta 2 de 4
O com-vivo não dispara nenhum alerta. Por que ele ainda não é um bom treino?
Pergunta 3 de 4
Qual leitura detecta "recompensa hackeada" com mais segurança?
Pergunta 4 de 4
Por que o kit guarda dois treinos de exemplo em vez de pedir que você rode 150 iterações?
Escolha uma alternativa. A explicação aparece depois da sua tentativa.