Generic Non-linear Features: ฟีเจอร์ไม่เชิงเส้นแบบทั่วไป
Note นี้ขยายหัวข้อ generic non-linear features จากบทความ Deep Learning (LeCun, Bengio & Hinton — Nature 2015) โดยเฉพาะส่วนที่กล่าวถึงข้อจำกัดของ linear classifier และทางออกก่อนที่ deep learning จะเข้ามาแก้ปัญหา
ทำไมต้องมี Non-linear Features?
ปัญหาของ Linear Classifier
Linear classifier แบ่งปริภูมิอินพุตได้เพียง ครึ่งปริภูมิ (half-spaces) ที่คั่นด้วย ไฮเปอร์เพลน (hyperplane) ซึ่งไม่เพียงพอสำหรับข้อมูลในโลกจริง
- ข้อมูลสองคลาสที่จัดเรียงเป็น วงกลมซ้อนกัน (concentric circles) — ไม่มีเส้นตรงใดแบ่งได้
- ข้อมูล XOR — สี่จุดที่สลับสีกัน ไม่มี hyperplane แบ่งถูก
- ภาพที่มีวัตถุเดียวกันแต่ท่าทาง / แสง / พื้นหลังต่างกัน → ระดับพิกเซลไม่เชิงเส้นเลย
ปัญหานี้เรียกว่า selectivity–invariance dilemma จาก DL note: ต้องการ classifier ที่ ไวต่อความแตกต่างสำคัญ แต่ ทนทานต่อความแปรผันที่ไม่เกี่ยวข้อง พร้อมกัน — สิ่งที่ linear classifier ไม่สามารถทำได้
Generic Non-linear Features คืออะไร?
แนวคิดหลัก: แปลงข้อมูลจากปริภูมิเดิมไปสู่ปริภูมิใหม่ ที่ข้อมูลแยกได้เชิงเส้น แล้วค่อยใช้ linear classifier ในปริภูมิใหม่นั้น
ข้อมูลดิบ x → [φ(x) : feature mapping] → ปริภูมิใหม่ → Linear Classifier
| แนวทาง | รายละเอียด |
|---|---|
| Hand-crafted features | วิศวกรออกแบบ φ เอง (SIFT, HOG, MFCC) — ต้องใช้ domain expertise สูง |
| Generic non-linear features | ใช้ฟังก์ชันทั่วไปอย่าง kernel เพื่อแมปอัตโนมัติ — ไม่ต้อง design เอง |
| Learned features (deep learning) | เครื่องเรียนรู้ feature extractor โดยอัตโนมัติจากข้อมูล |
Kernel Methods — ตัวแทนหลักของ Generic Non-linear Features
Kernel method (เช่น SVM ด้วย RBF kernel) คือวิธีที่นิยมมากที่สุด สำหรับ generic non-linear features
หลักการ
แทนที่จะแมป x → φ(x) ตรง ๆ (ซึ่งปริภูมิอาจมีมิติสูงมากหรืออนันต์) ใช้ kernel function ที่คำนวณ “ความคล้าย” ระหว่างสองจุดในปริภูมิใหม่โดยตรง:
k(x, x') = φ(x)ᵀ φ(x')
Gaussian (RBF) Kernel
kernel ที่พบบ่อยที่สุด:
k(x, x') = exp(−‖x − x'‖² / 2σ²)
- ค่าใกล้ 1 เมื่อสองจุดอยู่ใกล้กัน
- ค่าใกล้ 0 เมื่ออยู่ห่างกัน
- φ(x) ที่ implicit อยู่นั้นมีมิติอนันต์ — แต่คำนวณ kernel ได้ใน O(d) เสมอ
ข้อดีของ Kernel Methods
- ไม่ต้อง design feature extractor เอง
- รับประกัน global optimum (convex optimization)
- ทฤษฎีพิสูจน์ได้ (PAC learning, VC dimension)
ข้อจำกัดสำคัญ
"คุณลักษณะทั่วไปเหล่านี้ ไม่ช่วยให้วางนัยทั่วไปได้ดีในจุดที่ไกลจากตัวอย่างฝึก"กล่าวคือ kernel method interpolate ได้ดี แต่ extrapolate ได้แย่
สาเหตุ
- Curse of dimensionality — ใน input space มิติสูง จุดทุกจุดอยู่ “ห่าง” กันเสมอ ทำให้ Gaussian kernel ลดลงเร็วมาก
- ต้องเก็บ support vectors — ความซับซ้อนของ model ผูกกับจำนวน training examples ไม่ใช่โครงสร้างที่แท้จริงของข้อมูล
- ไม่มีการแชร์ representation — แต่ละ kernel คำนวณความคล้ายกับ training points โดยตรง ไม่มีการ “เข้าใจ” โครงสร้างลำดับชั้น
เปรียบเทียบ
| คุณสมบัติ | Generic Non-linear (Kernel) | Deep Learning |
|---|---|---|
| Feature design | อัตโนมัติ (kernel เลือก) | เรียนรู้จากข้อมูล |
| Scalability | O(n²) ถึง O(n³) | O(n) ต่อ epoch |
| Extrapolation | แย่ | ดี (ถ้าฝึกดี) |
| Interpretability | ปานกลาง | ต่ำ |
| Theoretical guarantee | สูง | น้อย |
| Feature hierarchy | ไม่มี | มี (หลายชั้น) |
Deep Learning แก้ปัญหาอย่างไร
แทนที่จะใช้ generic feature mapping φ ที่ไม่รู้จักข้อมูล deep learning เรียนรู้ ลำดับชั้นของ non-linear transformations จากข้อมูลโดยตรง ผ่าน backpropagation:
x → [layer 1: φ₁] → [layer 2: φ₂] → … → [layer L: φ_L] → linear classifier
แต่ละ layer เป็น non-linear transformation แบบ:
h = f(Wx + b) โดย f คือ activation function เช่น ReLU
ReLU f(z) = max(0, z) เป็น activation function ที่นิยมที่สุด เพราะ:
- คำนวณเร็ว
- gradient ไม่หายไป (ต่างจาก sigmoid/tanh ในเครือข่ายลึก)
- ทำให้ deep network ฝึกได้โดยไม่ต้อง pre-train
Visualization แบบ Interactive: z = x² + y²
ตัวอย่างต่อไปนี้แสดงการแปลงข้อมูล 2 มิติ (concentric circles) สู่ 3 มิติด้วยฟังก์ชัน z = x² + y² ซึ่งเป็น non-linear feature mapping อย่างง่าย — หลังแปลง ข้อมูลที่เคยแยกไม่ออก สามารถแบ่งได้ด้วย hyperplane เดียว
วิธีใช้:
- เลื่อนสไลเดอร์ — ยกข้อมูลขึ้นตามฟังก์ชัน z = x² + y² (แกน Z)
- กด “แทรกระนาบ” — เพิ่ม hyperplane สีเขียวเพื่อดูว่าแบ่ง 2 คลาสได้หลังยกมิติ
- ลาก / ซูม — หมุน scene ด้วยเมาส์หรือ touch
สรุปศัพท์ที่เชื่อมกับ Deep Learning Note
| ศัพท์ | บทบาทใน Generic Non-linear Features | ใน DL Note |
|---|---|---|
| Linear classifier | สิ่งที่ต้องการใช้ในปริภูมิใหม่ | อ่านเพิ่มเติม |
| Hyperplane | ขอบเขตการตัดสินใจใน feature space | อ่านเพิ่มเติม |
| Feature extractor | φ(x) ใน kernel method / ชั้น neural network | อ่านเพิ่มเติม |
| Representation learning | deep learning เรียนรู้ φ อัตโนมัติ | อ่านเพิ่มเติม |
| ReLU | non-linear activation ที่ทำให้ deep network ฝึกได้ | อ่านเพิ่มเติม |
| Backpropagation | วิธีเรียนรู้พารามิเตอร์ของ non-linear layers | อ่านเพิ่มเติม |
| Selectivity–Invariance | ปัญหาที่ generic features ยังแก้ไม่สมบูรณ์ | อ่านเพิ่มเติม |
อ้างอิง: LeCun, Y., Bengio, Y. & Hinton, G. “Deep learning.” Nature 521, 436–444 (2015). Schölkopf, B. & Smola, A. “Learning with Kernels” (2002).