การเพิ่ม Dropout ให้กับโครงข่ายประสาทเทียม
Dropout เป็นรูปแบบหนึ่งของ regularization ที่ตัด unit ออกแบบสุ่มในแต่ละรอบของการฝึก โดยชุด unit ที่ถูกตัดจะแตกต่างกันในแต่ละรอบ ในแบบฝึกหัดนี้ เราจะเพิ่ม Dropout เข้าไปในโครงข่ายประสาทเทียมแบบ convolutional ที่ใช้ในแบบฝึกหัดก่อนหน้า ดังนี้:
- Convolution (15 units, kernel size 2, activation 'relu')
- Dropout (20%)
- Convolution (5 units, kernel size 2, activation 'relu')
- Flatten
- Dense (3 units, activation 'softmax')
ออบเจกต์ Sequential model รวมถึง Dense, Conv2D, Flatten และ Dropout พร้อมใช้งานใน workspace ของคุณแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การสร้างโมเดลภาพด้วย Keras
คำแนะนำการฝึกหัด
- เพิ่ม Dropout โดยกำหนดค่า 20% ให้กับเลเยอร์แรก
- เพิ่มเลเยอร์ flattening
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Add a convolutional layer
model.add(Conv2D(15, kernel_size=2, activation='relu',
input_shape=(img_rows, img_cols, 1)))
# Add a dropout layer
____
# Add another convolutional layer
model.add(Conv2D(5, kernel_size=2, activation='relu'))
# Flatten and feed to output layer
____
model.add(Dense(3, activation='softmax'))