深度學習中的超參數調校

用 Python 透過機器學習預測 CTR

Kevin Huo

Instructor

學習率與迭代次數

學習率範例

  • 權重會反覆更新
    • 使用反向傳播
  • 良好的學習率會讓 loss 快速下降並趨於穩定
    • 如紅線所示
  • 學習率過高會「超過目標」導致 loss 很高
    • 如黃線所示
用 Python 透過機器學習預測 CTR

選擇隱藏層

隱藏層大小的影響

  • 效能會隨複雜度增加到某一程度後提升,之後反而下滑。
用 Python 透過機器學習預測 CTR

網格搜尋(Grid search)

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

實務延伸

  • Batch size 與 epochs 也是可能的超參數
    • Batch size 用於 mini-batch(以小批次訓練),epochs 是整個訓練資料走訪的次數
  • 權重初始化方式不同,會影響結果
    • 不同初始化例子:均勻分佈、常態分佈等
  • 實務上常用 Keras 與 TensorFlow,而非 sklearn
    • 因為 sklearn 的相關功能較受限
用 Python 透過機器學習預測 CTR

一起來練習吧!

用 Python 透過機器學習預測 CTR

Preparing Video For Download...