Înțelegerea optimizării modelelor

Introducere în Deep Learning în Python

Dan Becker

Data Scientist and contributor to Keras and TensorFlow libraries

De ce este dificilă optimizarea

  • Optimizarea simultană a mii de parametri cu relații complexe
  • Actualizările pot să nu îmbunătățească semnificativ modelul
  • Actualizări prea mici (rată de învățare scăzută) sau prea mari (rată ridicată)
Introducere în Deep Learning în Python

Gradientul descendent stochastic

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)
Introducere în Deep Learning în Python

Problema neuronilor morți

ch4_1.012.png

Introducere în Deep Learning în Python

Gradienți care dispar

ch4_1.014.png

Introducere în Deep Learning în Python

Gradienți care dispar

  • Apare când multe straturi au pante foarte mici (ex. pe zona plată a curbei tanh)
  • În rețele adânci, actualizările backprop erau aproape de 0
Introducere în Deep Learning în Python

Să exersăm!

Introducere în Deep Learning în Python

Preparing Video For Download...