確固たる数学的基礎に基づいた、正確かつ高速な回帰モデル。
このコードは、コルモゴロフ-アーノルド回帰モデルの実装とモデル識別の 2 つの方法を表します。このアプローチは、最近「KAN: Kolmogorov-Arnold Networks」という名前で人気を集めています。
コードは MATLAB で書かれています。
このコードは、2019 年から 2023 年に実施された私と Andrew Polar との共同プロジェクトの成果です。このアプローチの基本概念は参考文献で公開されています。 2021 年1 月。最新の論文、Ref. 2023 年 5 月にプレプリントとして発行された2 (最初のバージョン) には、このアプローチの最も一般的な形式が記載されています。参考資料を更新しました。 2024 年 6 月にプレプリントとして発行された2 (第 2 バージョン) には、偏微分方程式のデータ駆動型解法も含まれています。
コードの主なハイライトは次のとおりです。
メイン スクリプトmainTriang
コードを実行します。スクリプトでは、フラグmodelMethod
モデル タイプ (スプラインまたは区分線形) とパラメーター推定方法 (GN または NK) が選択されます。最新の追加は、加速された NK メソッドです (参考文献2 の並列化/ベクトル化のセクションを参照)。モデル構築関数では、フラグprintProgr
使用して、コマンド ウィンドウでの進行状況の出力を切り替えます。
コードはモデルを構築し、データのパス数の関数としてlog(RMSE)
をプロットします。モデルは、パラメーターfnB
およびfnT
を持つ 2 つの行列で構成されます。
取得したモデルは、新しいデータセットの予測に使用できます。モデルのスプライン バージョンの場合、
y = modelKA_basisC( x, xmin, xmax, ymin, ymax, fnB, fnT );
ここで、 x
はスクリプトmainTriang
と同じ形式の入力データ、 y
予測された出力データになります。モデルの区分線形バージョンの場合、予測を行う関数はmodelKA_linear
です (形式は上記と同じです)。
計算例は合成データセットです。各レコードの入力は 2D の 3 点の座標で、出力は点によって形成される三角形の領域です。点は単位正方形に属します。デフォルトの例では、第 11 世代 Intel Core i5 を搭載したラップトップで約 14 秒かかります。
単体テストには 3 つのスクリプトがあります。基底関数の導関数を検証するtestBasis
、入力およびパラメーターによるモデル出力の導関数を検証するtestDeriv
、実装されたスプラインと組み込みの MATLAB スプラインを比較するtestSpline
。
偏微分方程式のデータ駆動型解法は、スクリプトsolvePDE_NK
で個別に実装されます。計算例は 2 次偏微分方程式です。詳細は参考文献に記載されています。 2 、2024 年 6 月の更新バージョン。デフォルトの例では、第 11 世代 Intel Core i5 を搭載したラップトップで約 15 秒かかります。
スクリプトmainMIT
他の研究者による最近の Python 実装と同じ例を実行します (ファイル内のリンク)。これは、参考文献で報告されている最新のベンチマーク結果を再現するためにのみ追加されています。 2 .
このコードは Michael Poluektov 博士 (ダンディー大学、数理科学および計算物理学科) によって開発されました。
著者は、研究プロジェクトに同様に貢献し、GitHub ページでこのアプローチの C# と C++ での個別の実装を維持している Andrew Polar 博士の多大な協力に感謝したいと思います。
A. Polar および M. Poluektov、 Eng.応用アーティフ。知性。 、99:104137、2021、リンク。 ↩
M. Poluektov および A. Polar、arXiv:2305.08194、2023、リンク。 ↩ ↩ 2 ↩ 3 ↩ 4 ↩ 5