Розуміння оптимізації моделі

Вступ до Deep Learning у Python

Dan Becker

Data Scientist and contributor to Keras and TensorFlow libraries

Чому оптимізація складна

  • Одночасна оптимізація тисяч параметрів зі складними зв'язками
  • Оновлення можуть мало впливати на модель
  • Кроки надто малі (за низької швидкості навчання) або надто великі (за високої)
Вступ до Deep Learning у Python

Стохастичний градієнтний спуск

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)
Вступ до Deep Learning у Python

Проблема «вмираючих» нейронів

Проблема «вмираючих» нейронів

Вступ до Deep Learning у Python

Зникання градієнтів

Зникання градієнтів

Вступ до Deep Learning у Python

Зникання градієнтів

  • Виникає, коли багато шарів мають дуже малі похідні (наприклад, через пласку ділянку кривої tanh)
  • У глибоких мережах оновлення з backprop були близькі до 0
Вступ до Deep Learning у Python

Давайте потренуємось!

Вступ до Deep Learning у Python

Preparing Video For Download...