Módulo 1 / 5
Autograd, grafos dinâmicos e backpropagation auditável
Redes neurais são programas diferenciáveis. O forward constrói ativações; o backward aplica a regra da cadeia para obter derivadas da loss em relação aos parâmetros. Em PyTorch, o grafo dinâmico facilita condicionais e debugging, mas exige cuidado com detach, no_grad e operações in-place.
Gradientes acumulam por padrão. Portanto, zerar gradients, executar backward e então optimizer.step é parte explícita do ciclo. Inspecionar normas de gradiente ajuda a detectar exploding/vanishing gradients.
Exemplo resolvido · cenário didático
Conferir a regra da cadeia
Se y=w×x e L=(y−t)², então dL/dw=2(wx−t)x. Para x=2, w=1 e t=3, o gradiente vale −4. O sinal indica que aumentar w um pouco deve reduzir a perda localmente.
Teste sua compreensão
Com passo 0,1, qual é o novo w?
Conferir o raciocínio
1,4. A previsão passa a 2,8 e a perda cai de 1 para 0,04.
Leitura de referência: PyTorch — diferenciação automática
Próximo módulo →Módulo 2 / 5
Otimização, schedules e estabilidade de treinamento
AdamW combina momentos adaptativos com weight decay desacoplado e é um baseline forte. SGD com momentum ainda pode generalizar muito bem. Scheduler, warmup e clipping são mecanismos diferentes: warmup estabiliza o início, scheduler reduz ou adapta a taxa, clipping limita picos de gradiente.
Inicialização precisa preservar escala das ativações e gradients. Xavier e He derivam de hipóteses sobre variância; em Transformers, normalização e parametrização mudam a dinâmica e frequentemente pedem recipes próprios.
Exemplo resolvido · cenário didático
Acumular não é duplicar a escala
Para simular um lote de 32 usando quatro microlotes de 8, some gradientes das perdas médias divididas por 4 e atualize uma vez. Sem dividir, o gradiente acumulado fica quatro vezes maior que a média do lote.
Teste sua compreensão
Batch normalization torna os dois procedimentos necessariamente idênticos?
Conferir o raciocínio
Não. As estatísticas de cada microlote e outras operações dependentes do lote podem mudar o resultado.
Leitura de referência: PyTorch — diferenciação automática
Próximo módulo →Módulo 3 / 5
Representações, convolução, sequência e attention
CNNs usam compartilhamento local de pesos, tornando-as eficientes para padrões espaciais. RNNs/LSTMs modelam sequência por estado recorrente, mas têm caminho serial. Attention remove grande parte dessa serialidade e permite relações diretas entre posições.
Escolha arquitetura pelo inductive bias, não pela moda. Para imagem pequena com poucos dados, augmentations e um backbone pré-treinado podem superar um modelo enorme treinado do zero.
Exemplo resolvido · cenário didático
Campo receptivo
Duas convoluções 3×3, com stride 1 e sem dilatação, têm campo receptivo 5×5. A primeira combina vizinhos a uma célula; a segunda combina vizinhos dessas combinações. Não é equivalente, em parâmetros ou não linearidade, a uma única convolução.
Teste sua compreensão
Qual o campo receptivo de três dessas camadas?
Conferir o raciocínio
7×7, sob as mesmas hipóteses de stride e dilatação.
Leitura de referência: PyTorch — diferenciação automática
Próximo módulo →Módulo 4 / 5
Mixed precision, memória, kernels e throughput
FP16/BF16 reduzem memória e aumentam throughput em hardware moderno. BF16 preserva faixa de expoente maior e tende a ser mais estável; FP16 pode precisar de loss scaling. Mixed precision mantém partes sensíveis, como certos acumuladores, em precisão maior.
Batch size interage com memória, estatística do gradiente e utilização de GPU. Gradient accumulation simula batch maior sem manter todas as amostras simultaneamente em memória, mas aumenta steps de compute por update.
Exemplo resolvido · cenário didático
Contabilidade de memória
Dez milhões de pesos em FP32 ocupam 40 milhões de bytes, aproximadamente 38,1 MiB. Gradientes, estados do otimizador e ativações exigem memória adicional. Reduzir a precisão dos pesos não reduz todos esses termos automaticamente.
Teste sua compreensão
Só os pesos em 16 bits ocupam quanto?
Conferir o raciocínio
20 milhões de bytes, cerca de 19,1 MiB; isso não é o consumo total do treinamento.
Leitura de referência: PyTorch — diferenciação automática
Próximo módulo →Módulo 5 / 5
Debugging sistemático, ablations e reproducibilidade
Quando o treino falha, reduza o problema. Tente overfit em um batch minúsculo; verifique labels; compare loss antes/depois de uma step; monitore grad norms; desative augmentations; confirme shapes e masks. Essa sequência encontra bugs muito mais rápido do que ajustar hiperparâmetros aleatoriamente.
Ablations devem mudar uma variável por vez e usar seeds suficientes quando o ruído importa. Registre tempo, tokens ou exemplos vistos, não só epochs, para comparar compute de forma justa.
Exemplo resolvido · cenário didático
Teste de um único lote
Se a rede não reduz a perda em 16 exemplos fixos, investigue rótulos, formas dos tensores, gradientes e atualização dos pesos antes de culpar generalização. Desative aumentos aleatórios para isolar o caminho de treinamento.
Teste sua compreensão
A perda de treino cai, mas a de validação sobe. O teste de um lote basta?
Conferir o raciocínio
Não. Ele verifica capacidade básica de ajuste; agora investigue sobreajuste, distribuição e separação dos dados.
Leitura de referência: PyTorch — diferenciação automática
Ir para o projeto →Projeto aplicado
Treinamento pequeno e reproduzível
- Faça uma rede pequena memorizar um lote de dados sintéticos antes do treino completo.
- Compare duas taxas de aprendizado mantendo dados e orçamento fixos.
- Registre curva de perda, qualidade reservada, tempo por passo e um erro diagnosticado.
Critérios para revisar sua entrega
- A execução pode ser reproduzida a partir das instruções e dos arquivos entregues.
- O baseline, as condições e as métricas permitem conferir a comparação.
- O relatório distingue resultado medido, simulação, hipótese e limitação.
Esta rubrica orienta a autoavaliação do projeto; a conclusão e a credencial seguem a avaliação do curso.
Continue com evidências.
Os exemplos numéricos são didáticos. Compare o raciocínio com a referência e registre o que você observou no seu próprio experimento.
PyTorch — diferenciação automática ↗Progresso e avaliação
A leitura e o roteiro de exercícios são abertos. Para registrar progresso e realizar a avaliação final do curso, entre na área de estudo.
Abrir minha área de estudo ↗