Modelloptimierung verstehen

Einführung in Deep Learning mit Python

Dan Becker

Data Scientist and contributor to Keras and TensorFlow libraries

Warum Optimieren schwer ist

  • Gleichzeitige Optimierung von Tausenden Parametern mit komplexen Abhängigkeiten
  • Updates verbessern das Modell evtl. kaum
  • Updates zu klein (bei niedriger Learning Rate) oder zu groß (bei hoher Learning Rate)
Einführung in Deep Learning mit Python

Stochastic Gradient Descent

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)
Einführung in Deep Learning mit Python

Das Problem sterbender Neuronen

Problem sterbender Neuronen

Einführung in Deep Learning mit Python

Verschwindende Gradienten

Verschwindende Gradienten

Einführung in Deep Learning mit Python

Verschwindende Gradienten

  • Tritt auf, wenn viele Schichten sehr kleine Steigungen haben (z. B. auf dem flachen Teil der tanh-Kurve)
  • In tiefen Netzen waren Backprop-Updates nahe 0
Einführung in Deep Learning mit Python

Lass uns üben!

Einführung in Deep Learning mit Python

Preparing Video For Download...