理解模型优化

Python 深度学习入门

Dan Becker

Data Scientist and contributor to Keras and TensorFlow libraries

为何优化困难

  • 同时优化上千个相互关联的参数
  • 更新可能对模型提升不大
  • 学习率低则步子过小,学习率高则步子过大
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)
Python 深度学习入门

"神经元死亡"问题

濒死神经元问题

Python 深度学习入门

梯度消失

梯度消失

Python 深度学习入门

梯度消失

  • 发生于多层的斜率很小(如位于 tanh 曲线平坦区)时
  • 在深层网络中,反向传播的更新接近 0
Python 深度学习入门

开始练习!

Python 深度学习入门

Preparing Video For Download...