Porozumění optimalizaci modelu

Úvod do deep learningu v Pythonu

Dan Becker

Data Scientist and contributor to Keras and TensorFlow libraries

Proč je optimalizace náročná

  • Současná optimalizace tisíců parametrů se složitými vztahy
  • Aktualizace nemusí model smysluplně zlepšit
  • Aktualizace příliš malé (nízká rychlost učení) nebo příliš velké (vysoká rychlost učení)
Úvod do deep learningu v Pythonu

Stochastický gradientní sestup

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)
Úvod do deep learningu v Pythonu

Problém odumírajících neuronů

ch4_1.012.png

Úvod do deep learningu v Pythonu

Mizející gradienty

ch4_1.014.png

Úvod do deep learningu v Pythonu

Mizející gradienty

  • Nastává, když má mnoho vrstev velmi malé sklony (např. na ploché části křivky tanh)
  • V hlubokých sítích se aktualizace při zpětném šíření blížily 0
Úvod do deep learningu v Pythonu

Pojďme cvičit!

Úvod do deep learningu v Pythonu

Preparing Video For Download...