基於紮實的數學基礎的準確快速的迴歸模型。
該程式碼代表了 Kolmogorov-Arnold 迴歸模型的實作以及模型識別的兩種方法。這種方法最近以「KAN:Kolmogorov-Arnold Networks」的名稱而廣受歡迎。
程式碼是用 MATLAB 寫的。
程式碼是我和 Andrew Polar 在 2019-2023 年進行的合作專案的結果。這種方法的基本概念已發表在參考文獻中。 2021 年排名第一。 2於 2023 年 5 月作為預印本發布(第一版),具有該方法最通用的表述。更新了參考號。 2024 年 6 月作為預印本發布的2 (第二版)還包括偏微分方程的數據驅動解。
程式碼的主要亮點是:
主腳本mainTriang
運行程式碼。在腳本中,標記modelMethod
選擇模型類型(樣條線或分段線性)和參數估計方法(GN 或 NK)。最新加入的是加速 NK 方法(參見參考文獻2 ,有關並行化/向量化的部分)。在模型建構函數中,標誌printProgr
切換命令列視窗中進度的列印輸出。
此程式碼建構模型並繪製log(RMSE)
作為資料傳遞次數的函數。此模型由兩個矩陣組成,參數為: fnB
和fnT
。
所得的模型可用於對新資料集進行預測。對於模型的樣條版本,
y = modelKA_basisC( x, xmin, xmax, ymin, ymax, fnB, fnT );
應該執行,其中x
是與腳本mainTriang
中格式相同的輸入數據, y
將是預測的輸出數據。對於模型的分段線性版本,進行預測的函數是modelKA_linear
(其格式與上面相同)。
計算範例是一個合成資料集 - 對於每個記錄,輸入是 2D 中三個點的座標,輸出是由這些點形成的三角形的面積。這些點屬於單位正方形。在配備第 11 代 Intel Core i5 的筆記型電腦上,預設範例大約需要 14 秒。
單元測試共有三個腳本: testBasis
用於驗證基底函數的導數, testDeriv
用於透過輸入和參數驗證模型輸出的導數,以及testSpline
用於將實現的樣條線與內建 MATLAB 樣條線進行比較。
偏微分方程的資料驅動解在腳本solvePDE_NK
中單獨實作。計算範例是二階偏微分方程;詳細資訊在參考文獻中給出。 2,2024 年 6 月的更新版本。
腳本mainMIT
運行的範例與其他研究人員最近的 Python 實作中的範例相同(文件中的連結)。添加它只是為了重現參考文獻中報告的最新基準測試結果。 2 .
該程式碼由 Michael Poluektov 博士(鄧迪大學數學科學和計算物理系)開發。
作者要感謝 Andrew Polar 博士的大力幫助,他為該研究項目做出了同樣的貢獻,並在他的 GitHub 頁面上維護了該方法在 C# 和 C++ 中的單獨實現。
A. Polar 和 M. Poluektov,工程師。應用。阿蒂夫。英特爾。 ,99:104137,2021,連結。 ↩
M. Poluektov 和 A. Polar,arXiv:2305.08194,2023,連結。 ↩ ↩ 2 ↩ 3 ↩ 4 ↩ 5