Descenso de gradiente

Introducción al Deep Learning en Python

Dan Becker

Data Scientist and contributor to Keras and TensorFlow libraries

Descenso de gradiente

ch2_2.003.png

Introducción al Deep Learning en Python

Descenso de gradiente

ch2_2.004.png

Introducción al Deep Learning en Python

Descenso de gradiente

ch2_2.005.png

Introducción al Deep Learning en Python

Descenso de gradiente

ch2_2.006.png

Introducción al Deep Learning en Python

Descenso de gradiente

ch2_2.008.png

Introducción al Deep Learning en Python

Descenso de gradiente

ch2_2.009.png

Introducción al Deep Learning en Python

Descenso de gradiente

ch2_2.010.png

Introducción al Deep Learning en Python

Descenso de gradiente

ch2_2.011.png

Introducción al Deep Learning en Python

Descenso de gradiente

ch2_2.012.png

Introducción al Deep Learning en Python

Descenso de gradiente

ch2_2.013.png

Introducción al Deep Learning en Python

Descenso de gradiente

ch2_2.014.png

Introducción al Deep Learning en Python

Descenso de gradiente

  • Si la pendiente es positiva:
    • Ir en contra de la pendiente baja el valor
    • Resta la pendiente al valor actual
    • Un paso grande puede desviarte
  • Solución: tasa de aprendizaje
    • Actualiza cada peso restando tasa de aprendizaje * pendiente
Introducción al Deep Learning en Python

Ejemplo de cálculo de pendiente

ch2_2.022.png

  • Para calcular la pendiente de un peso, multiplica:
    • Pendiente de la función de pérdida respecto al valor en el nodo de entrada
    • Valor del nodo que entra a nuestro peso
    • Pendiente de la activación respecto al valor de entrada
Introducción al Deep Learning en Python

Ejemplo de cálculo de pendiente

ch2_2.028.png

  • Para calcular la pendiente de un peso, multiplica:
    • Pendiente de la función de pérdida respecto al valor en el nodo de entrada
    • Valor del nodo que entra a nuestro peso
    • Pendiente de la activación respecto al valor de entrada
Introducción al Deep Learning en Python

Ejemplo de cálculo de pendiente

ch2_2.029.png

  • Pendiente de la pérdida cuadrática media respecto a la predicción:
    • 2 (Valor predicho - Valor real) = 2 Error
    • 2 * -4
Introducción al Deep Learning en Python

Ejemplo de cálculo de pendiente

ch2_2.033.png

  • Para calcular la pendiente de un peso, multiplica:
    • Pendiente de la función de pérdida respecto al valor en el nodo de entrada
    • Valor del nodo que entra a nuestro peso
    • Pendiente de la activación respecto al valor de entrada
Introducción al Deep Learning en Python

Ejemplo de cálculo de pendiente

ch2_2.035.png

  • Para calcular la pendiente de un peso, multiplica:
    • Pendiente de la función de pérdida respecto al valor en el nodo de entrada
    • Valor del nodo que entra a nuestro peso
    • Pendiente de la activación respecto al valor de entrada
Introducción al Deep Learning en Python

Ejemplo de cálculo de pendiente

ch2_2.037.png

  • Para calcular la pendiente de un peso, multiplica:
    • Pendiente de la función de pérdida respecto al valor en el nodo de entrada
    • Valor del nodo que entra a nuestro peso
    • Pendiente de la activación respecto al valor de entrada
Introducción al Deep Learning en Python

Ejemplo de cálculo de pendiente

ch2_2.038.png

  • Para calcular la pendiente de un peso, multiplica:
    • Pendiente de la función de pérdida respecto al valor en el nodo de entrada
    • Valor del nodo que entra a nuestro peso
    • Pendiente de la activación respecto al valor de entrada
Introducción al Deep Learning en Python

Ejemplo de cálculo de pendiente

ch2_2.044.png

  • 2 * -4 * 3
  • -24
  • Si la tasa de aprendizaje es 0.01, el nuevo peso sería
  • 2 - 0.01(-24) = 2.24
Introducción al Deep Learning en Python

Red con dos entradas que afectan la predicción

ch2_2.045.png

Introducción al Deep Learning en Python

Código para calcular pendientes y actualizar pesos

import numpy as np
weights = np.array([1, 2])
input_data = np.array([3, 4])
target = 6
learning_rate = 0.01
preds = (weights * input_data).sum()
error = preds - target

print(error)
5
Introducción al Deep Learning en Python

Código para calcular pendientes y actualizar pesos

gradient = 2 * input_data * error

gradient
array([30, 40])
weights_updated = weights - learning_rate * gradient
preds_updated = (weights_updated * input_data).sum()
error_updated = preds_updated - target

print(error_updated)
2.5
Introducción al Deep Learning en Python

¡Vamos a practicar!

Introducción al Deep Learning en Python

Preparing Video For Download...