0%
Retropropagação explicada passo a passo

Retropropagação explicada passo a passo

O gradiente calculado inteiramente à mão em uma rede de dois neurônios, com os números, e depois verificado por autograd e por diferenças finitas.

10-15 min

Retropropagação explicada passo a passo

perte.backward(). Uma chamada, nenhum argumento, e as derivadas de vários milhões de parâmetros aparecem. É a linha mais útil do PyTorch e também aquela que a maioria das pessoas escreve sem saber o que ela faz. Enquanto tudo funciona, a ignorância é confortável.

Ela deixa de ser confortável no primeiro problema sério. Por que o gradiente da primeira camada é um milhão de vezes menor que o da última? Por que esse nan aparece na terceira iteração e não na primeira? Por que esse modelo que compartilha um encoder entre duas heads levanta « Trying to backward through the graph a second time »? Nenhuma dessas perguntas se resolve por tentativa e erro. Elas se resolvem sabendo qual quantidade circula, em que sentido, e o que a multiplica a cada etapa.

Esta lição faz, portanto, algo incomum: calcula um gradiente inteiramente à mão, com números decimais, em uma rede pequena o bastante para que nenhuma etapa fique escondida — uma entrada, um neurônio oculto, um neurônio de saída, quatro parâmetros. Em seguida, pede ao autograd que refaça o mesmo cálculo e compara os números. Depois, verifica uma terceira vez por diferenças finitas, uma técnica de checagem que os profissionais realmente usam para validar uma camada escrita à mão.

Link copiado!