始める無料で始める

Batch Normalization の効果

Batch Normalization は、学習を速め、学習曲線をより安定させる傾向があります。ここでは、Batch Normalization の有無で同一構成の2つのモデルを比較してみます。

先ほど作成した batchnorm_model はすでに読み込まれています。これと同一構成で Batch Normalization を使っていないコピー standard_model も利用できます。コンソールでそれぞれの summary() を確認できます。X_trainy_trainX_testy_test も読み込まれているので、両方のモデルを学習できます。

compare_histories_acc() を使って、両モデルの精度の学習曲線をプロットし、比較します。

関数の中身は、コンソールで show_code(compare_histories_acc) を貼り付けて確認できます。

この演習はコースの一部です

Kerasで学ぶIntroduction to Deep Learning

コースを見る

演習の手順

  • standard_model を学習用データと検証用データを渡して10エポック学習し、履歴を h1_callback に保存します。
  • batchnorm_model を学習用データと検証用データを渡して10エポック学習し、履歴を h2_callback に保存します。
  • compare_histories_acch1_callbackh2_callback を渡して呼び出します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Train your standard model, storing its history callback
h1_callback = standard_model.fit(____, ____, validation_data=(____,____), epochs=____, verbose=0)

# Train the batch normalized model you recently built, store its history callback
h2_callback = batchnorm_model.fit(____, ____, validation_data=____, epochs=____, verbose=0)

# Call compare_histories_acc passing in both model histories
compare_histories_acc(____, ____)
コードを編集して実行