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 มิติที่ซับซ้อน แต่แล้วผมก็เพิ่มอุปสรรคใหญ่สองอย่างเข้าไป:

  1. สัญญาณรบกวนจากมิติ (Dimensionality Noise): ผมให้ฟีเจอร์ไปถึง 2,000 ตัว โดยมีเพียง 2 ตัวเท่านั้นที่เป็นข้อมูลจริง ส่วนอีก 1,998 ตัวเป็นเพียงสัญญาณรบกวน (noise) ล้วนๆ ซึ่งสิ่งนี้เลียนแบบข้อมูลในโลกแห่งความเป็นจริง เช่น ข้อมูลจีโนมิกส์ (genomics) หรือค่าที่อ่านจากเซนเซอร์

  2. การหมุนพิกัด (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 ผมขอเชิญชวนให้คุณลองทำซ้ำการทดลองนี้ดู

Source: https://dev.to/xolod7/searching-for-a-black-cat-in-a-2000-dimensional-dark-room-a-machine-learning-algorithm-tournament-n6n

Optional learning community: https://t.me/GyaanSetuAi