Kolmogorov-Arnold Networks(KANS):解釈可能なモデリングのための新しいニューラルネットワークアーキテクチャ
最近の研究では、科学モデリングの解釈可能性を高めるために設計された新しいニューラルネットワークアーキテクチャであるKolmogorov-Arnold Networks(KANS)が導入されました。 マルチ層パーセプトロン(MLPS)のような従来の「ブラックボックス」モデルとは異なり、Kansはより大きな透明性を提供し、物理学などの分野で特に価値があります。
カンは、コルモゴロフ・アーノルド表現の定理に基づいています。これは、連続的な多変数関数をより単純な単一変数関数の合計に分解できると仮定しています。 定理はこれらの単変量関数の存在を保証しますが、Kansはそれらを学習する方法を提供します。 複雑な関数を直接近似する代わりに、Kansはこれらのより単純なコンポーネントを学習し、特に非線形関係のために柔軟で高度に解釈可能なモデルになります。Kans vs. MLPS:キーアーキテクチャの違い
KansとMLPSのコアの区別は、学習可能な活性化関数の位置にあります。 MLPは、ニューロン内で固定活性化関数(Relu、Silgなど)を利用し、Kansはニューロンを接続するエッジ上の学習可能な活性化関数を配置します。 元の実装ではBスプラインを使用しますが、Chebyshev多項式のような他の機能も適応性があります。 以下に示すように、浅いカンズと深いカンズの両方が複雑な関数を単純な単変量の機能に分解します。
出典:Liu et al。、2024
単純なKanは次のように定義できます
pykan
pip install git+https://github.com/KindXiaoming/pykan.git
from kan import * model = KAN(width=[2,5,1]) # 2 inputs, 5 hidden neurons, 1 output
トレーニングは、
from kan.utils import create_dataset f = lambda x: 3*x[:,[0]]**3+2*x[:,[0]]+4 + 2 * x[:,[0]] * x[:,[1]] ** 2 + 3 * x[:,[1]] ** 3 dataset = create_dataset(f, n_var=2) model(dataset['train_input']); model.plot()
を使用して実行されます
トレーニング後の剪定後、モデルをさらに洗練させます:
.fit()
model.fit(dataset, steps=1000);
アプリケーションと考慮事項
model = model.prune() model.plot()
カンズのユニークな側面は、人間モデルの相互作用の可能性です。 研究者は、学習した単変量機能を抽出および分析し、データ関係に関する洞察を得て、モデルを繰り返し改良することができます。 この共同アプローチにより、Kansは科学的発見のために適応性があり、潜在的に変革的になります。
結論kansは、ニューラルネットワークアーキテクチャの重要な進歩を表しており、従来のモデルに代わる柔軟で解釈可能な代替品を提供します。 さらなる調査と開発は、Kansを科学モデリング以降の強力なツールとして確立することを約束します。
以上がKolmogorov-Arnold Networks(Kans):実装のガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。