Searching for a Black Cat in a 2000-Dimensional Dark Room
ผมได้ทำการทดสอบความทนทาน (stress test) สำหรับอัลกอริทึม Machine Learning
การทดสอบประสิทธิภาพ (benchmarks) ส่วนใหญ่นั้นน่าเบื่อ เพราะมักใช้ชุดข้อมูลที่เรียบง่ายอย่าง MNIST หรือ Titanic ผมจึงต้องการผลักดันโมเดลให้ไปถึงขีดจำกัดสูงสุด
ผมนำอัลกอริทึม 21 ตัวมาประชันกัน ซึ่งประกอบด้วย:
- โมเดลแบบดั้งเดิม: Linear Regression, k-NN, SVR
- โมเดลแบบ Tree ensembles: Random Forest, ExtraTrees
- ตัวท็อปสาย Boosting: XGBoost, LightGBM, CatBoost, HistGradientBoosting
- Neural Networks: Multi-layer perceptrons และ TabNet
- ม้ามืด: Polyharmonic Cascade
งานนี้ดูเหมือนจะง่าย ผมให้โมเดลเรียนรู้พื้นผิว 3 มิติที่ซับซ้อน แต่แล้วผมก็เพิ่มอุปสรรคใหญ่สองอย่างเข้าไป:
สัญญาณรบกวนจากมิติ (Dimensionality Noise): ผมให้ฟีเจอร์ไปถึง 2,000 ตัว โดยมีเพียง 2 ตัวเท่านั้นที่เป็นข้อมูลจริง ส่วนอีก 1,998 ตัวเป็นเพียงสัญญาณรบกวน (noise) ล้วนๆ ซึ่งสิ่งนี้เลียนแบบข้อมูลในโลกแห่งความเป็นจริง เช่น ข้อมูลจีโนมิกส์ (genomics) หรือค่าที่อ่านจากเซนเซอร์
การหมุนพิกัด (Coordinate Rotation): ผมทำการหมุนพื้นที่ฟีเจอร์ (feature space) ทั้งหมด ซึ่งหมายความว่าสัญญาณที่มีประโยชน์จะไม่ตรงกับคอลัมน์ใดคอลัมน์หนึ่งอีกต่อไป แต่มันจะกระจายตัวไปทั่วทั้ง 2,000 มิติ
ผลลัพธ์ที่ได้นั้นน่าตกใจมาก
โมเดลตระกูล Tree อย่าง XGBoost และ LightGBM คือราชาของข้อมูลแบบตาราง (tabular data) พวกมันจะชนะเมื่อข้อมูลเรียงตัวตรงตามคอลัมน์ แต่เมื่อผมหมุนพื้นที่ข้อมูล พวกมันกลับล้มเหลว เพราะไม่สามารถแยกแยะสัญญาณออกจากสัญญาณรบกวนได้
Neural networks สามารถผ่านการหมุนพิกัดมาได้ แต่ก็ต้องดิ้นรนกับมิติที่สูงมาก พวกมันทำงานช้าลงและสูญเสียความแม่นยำเมื่อสัญญาณรบกวนเพิ่มขึ้น
และแล้วก็มี Polyharmonic Cascade
โมเดลนี้ไม่ได้ใช้ gradient descent แบบมาตรฐาน แต่ใช้คณิตศาสตร์บริสุทธิ์ที่อิงตามทฤษฎีฟังก์ชันสุ่ม (random function theory) ในขณะที่ตัวท็อปตัวอื่นๆ ล้มเหลว แต่ Cascade กลับเติบโตอย่างโดดเด่น มันจัดการกับการหมุนพิกัดและฟีเจอร์ทั้ง 2,000 ตัวได้อย่างง่ายดาย และทำผลงานได้เหนือกว่าผู้เข้าแข่งขันเกือบทุกรายในรอบที่ยากที่สุด
บทเรียนที่ได้รับนั้นชัดเจน: Machine Learning สำหรับข้อมูลแบบตารางในปัจจุบันมักจะขึ้นอยู่กับแกน (axis-dependent) มันทำงานได้ดีเยี่ยมจนกว่าเรขาคณิตของข้อมูลจะเปลี่ยนไป หากคุณต้องทำงานกับข้อมูลที่ซับซ้อน มีการหมุนพิกัด หรือมีสัญญาณรบกวนสูง เครื่องมือมาตรฐานที่คุณใช้อยู่อาจจะใช้ไม่ได้ผล
คุณสามารถดูโค้ดและผลลัพธ์ฉบับเต็มได้บน GitHub ผมขอเชิญชวนให้คุณลองทำซ้ำการทดลองนี้ดู
Optional learning community: https://t.me/GyaanSetuAi
