ผลของ Batch Normalization
Batch normalization ช่วยเพิ่มความเร็วในการเรียนรู้ของโมเดล และทำให้เส้นโค้งการเรียนรู้มีเสถียรภาพมากขึ้น มาดูกันว่าโมเดลสองตัวที่เหมือนกันทุกประการ โดยตัวหนึ่งใช้ batch normalization และอีกตัวไม่ใช้ จะแตกต่างกันอย่างไร
โมเดล batchnorm_model ที่สร้างไว้ก่อนหน้านี้ถูกโหลดไว้ให้แล้ว พร้อมกับโมเดลที่เหมือนกันทุกประการแต่ไม่มี batch normalization ชื่อว่า standard_model สามารถตรวจสอบ summary() ของทั้งสองโมเดลได้ในคอนโซล นอกจากนี้ยังมี X_train, y_train, X_test และ y_test โหลดไว้ให้พร้อมสำหรับการฝึกทั้งสองโมเดล
จะเปรียบเทียบเส้นโค้งการเรียนรู้ด้านความแม่นยำของทั้งสองโมเดลโดยใช้ฟังก์ชัน compare_histories_acc()
สามารถดูโค้ดของฟังก์ชันได้โดยพิมพ์ show_code(compare_histories_acc) ในคอนโซล
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Deep Learning เบื้องต้นด้วย Keras
คำแนะนำการฝึกหัด
- ฝึก
standard_modelเป็นจำนวน 10 epochs โดยส่งข้อมูล train และ validation เข้าไป แล้วเก็บ history ไว้ในh1_callback - ฝึก
batchnorm_modelเป็นจำนวน 10 epochs โดยส่งข้อมูล train และ validation เข้าไป แล้วเก็บ history ไว้ใน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(____, ____)