Kolmogorov-Arnold Networks (KANS): une nouvelle architecture de réseau neuronal pour la modélisation interprétable
Des recherches récentes ont introduit Kolmogorov-Arnold Networks (KANS), une nouvelle architecture de réseau neuronal conçu pour améliorer l'interprétabilité dans la modélisation scientifique. Contrairement aux modèles traditionnels de "boîte noire" comme les perceptrons multicouches (MLP), les Kans offrent une plus grande transparence, ce qui les rend particulièrement précieuses dans des domaines tels que la physique.
Les Kanssont ancrés dans le théorème de la représentation de Kolmogorov-Arnold, qui postule que toute fonction multivariable continue peut être décomposée en une somme de fonctions simples et à variable unique. Alors que le théorème garantit l'existence de ces fonctions univariées, les Kans fournissent une méthode pour les apprendre. Au lieu de se rapprocher directement d'une fonction complexe, les Kans apprennent ces composants plus simples, résultant en un modèle flexible et hautement interprétable, en particulier pour les relations non linéaires.
kans vs MLPS: une différence architecturale clé
La distinction centrale entre KANS et MLPS réside dans l'emplacement des fonctions d'activation apprenables. Les MLP utilisent les fonctions d'activation fixe (relu, sigmoïde, etc.) dans les neurones, tandis que les Kans placent des fonctions d'activation apprenables sur les bords reliant les neurones. L'implémentation originale utilise des splines B, mais d'autres fonctions comme les polynômes de Chebyshev sont également adaptables. Les Kans peu profonds et profonds décomposent les fonctions complexes en celles univariées plus simples, comme illustré ci-dessous:
Source: Liu et al., 2024
Cette différence architecturale permet à KANS de s'adapter dynamiquement aux données, ce qui pourrait atteindre une précision plus élevée avec moins de paramètres que les MLP. Les bords post-entraînement et inutilisés peuvent être taillés, pour rationaliser davantage le modèle. De plus, les fonctions univariées apprises peuvent être extraites, permettant la reconstruction de la fonction multivariable - une caractéristique cruciale pour l'interprétabilité.
Implémentation pratique avec Pykan
La bibliothèque pykan
facilite la mise en œuvre de Kans. L'installation est simple:
pip install git+https://github.com/KindXiaoming/pykan.git
Un Kan simple peut être défini comme suit:
from kan import * model = KAN(width=[2,5,1]) # 2 inputs, 5 hidden neurons, 1 output
Un exemple de jeu de données peut être créé et visualisé:
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()
La formation est effectuée en utilisant .fit()
:
model.fit(dataset, steps=1000);
L'élagage post-entraînement affine encore le modèle:
model = model.prune() model.plot()
Applications et considérations
Kans sont prometteurs dans diverses applications:
Les avantages incluent l'amélioration de l'interprétabilité et de la flexibilité dans le choix des fonctions de base. Cependant, les défis incluent la complexité informatique pendant la formation et la nécessité d'une expertise spécialisée.
Collaboration humaine-kan
Un aspect unique des Kans est le potentiel d'interaction du modèle humain. Les chercheurs peuvent extraire et analyser les fonctions univariées apprises, en train de mieux comprendre les relations de données et de raffiner de manière itérative le modèle. Cette approche collaborative rend les Kans adaptables et potentiellement transformateurs pour la découverte scientifique.
Conclusion
Kans représentent une progression importante de l'architecture du réseau neuronal, offrant une alternative flexible et interprétable aux modèles traditionnels. L'exploration et le développement supplémentaires promettent d'établir des Kans comme des outils puissants pour la modélisation scientifique et au-delà.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!