Comprender la optimización del modelo

Introducción al Deep Learning en Python

Dan Becker

Data Scientist and contributor to Keras and TensorFlow libraries

Por qué la optimización es difícil

  • Optimizar miles de parámetros a la vez con relaciones complejas
  • Las actualizaciones pueden no mejorar el modelo de forma significativa
  • Actualizaciones muy pequeñas (si el learning rate es bajo) o muy grandes (si es alto)
Introducción al Deep Learning en Python

Descenso de gradiente estocástico

def get_new_model(input_shape = input_shape):
    model = Sequential()
    model.add(Dense(100, activation='relu', input_shape = input_shape))
    model.add(Dense(100, activation='relu'))
    model.add(Dense(2, activation='softmax'))
    return(model)

lr_to_test = [.000001, 0.01, 1]

# Loop over learning rates
for lr in lr_to_test:
   model = get_new_model()
   my_optimizer = SGD(lr=lr)
   model.compile(optimizer = my_optimizer, loss = 'categorical_crossentropy')
   model.fit(predictors, target)
Introducción al Deep Learning en Python

El problema de las neuronas moribundas

Problema de neuronas moribundas

Introducción al Deep Learning en Python

Desvanecimiento del gradiente

Gradientes que se desvanecen

Introducción al Deep Learning en Python

Desvanecimiento del gradiente

  • Ocurre cuando muchas capas tienen pendientes muy pequeñas (p. ej., por estar en la parte plana de la curva tanh)
  • En redes profundas, las actualizaciones de backprop eran casi 0
Introducción al Deep Learning en Python

¡Vamos a practicar!

Introducción al Deep Learning en Python

Preparing Video For Download...