深度学习中的超参数调优

用 Python 预测 CTR 的机器学习实战

Kevin Huo

Instructor

学习率与迭代次数

学习率示例

  • 迭代更新权重
    • 使用反向传播
  • 合适的学习率使损失快速下降并稳定
    • 红线所示
  • 学习率过高会"越界",损失很大
    • 黄线所示
用 Python 预测 CTR 的机器学习实战

选择隐藏层

隐藏层大小的影响

  • 性能随复杂度先升后降,超过某一复杂度后下滑。
用 Python 预测 CTR 的机器学习实战

网格搜索

param_grid = {'max_iter': [10, 20], 
              'hidden_layer_sizes': [(8, ), (16, )]}
clf = GridSearchCV(
  estimator = MLPClassifier(), param_grid = param_grid, 
  n_jobs = 4)
print(clf.best_score_)
print(clf.best_estimator_)
0.65
MLPClassifier(hidden_layer_size = (16,), ...)
用 Python 预测 CTR 的机器学习实战

实务扩展

  • 批大小与轮数也是可调超参数
    • 批大小用于小批量训练;轮数是遍历完整训练集的次数
  • 权重初始化会变化并影响结果
    • 示例:均匀分布、正态分布等
  • 实务中常用 Keras 和 TensorFlow,而非 sklearn
    • 因为 sklearn 功能相对有限
用 Python 预测 CTR 的机器学习实战

Passons à la pratique !

用 Python 预测 CTR 的机器学习实战

Preparing Video For Download...