Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Como calcular o Gradiente Numérico para testar se uma implantação do backpropagation está correta?

Olá, pessoal!

Em um tópico anterior aqui na Alura, uma professora me sugeriu implementar o teste de gradiente numérico para verificar a correção da implementação do backpropagation em uma rede perceptron multicamadas. A dica dela foi comparar os gradientes calculados pelo backpropagation e verificar se a diferença é menor que um pequeno limiar, como 1e-7.

Eu já ouvi falar sobre o gradiente numérico, mas não sei como calculá-lo. Gostaria muito de aprender mais sobre isso!

Minhas perguntas são:

  • (1) Qual é a fórmula matemática que posso usar para calcular o gradiente numérico?

Agradeço muito qualquer ajuda que vocês possam me dar. Isso seria muito valioso para o meu aprendizado!

Obrigado!

2 respostas
solução!

Oii, William! Como você está?

Como sugestão, para calcular o gradiente numérico e verificar a correção do backpropagation, testes os passos abaixo de exemplo:

  • Escolha um valor pequeno, como 1e−5.
  • Para cada parâmetro da sua rede:
    1. Aumente o parâmetro pelo valor escolhido e calcule a função de custo.
    2. Diminua o parâmetro pelo mesmo valor e calcule a função de custo novamente.
    3. A diferença entre esses dois valores, dividida pelo dobro do valor pequeno escolhido, dá a aproximação do gradiente.

Compare esses gradientes numéricos com os gradientes obtidos pelo backpropagation. Se a diferença for menor que um pequeno limiar, como 1e−7, sua implementação está correta.

Espero ter ajudado. Continue se dedicando aos estudos.

Abraço!

Oi Nathalia, boa tarde. Muito obrigado por explicar como se faz!