Batch Normalization の効果
Batch Normalization は、学習を速め、学習曲線をより安定させる傾向があります。ここでは、Batch Normalization の有無で同一構成の2つのモデルを比較してみます。
先ほど作成した batchnorm_model はすでに読み込まれています。これと同一構成で Batch Normalization を使っていないコピー standard_model も利用できます。コンソールでそれぞれの summary() を確認できます。X_train、y_train、X_test、y_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_accをh1_callbackとh2_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(____, ____)