Mencari Kucing Hitam dalam Bilik Gelap 2000-Dimensi
Saya menjalankan ujian tekanan (stress test) untuk algoritma pembelajaran mesin.
Kebanyakan penanda aras (benchmarks) adalah membosankan. Ia menggunakan set data ringkas seperti MNIST atau Titanic. Saya mahu mencabar model-model ini sehingga ke tahap kemampuannya.
Saya mempertandingkan 21 algoritma antara satu sama lain. Ini termasuk:
- Model tradisional: Linear Regression, k-NN, SVR.
- Ensemble pokok: Random Forest, ExtraTrees.
- Gergasi boosting: XGBoost, LightGBM, CatBoost, HistGradientBoosting.
- Rangkaian Neural: Multi-layer perceptrons dan TabNet.
- Kuda hitam: Polyharmonic Cascade.
Tugasan tersebut kelihatan mudah. Saya meminta model untuk mempelajari permukaan 3D yang kompleks. Namun, saya kemudiannya menambah dua halangan besar:
Hingar Dimensi (Dimensionality Noise): Saya memberikan 2,000 ciri (features). Hanya dua daripadanya adalah benar. 1,998 yang lain hanyalah hingar semata-mata. Ini meniru data dunia sebenar seperti genomik atau bacaan sensor.
Putaran Koordinat: Saya memutar keseluruhan ruang ciri. Ini bermakna isyarat yang berguna tidak lagi selari dengan mana-mana lajur tunggal. Ia tersebar merentasi kesemua 2,000 dimensi.
Keputusannya sangat mengejutkan.
Model berasaskan pokok seperti XGBoost dan LightGBM adalah raja bagi data tabular. Ia menang apabila data selari dengan lajur. Namun, apabila saya memutar ruang tersebut, ia gagal. Ia tidak dapat mencari isyarat di dalam hingar.
Rangkaian neural berjaya bertahan daripada putaran tersebut, tetapi ia bergelut dengan dimensi yang tinggi. Ia menjadi perlahan dan kehilangan ketepatan apabila hingar meningkat.
Kemudian, muncul pula Polyharmonic Cascade.
Model ini tidak menggunakan gradient descent standard. Ia menggunakan matematik tulen berdasarkan teori fungsi rawak. Walaupun gergasi-gergasi lain gagal, Cascade berkembang maju. Ia mengendalikan putaran dan 2,000 ciri tersebut dengan mudah. Ia mengatasi hampir setiap peserta lain dalam pusingan yang paling sukar.
Pengajarannya jelas: ML tabular moden selalunya bergantung pada paksi (axis-dependent). Ia berfungsi dengan hebat sehinggalah geometri data anda berubah. Jika anda bekerja dengan data yang kompleks, berpusing, atau sangat bising (noisy), alatan standard anda mungkin akan mengecewakan anda.
Anda boleh mencari kod penuh dan keputusan di GitHub. Saya menjemput anda untuk mengulangi eksperimen ini.
Optional learning community: https://t.me/GyaanSetuAi
