2.4.2
SVD
สรุป
- SVD แยกเมทริกซ์ \(X\) เป็น \(U \Sigma V^\top\) ช่วยให้เข้าใจโครงสร้างข้อมูล เช่น องค์ประกอบหลักและค่า singular value
- เป็นหัวใจของ PCA, Latent Semantic Analysis, การบีบอัดรูปภาพ ฯลฯ
- ช่วยลดมิติด้วยการตัด singular values ตัวเล็ก ๆ ทิ้ง
สัญชาตญาณ #
Singular Value Decomposition (SVD) ควรเข้าใจผ่านสมมติฐาน กลไกการปรับปรุงโมเดล และรูปแบบความผิดพลาดบนข้อมูลจริง เพื่อให้เลือกโมเดลและปรับพารามิเตอร์ได้อย่างเหมาะสม.
คำอธิบายโดยละเอียด #
สูตร #
สำหรับเมทริกซ์ \(X \in \mathbb{R}^{n \times d}\)
$$ X = U \Sigma V^\top, $$โดย \(U\): \(n \times d\), \(V\): \(d \times d\) orthonormal, \(\Sigma\) มีค่า singular value ที่เรียงจากมากไปน้อย
โค้ดตัวอย่าง #
| |
เคล็ดลับ #
- ใช้
scipy.sparse.linalg.svdsสำหรับเมทริกซ์ขนาดใหญ่/เบาบาง - ตรวจสอบว่าต้องการ full SVD หรือ truncated SVD (เช่น
TruncatedSVDใน scikit-learn) - เชื่อมโยงกับ PCA: eigen decomposition ของ \(X^\top X\) คือ \(V \Sigma^2 V^\top\)
เอกสารอ้างอิง #
- Golub, G. H., & Van Loan, C. F. (2013). Matrix Computations. JHU Press.
- scikit-learn developers. (2024). TruncatedSVD. https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.TruncatedSVD.html