Model regresi yang akurat dan cepat berdasarkan landasan matematika yang kokoh.
Kode tersebut mewakili implementasi model regresi Kolmogorov-Arnold dan dua metode identifikasi model. Pendekatan ini baru-baru ini mendapatkan popularitas dengan nama "KAN: Kolmogorov-Arnold Networks".
Kode ditulis dalam MATLAB.
Kode tersebut merupakan hasil proyek kolaborasi antara saya dan Andrew Polar yang dilakukan pada tahun 2019-2023. Konsep dasar pendekatan ini telah dipublikasikan di Ref. 1 tahun 2021. Makalah terbaru kami, Ref. 2 diterbitkan sebagai pracetak pada Mei 2023 (versi pertama), mempunyai rumusan pendekatan yang paling umum. Referensi yang Diperbarui. 2 diterbitkan sebagai pracetak pada Juni 2024 (versi kedua) juga mencakup solusi persamaan diferensial parsial berdasarkan data.
Sorotan utama dari kode ini adalah:
Skrip utama mainTriang
menjalankan kode. Dalam skrip, flag modelMethod
memilih jenis model (splines atau piecewise-linear) dan metode estimasi parameter (GN atau NK). Penambahan terbaru adalah metode NK yang dipercepat (lihat Pustaka 2 , bagian paralelisasi/vektorisasi). Dalam fungsi pembuatan model, flag printProgr
mengalihkan cetakan kemajuan di Jendela Perintah.
Kode membangun model dan memplot log(RMSE)
sebagai fungsi dari jumlah lintasan data. Model ini terdiri dari dua matriks dengan parameter: fnB
dan fnT
.
Model yang diperoleh dapat digunakan untuk melakukan prediksi pada dataset baru. Untuk model versi spline,
y = modelKA_basisC( x, xmin, xmax, ymin, ymax, fnB, fnT );
harus dieksekusi, dimana x
adalah data masukan dalam format yang sama seperti pada skrip mainTriang
dan y
akan menjadi data keluaran yang diprediksi. Untuk model versi piecewise-linear, fungsi yang membuat prediksi adalah modelKA_linear
(formatnya sama seperti di atas).
Contoh komputasinya adalah kumpulan data sintetik - untuk setiap record, masukannya adalah koordinat tiga titik dalam 2D dan keluarannya adalah luas segitiga yang dibentuk oleh titik-titik tersebut. Titik-titik tersebut termasuk dalam satuan persegi. Contoh default membutuhkan waktu sekitar 14 detik pada laptop dengan Intel Core i5 Generasi ke-11.
Ada tiga skrip dengan pengujian unit: testBasis
untuk memverifikasi turunan fungsi basis, testDeriv
untuk memverifikasi turunan keluaran model berdasarkan masukan dan parameter, dan testSpline
untuk membandingkan spline yang diimplementasikan dengan spline MATLAB bawaan. .
Solusi persamaan diferensial parsial berbasis data diimplementasikan secara terpisah dalam skrip solvePDE_NK
. Contoh komputasinya adalah PDE orde kedua; rinciannya diberikan dalam Pustaka. 2 , versi yang diperbarui mulai Juni 2024. Contoh default memerlukan waktu sekitar 15 detik pada laptop dengan Intel Core i5 Generasi ke-11.
Skrip mainMIT
menjalankan contoh yang sama seperti implementasi Python baru-baru ini oleh peneliti lain (tautan dalam file). Ini ditambahkan hanya untuk mereproduksi hasil benchmark terbaru yang dilaporkan dalam Ref. 2 .
Kode ini dikembangkan oleh Dr Michael Poluektov (Universitas Dundee, Departemen Ilmu Matematika dan Fisika Komputasi).
Penulis ingin mengucapkan terima kasih atas bantuan besar dari Dr Andrew Polar, yang berkontribusi sama terhadap proyek penelitian dan mengelola implementasi terpisah dari pendekatan ini dalam C# dan C++ di halaman GitHub miliknya.
A. Polar dan M. Poluektov, Eng. Aplikasi. Artif. Intel. , 99:104137, 2021, tautan. ↩
M. Poluektov dan A. Polar, arXiv:2305.08194, 2023, tautan. ↩ ↩ 2 ↩ 3 ↩ 4 ↩ 5