Generative vs Discriminative Models: เมื่อ AI ต้องสร้าง กับ ต้องตัดสิน
เปรียบเทียบระหว่าง Generative Models และ Discriminative Models
1. แนวคิด
Generative Models
- เรียนรู้ distribution joint ของข้อมูล P(x, y) = P(x|y)P(y)
- พยายามเข้าใจว่า “ข้อมูลถูกสร้างขึ้นอย่างไร”
- สามารถ generate ตัวอย่างใหม่ได้ เช่น ภาพ, ข้อความ, เสียง
ตัวอย่างโมเดล
- Naive Bayes
- Gaussian Mixture Models (GMM)
- Hidden Markov Models (HMM)
- Variational Autoencoder (VAE)
- GANs
- Diffusion Models (Stable Diffusion, DALL·E)
Discriminative Models
- เรียนรู้ boundary หรือความสัมพันธ์เชิงเงื่อนไข P(y|x)
- สนใจเฉพาะ “ให้ข้อมูลนี้ ควร classify เป็นอะไร?”
- มักให้ accuracy สูงกว่า generative สำหรับ classification
ตัวอย่างโมเดล
- Logistic Regression
- Support Vector Machines (SVM)
- Random Forest / XGBoost
- Neural Networks / Transformers สำหรับ classification
2. ความสามารถหลัก
เรื่อง | Generative | Discriminative |
สร้างข้อมูลใหม่ได้ | ✅ | ❌ |
ใช้กับ semi-supervised learningได้ดี | ✅ | ปานกลาง |
Classification accuracy สูงในงานทั่วไป | ปานกลาง | ✅ |
ต้องการข้อมูลเยอะหรือไม่ | มักต้องการเยอะกว่า | น้อยกว่า |
Complexity | สูง | ต่ำกว่า generative |
3. ตัวอย่างความแตกต่าง (โดยสัญชาตญาณ)
ถ้ามีรูปหมา/แมว
- Generative จะเรียนรู้ “หน้าตาของหมาเป็นอย่างไร? แมวเป็นอย่างไร?”แล้วค่อยตัดสินว่าอันนี้น่าจะเป็นหมาหรือแมว
- Discriminative จะเรียนรู้ “ขอบเขตระหว่างหมา/แมว”โดยไม่สนใจว่าแมวมีลักษณะทั้งหมดอะไรบ้าง
4. ข้อดี–ข้อเสีย
Generative Model
ข้อดี
- ใช้ทำ data augmentation
- ใช้ inpainting, denoising, anomaly detection
- ใช้ทำ recommendation (เช่น generative ranking model)
ข้อเสีย
- Training ยากกว่า (เช่น GAN/Diffusion)
- มักต้องการ data จำนวนมาก
- สำหรับ classification ประสิทธิภาพจะน้อยกว่า discriminative
Discriminative Model
ข้อดี
- Training เร็วกว่า
- Performance ดีในงาน supervised
- ใช้กับ tabular data ได้ดี (Tree-based models)
ข้อเสีย
- ทำ generative tasks ไม่ได้
- ไม่สามารถ modeling ข้อมูล x โดยตรง
5. ใช้เมื่อไหร่ดีกว่าอะไร?
สถานการณ์ | ควรใช้ |
งาน classification ทั่วไป | Discriminative |
ต้อง generate content (ภาพ/ข้อความ) | Generative |
ข้อมูล labeled น้อย (semi-supervised) | Generative |
anomaly detection | Generative |
ต้องการ boundary ที่แยกระหว่าง class | Discriminative |
6. สรุป
- Generative = เข้าใจรูปแบบการสร้างข้อมูล + สร้างข้อมูลใหม่ได้
- Discriminative = สนใจแค่ตัดสินใจว่า input → class อะไร