Hyperparameterjustering inom djupinlärning

Förutsäga CTR med maskininlärning i Python

Kevin Huo

Instructor

Inlärningshastighet och antal iterationer

Exempel på inlärningshastigheter

  • Vikter uppdateras iterativt
    • Använder backpropagation
  • En bra inlärningshastighet ger snabbt sjunkande och stabiliserande förlust
    • Visas med röd linje
  • En för hög inlärningshastighet ger "överskjutning" och mycket hög förlust
    • Visas med gul linje
Förutsäga CTR med maskininlärning i Python

Välja dolda lager

Effekt av storleken på dolda lager

  • Prestandan ökar upp till en viss komplexitetsnivå och minskar sedan.
Förutsäga CTR med maskininlärning i Python

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,), ...)
Förutsäga CTR med maskininlärning i Python

Tillämpningar i praktiken

  • Batchstorlek och epoker är också möjliga hyperparametrar
    • Batchstorlek gäller mini-batch (träning sker i små batchar) och epoker anger antal genomgångar av hela träningsdatan
  • Initialisering av vikter kan variera och påverka resultaten
    • Exempel på olika initialiseringar: likformig fördelning, normalfördelning m.m.
  • Keras och TensorFlow används ofta i stället för sklearn
    • Det beror på att sklearn har begränsad funktionalitet i jämförelse
Förutsäga CTR med maskininlärning i Python

Nu kör vi en övning!

Förutsäga CTR med maskininlärning i Python

Preparing Video For Download...