Model optimizasyonunu anlama

Python ile Deep Learning'e Giriş

Dan Becker

Data Scientist and contributor to Keras and TensorFlow libraries

Neden optimizasyon zordur?

  • Karmaşık ilişkili binlerce parametreyi aynı anda optimize etmek
  • Güncellemeler modeli anlamlı biçimde iyileştirmeyebilir
  • Öğrenme oranı düşükse çok küçük, yüksekse çok büyük güncellemeler
Python ile Deep Learning'e Giriş

Stokastik gradyan inişi

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)
Python ile Deep Learning'e Giriş

Ölen nöron sorunu

ch4_1.012.png

Python ile Deep Learning'e Giriş

Kaybolan gradyanlar

ch4_1.014.png

Python ile Deep Learning'e Giriş

Kaybolan gradyanlar

  • Birçok katmanın eğimi çok küçük olduğunda ortaya çıkar (örn. tanh eğrisinin düz kısmı)
  • Derin ağlarda, geri yayılım güncellemeleri 0’a çok yakındır
Python ile Deep Learning'e Giriş

Hadi pratik yapalım!

Python ile Deep Learning'e Giriş

Preparing Video For Download...