Comprendre l'optimisation des modèles

Introduction au Deep Learning en Python

Dan Becker

Data Scientist and contributor to Keras and TensorFlow libraries

Pourquoi l'optimisation est complexe

  • Optimisation simultanée de milliers de paramètres présentant des relations complexes
  • Les mises à jour peuvent ne pas améliorer le modèle de manière significative
  • Mises à jour trop petites (si le taux d'apprentissage est faible) ou trop grandes (si le taux d'apprentissage est élevé)
Introduction au Deep Learning en Python

Descente stochastique du gradient

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)
Introduction au Deep Learning en Python

Le problème des neurones mourants

ch4_1.012.png

Introduction au Deep Learning en Python

Gradients de disparition

ch4_1.014.png

Introduction au Deep Learning en Python

Gradients de disparition

  • Se produit lorsque de nombreuses couches présentent des pentes très faibles (par exemple, parce qu'elles se trouvent sur une partie plate de la courbe tanh)
  • Dans les réseaux profonds, les mises à jour du rétropropagation étaient proches de 0
Introduction au Deep Learning en Python

Passons à la pratique !

Introduction au Deep Learning en Python

Preparing Video For Download...