เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การตรวจจับ Overfitting

ในแบบฝึกหัดนี้ เราจะทำงานกับข้อมูลชุดย่อยขนาดเล็กจาก dataset ตัวอักษรภาษามืออักษรต้นฉบับ การใช้ข้อมูลตัวอย่างจำนวนน้อยร่วมกับโมเดลที่มีพารามิเตอร์มาก มักนำไปสู่การเกิด overfitting ซึ่งหมายความว่าโมเดลจะจดจำ class ของแต่ละตัวอย่างโดยตรง แทนที่จะเรียนรู้ฟีเจอร์ที่สามารถนำไปใช้กับตัวอย่างอื่นได้อย่างกว้างขวาง

เราจะตรวจจับ overfitting โดยดูว่า loss ของชุดข้อมูล validation สูงกว่า loss ของชุดข้อมูล training อย่างมีนัยสำคัญหรือไม่ และเพิ่มขึ้นเมื่อฝึกต่อไปหรือเปล่า เมื่อใช้ข้อมูลตัวอย่างน้อยและ learning rate สูง โมเดลจะลำบากในการหาค่าที่เหมาะสม ดังนั้นเราจะกำหนด learning rate ต่ำให้กับ optimizer เพื่อให้สังเกตเห็น overfitting ได้ง่ายขึ้น

โปรดทราบว่า keras ถูก import มาจาก tensorflow แล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

TensorFlow เบื้องต้นใน Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • กำหนด sequential model ใน keras ชื่อว่า model
  • เพิ่ม dense layer แรกที่มี 1024 nodes, activation แบบ relu และ input shape เป็น (784,)
  • กำหนด learning rate เป็น 0.001
  • ตั้งค่าการทำงานของ fit() ให้วนซ้ำผ่านข้อมูลทั้งหมด 50 รอบ และใช้ข้อมูล 50% สำหรับการ validation

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Define sequential model
____

# Define the first layer
____

# Add activation function to classifier
model.add(keras.layers.Dense(4, activation='softmax'))

# Finish the model compilation
model.compile(optimizer=keras.optimizers.Adam(lr=____), 
              loss='categorical_crossentropy', metrics=['accuracy'])

# Complete the model fit operation
model.fit(sign_language_features, sign_language_labels, epochs=____, validation_split=____)
แก้ไขและรันโค้ด