Nous avons pris pour acquis les perceptrons multicouches (MLP) classiques et avons construit de nombreuses architectures autour de ceux-ci. Les MLP font partie intégrante de chaque modèle de LLM ou de fondation que nous voyons aujourd'hui, tels que chatGPT, LAMA, DALLE et CLIP. Ou même de simples modèles de reconnaissance comme YOLO-v*.
Et si je vous disais maintenant que nous avons un concurrent pour les MLP ? Il y a un nouveau journal en ville appelé « Réseau Kolmogorov-Arnold », ou KAN en abrégé, qui défie les MLP. Si la solution qu’ils proposent évolue réellement, nous pourrons alors avoir la prochaine génération de réseaux de neurones, ce qui nous rapprochera encore davantage de l’intelligence générale artificielle (IAG).
Alors que les MLP comprennent des fonctions d'activation telles que ReLU, sigmoïde, tanh, GeLU, etc., KAN propose d'apprendre ces fonctions d'activation. Alors, comment KAN fait-il ? Quelles sont les mathématiques derrière tout ça ? Comment est-il mis en œuvre ? Et comment pouvons-nous même former les KAN ?
J'ai fait de mon mieux pour résumer ici l'article de la KAN. Vous pouvez soit choisir de lire l’essentiel, soit de lire le document, qui fait 48 pages !
Si vous êtes comme moi et que vous souhaitez visualiser les choses pour mieux comprendre, voici une version vidéo de cet article :
Commençons par les MLP, que nous connaissons bien. Les MLP sont composés de nœuds et d’arêtes. Dans chaque nœud, les entrées sont additionnées et des activations telles que ReLU, GeLU et SeLU sont appliquées afin de produire la sortie pour ce nœud particulier.
Ces fonctions d'activation ne changent jamais pendant le processus de formation. En d’autres termes, ils n’ont aucun paramètre. Ils ne sont pas assez intelligents pour s’adapter à un ensemble de données d’entraînement donné. Ainsi, ce qui est formé ou mis à jour pendant la formation, ce sont les poids de chacun de ces nœuds.
Maintenant, que se passe-t-il si nous remettons en question l’hypothèse selon laquelle la fonction d’activation doit être corrigée et rendue entraînable ? C'est donc le défi que le réseau KAN a tenté de relever. Les fonctions d'activation du réseau KAN sont mises à jour au cours du processus de formation. Avant d'approfondir, commençons par les polynômes et l'ajustement des courbes.
Ainsi, l’idée fondamentale des KAN est que toute fonction composite multivariée peut être décomposée en une somme de plusieurs fonctions qui sont des variables uniques.
Par exemple, disons que nous avons une équation de degré 3 où y=x³ comme tracé par la courbe jaune ci-dessus. Et une autre équation de degré 2, y=x², comme le montre la courbe bleue dans l'animation ci-dessus. Nous pouvons voir dans cette visualisation que l'utilisation de x² ne pourra jamais atteindre la courbure obtenue par x³.
Supposons que nous recevions les données représentées par les points rouges et bleus ci-dessous et que nous souhaitions trouver la limite de classification binaire entre les deux classes.
En utilisant un polynôme du second ordre, x² , nous ne pourrons pas trouver la limite entre les deux car la courbe x² a la forme d'un « U », mais les données ont la forme d'un « S ». Bien que l'utilisation de x³ soit adaptée à ces données, elle entraîne un coût de calcul supplémentaire. Une solution différente pourrait être d'utiliser x² lorsque l'entrée x est négative mais d'utiliser - x² lorsque x est positif (courbe bleue dessinée à la main dans la figure ci-dessus).
Tout ce que nous avons fait, c'est ajouter deux polynômes de degré inférieur pour obtenir une courbe avec un degré de liberté plus élevé. C’est exactement l’idée derrière les réseaux KAN.
Prenons maintenant un problème de jouet légèrement plus complexe où nous savons que les données sont générées par une équation simple, y=exp(sin(x1² + x2²) + sin(x3² + x4²)) . Nous avons donc 4 variables d’entrée et trois opérations, à savoir l’exposant, le sinus et le carré. Ainsi, nous pouvons choisir quatre nœuds d'entrée avec trois couches, chacune dédiée aux trois opérations différentes, comme indiqué ci-dessous.
Réseau KAN pour un problème de jouet avec quatre entrées et trois fonctions de base pour les calculs : exposant, sinusoïde et carré
Après la formation, les nœuds convergeront vers les fonctions carré, sinusoïde et exposant pour s'adapter aux données.
Comme il s’agit d’un problème de jouet, nous connaissons l’équation d’où proviennent les données. Mais en pratique, nous ne connaissons pas la distribution des données du monde réel. Une façon de résoudre ce problème consiste à utiliser les B-splines.
L'idée fondamentale des B-splines est que toute fonction ou courbe donnée peut être représentée comme une combinaison de fonctions ou de courbes plus simples. Ces fonctions plus simples sont appelées fonctions de base. Par exemple, prenons la courbe rouge dans la figure ci-dessous. Par souci de simplicité, essayons de représenter cela avec seulement deux fonctions de base.
On peut le décomposer en 3 points car nous allons le représenter avec la somme de deux fonctions de base. Ces points sont appelés nœuds. Il peut y avoir n’importe quel nombre n de fonctions de base. Le paramètre qui contrôle la façon dont cette base fonctionne avec les combinaisons est c. Il peut y avoir des discontinuités au niveau des nœuds lorsque l’on « rejoint » deux courbes. La solution est de contraindre la courbure des courbes au niveau des nœuds afin d'obtenir une courbe lisse. Par exemple, nous pouvons contraindre la pente des deux courbes à être la même au niveau des nœuds, comme le montre la flèche verte dans la figure ci-dessous.
Comme nous ne pouvons pas imposer une telle contrainte dans le réseau neuronal, ils ont introduit les fonctions d'activation résiduelles dans l'article. Cela s’apparente davantage à une régularisation. En pratique, il s'agit de l'activation SeLU qui est ajoutée à la fonction spline standard, comme le montre l'article ci-dessous.
Les KAN introduisent une nouvelle méthode de formation appelée grainage fin . Ce que nous connaissons tous, c'est le réglage fin, où nous ajoutons plus de paramètres au modèle. Cependant, dans le cas d'un grain fin, on peut améliorer la densité des grilles splines. C'est ce qu'ils appellent l'extension du réseau.
Comme nous pouvons le voir sur la figure ci-dessus tirée de l'article, le grain fin consiste simplement à rendre les grilles de B-splines denses afin qu'elles deviennent plus représentatives et, par conséquent, plus puissantes.
L’un des inconvénients des splines est qu’elles sont récursives et donc coûteuses en calcul. Leur complexité de calcul est O(N²LG), ce qui est supérieur à la complexité habituelle de O(N²L) pour les MLP. La complexité supplémentaire vient des intervalles de grille G.
Les auteurs défendent ce problème inhérent en montrant que :
Nous verrons les tracés de ces défenses dans la section résultats. Pour l’instant, intéressons-nous davantage à une autre spécialité des KAN.
À mesure que les KAN apprennent des fonctions, il ne s'agit pas simplement d'une boîte noire comme les MLP où nous pouvons simplement les concevoir en choisissant la profondeur et la largeur du MLP pour une donnée ou un problème donné. Ainsi, pour rendre les KAN plus interprétables et concevoir un bon réseau KAN, nous devons suivre les étapes ci-dessous :
fix_symbolic(l,i,j,f)
où l, i, j sont la couche de nœuds et les emplacements, et f est la fonction qui peut être sine, cosine, log, etc
Un résumé des différentes étapes suggérées dans le document pour parvenir à un réseau KAN formé
Les différentes étapes ont été résumées dans la figure ci-dessus. Nous commençons par un grand réseau et éparsifions (étape 1), élaguons le réseau résultant (étape 2), définissons une symbolisation (étape 3), formons le réseau (étape 4) et arrivons enfin au modèle formé.
En utilisant les étapes mentionnées ci-dessus, ils ont formé des réseaux KAN pour cinq problèmes de jouets différents afin d'illustrer leur efficacité et de les comparer aux MLP. Les principaux points à retenir de la comparaison sont :
Le premier point est représenté par la ligne bleue épaisse dans les cinq graphiques du graphique du haut ci-dessus pour les cinq problèmes de jouets. Les deux derniers points sont illustrés par le tracé en bas montrant les courbes de perte et le nombre de paramètres pour résoudre un problème donné.
Le prochain point à retenir est que les KAN sont bien meilleurs que les MLP dans le problème de l’oubli catastrophique. Si nous alimentons les données de séquence pour un apprentissage continu, les KAN semblent bien mieux mémoriser les données passées que les MLP. Ceci est illustré dans la figure ci-dessous, où KAN reproduit les 5 phases dans les données, mais MLP a du mal.
Ils ont également réalisé des expériences approfondies pour montrer que KAN peut être utilisé pour des problèmes impliquant des dérivées partielles et des équations physiques. Plutôt que d’entrer dans ces détails, voyons quand choisir les KAN par rapport aux MLP.
Ils ont donné le chiffre ci-dessous pour nous guider sur le moment de choisir les KAN plutôt que les MLP. Alors, choisissez les KAN si,
Sinon, les MLP gagnent toujours.
Si vous avez aimé cet article, pourquoi ne pas me suivre
Abonnez-vous également à mon
À mon avis, les KAN ne sont pas là pour remplacer les MLP quant à la façon dont les transformateurs ont balayé proprement le paysage de la PNL. Les KAN s’avéreront plutôt utiles pour des problèmes de niche en mathématiques et en physique. Même dans ce cas, je pense que nous avons besoin de beaucoup plus d’améliorations. Mais pour les problèmes de Big Data résolus avec des modèles de base, les KAN ont encore un long chemin à parcourir, du moins dans leur état actuel.
De plus, l’approche de formation et la conception de l’architecture KAN ont tendance à s’écarter de la manière standard de concevoir et de former les réseaux neuronaux modernes. Néanmoins, la page GitHub compte déjà 13 000 étoiles et 1,2 000 forks, ce qui indique qu'elle est prête à faire quelque chose. Attendons et surveillons cet espace.