Backpropagation na prática

Introdução a Deep Learning em Python

Dan Becker

Data Scientist and contributor to Keras and TensorFlow libraries

Backpropagation

ch2_4_v2.002.png

Introdução a Deep Learning em Python

Backpropagation

ch2_4_v2.003.png

Introdução a Deep Learning em Python

Backpropagation

ch2_4_v2.004.png

Introdução a Deep Learning em Python

Backpropagation

ch2_4_v2.010.png

Introdução a Deep Learning em Python

Calculando gradientes de qualquer peso

  • O gradiente de um peso é o produto de:
    1. Valor do nó que entra nesse peso
    2. Inclinação da função de ativação do nó de destino
    3. Inclinação da loss em relação ao nó de saída
Introdução a Deep Learning em Python

Backpropagation

ch2_4_v2.016.png

Introdução a Deep Learning em Python

Backpropagation

ch2_4_v2.017.png

Introdução a Deep Learning em Python

Backpropagation

ch2_4_v2.018.png

Introdução a Deep Learning em Python

Backpropagation

ch2_4_v2.019.png

Introdução a Deep Learning em Python

Backpropagation

ch2_4_v2.020.png

Introdução a Deep Learning em Python

Backpropagation

ch2_4_v2.021.png

Introdução a Deep Learning em Python

Backpropagation: Recap

  • Comece com pesos aleatórios
  • Faça uma previsão com forward propagation
  • Use backward propagation para calcular o gradiente da loss em relação a cada peso
  • Multiplique esse gradiente pela learning rate e subtraia dos pesos atuais
  • Repita até chegar numa região plana
Introdução a Deep Learning em Python

Stochastic gradient descent

  • É comum calcular gradientes só em um subconjunto dos dados (um batch)
  • Use um batch diferente para o próximo update
  • Recomece do início quando todos os dados forem usados
  • Cada passada pelos dados de treino é uma epoch
  • Quando os gradientes são calculados um batch por vez: stochastic gradient descent
Introdução a Deep Learning em Python

Vamos praticar!

Introdução a Deep Learning em Python

Preparing Video For Download...