ディープラーニングのハイパーパラメータ調整

PythonでMachine Learningを使ってCTRを予測する

Kevin Huo

Instructor

学習率と反復回数

学習率の例

  • 重みは反復的に更新されます
    • 逆伝播を使用
  • 適切な学習率では損失が素早く低下し安定します
    • 赤線で表示
  • 学習率が高すぎると「オーバーシュート」し損失が非常に大きくなります
    • 黄線で表示
PythonでMachine Learningを使ってCTRを予測する

隠れ層の選び方

隠れ層サイズの影響

  • 複雑さがある程度まで増すと性能は向上し、その後は低下します。
PythonでMachine Learningを使って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でMachine Learningを使ってCTRを予測する

実務での拡張

  • バッチサイズとエポックもハイパーパラメータです
    • バッチサイズはミニバッチ(小分け学習)、エポックは訓練データ全体の通し回数
  • 重みの初期化は手法により結果が変わります
    • 初期化例: 一様分布、正規分布 など
  • sklearn より Keras や TensorFlow がよく使われます
    • sklearn は機能が限定的なためです
PythonでMachine Learningを使ってCTRを予測する

演習に進みましょう

PythonでMachine Learningを使ってCTRを予測する

Preparing Video For Download...