paint-brush
Vergleich von Kolmogorov-Arnold-Netzwerken (KAN) und Multi-Layer-Perceptrons (MLPs)von@aibites
957 Lesungen
957 Lesungen

Vergleich von Kolmogorov-Arnold-Netzwerken (KAN) und Multi-Layer-Perceptrons (MLPs)

von Shrinivasan Sankar8m2024/06/29
Read on Terminal Reader

Zu lang; Lesen

KANs stellen Multi-Layer Perceptrons in Frage, die heute für ALLE LLMs von grundlegender Bedeutung sind. Aber werden sie überleben und liefern? Vergleichen und gegenüberstellen wir sie.
featured image - Vergleich von Kolmogorov-Arnold-Netzwerken (KAN) und Multi-Layer-Perceptrons (MLPs)
Shrinivasan Sankar HackerNoon profile picture
0-item

Wir haben die klassischen Multi-Layer Perceptrons (MLPs) als selbstverständlich hingenommen und so viele Architekturen darum herum aufgebaut. MLPs sind fester Bestandteil jedes einzelnen LLM- oder Basismodells, das wir heute sehen, wie etwa chatGPT, LLAMA, DALLE und CLIP. Oder sogar einfacher Erkennungsmodelle wie YOLO-v*.


Was wäre, wenn ich Ihnen jetzt sagen würde, dass wir einen Konkurrenten für die MLPs haben? Es gibt ein neues Papier namens „Kolmogorov-Arnold Network“, kurz KAN, das die MLPs herausfordert. Wenn die von ihnen vorgeschlagene Lösung wirklich skalierbar ist, können wir die nächste Generation neuronaler Netzwerke haben, die uns der künstlichen allgemeinen Intelligenz (AGI) einen weiteren Schritt näher bringen wird.


Während die MLPs Aktivierungsfunktionen wie ReLU, Sigmoid, Tanh, GeLU usw. umfassen, schlägt KAN vor, dass wir diese Aktivierungsfunktionen lernen. Also, wie macht KAN das? Welche Mathematik steckt dahinter? Wie wird es implementiert? Und wie trainieren wir KANs überhaupt?

Ich habe mein Bestes gegeben, um das KAN-Papier hier zusammenzufassen. Sie können entweder die Kernaussage lesen oder das 48 Seiten lange Papier!

Visuelle Erklärung

Wenn Sie wie ich sind und Dinge visualisieren möchten, um sie besser zu verstehen, finden Sie hier eine Videoversion dieses Artikels:


MLPs – Das Problem

Beginnen wir mit MLPs, mit denen wir gut vertraut sind. Die MLPs bestehen aus Knoten und Kanten. In jedem Knoten werden die Eingaben summiert und Aktivierungen wie ReLU, GeLU und SeLU angewendet, um die Ausgabe für diesen bestimmten Knoten zu erzeugen.

Eine Abbildung aus dem Dokument, die den Unterschied zwischen MLPs und KANs veranschaulicht


Diese Aktivierungsfunktionen ändern sich während des Trainingsvorgangs nie. Mit anderen Worten, sie haben keine Parameter. Sie sind nicht intelligent genug, um sich selbst auf einen gegebenen Trainingsdatensatz abzustimmen. Was also während des Trainings trainiert oder aktualisiert wird, sind die Gewichte jedes dieser Knoten.

Was wäre, wenn wir die Annahme, dass die Aktivierungsfunktion festgelegt sein muss, in Frage stellen und sie trainierbar machen würden? Das ist also die Herausforderung, die das KAN-Netzwerk zu bewältigen versuchte. Die Aktivierungsfunktionen des KAN-Netzwerks werden während des Trainings aktualisiert. Bevor wir tiefer eintauchen, beginnen wir mit Polynomen und Kurvenanpassung.

Polynome und Kurvenanpassung

Die grundlegende Idee von KANs besteht darin, dass jede multivariate zusammengesetzte Funktion in die Summe mehrerer Funktionen zerlegt werden kann, die jeweils einzelne Variablen darstellen.

Eine Animation zur Veranschaulichung der x^2- und x^3-Funktionen

Nehmen wir beispielsweise an, wir haben eine Gleichung dritten Grades, bei der y=x³, wie in der gelben Kurve oben dargestellt. Und eine weitere Gleichung zweiten Grades, y=x², wie in der blauen Kurve in der obigen Animation dargestellt. In dieser Visualisierung können wir sehen, dass mit x² niemals die Krümmung erreicht werden kann, die mit x³ erreicht wird.


Nehmen wir an, uns liegen die Daten vor, die unten durch die roten und blauen Punkte dargestellt werden, und wir möchten die binäre Klassifizierungsgrenze zwischen den beiden Klassen finden.

Ein Spielzeugproblem, bei dem x^3 besser passt als x^2. Kann aber immer noch mit x^2 gelöst werden, indem zwei x^2-Kurven addiert werden!

Mit einem Polynom zweiter Ordnung, , können wir die Grenze zwischen den beiden nicht finden, da die x²-Kurve U-förmig ist, die Daten jedoch S-förmig. Obwohl die Verwendung von für diese Daten geeignet ist, ist damit ein zusätzlicher Rechenaufwand verbunden. Eine andere Lösung könnte darin bestehen, zu verwenden, wenn der Eingang x negativ ist, aber -x² zu verwenden, wenn x positiv ist (blaue Kurve mit Hand in der obigen Abbildung gezeichnet).

Wir haben lediglich zwei Polynome niedrigeren Grades hinzugefügt, um eine Kurve mit einem höheren Freiheitsgrad zu erhalten. Genau das ist die Idee hinter KAN-Netzwerken.

Ein Spielzeugproblem

Betrachten wir nun ein etwas komplexeres Spielzeugproblem, bei dem wir wissen, dass die Daten durch eine einfache Gleichung generiert werden: y=exp(sin(x1² + x2²) + sin(x3² + x4²)) . Wir haben also 4 Eingabevariablen und drei Operationen, nämlich Exponent, Sinus und Quadrat. Wir können also vier Eingabeknoten mit drei Ebenen auswählen, die jeweils den drei verschiedenen Operationen gewidmet sind, wie unten gezeigt.

Ein einfaches KAN-Netzwerk mit 4 Eingängen, 3 Schichten für 3 Basisfunktionen

KAN-Netzwerk für ein Spielzeugproblem mit vier Eingängen und drei Basisfunktionen für Berechnungen – Exponent, Sinus und Quadrat

Nach dem Training konvergieren die Knoten zu Quadrat-, Sinus- und Exponentenfunktionen, um zu den Daten zu passen.


Da es sich um ein Spielzeugproblem handelt, kennen wir die Gleichung, aus der die Daten stammen. In der Praxis kennen wir jedoch die Verteilung realer Daten nicht. Eine Möglichkeit, dieses Problem anzugehen, ist die Verwendung von B-Splines.

Splines und B-Splines

Die grundlegende Idee von B-Splines besteht darin, dass jede beliebige Funktion oder Kurve als Kombination einfacherer Funktionen oder Kurven dargestellt werden kann. Diese einfacheren Funktionen werden Basisfunktionen genannt. Nehmen wir beispielsweise die rote Kurve in der folgenden Abbildung. Der Einfachheit halber versuchen wir, diese mit nur zwei Basisfunktionen darzustellen.


Wir können es in drei Punkte aufteilen, da wir es mit der Summe zweier Basisfunktionen darstellen werden. Diese Punkte werden Knoten genannt. Es kann eine beliebige Anzahl n von Basisfunktionen geben. Der Parameter, der steuert, wie diese Basisfunktionen kombiniert werden, ist c. Wenn wir zwei Kurven „verbinden“, kann es an Knoten zu Unstetigkeiten kommen. Die Lösung besteht darin, die Krümmung der Kurven an den Knoten einzuschränken, damit wir eine glatte Kurve erhalten. Beispielsweise können wir die Steigung der beiden Kurven so einschränken, dass sie an den Knoten gleich ist, wie durch den grünen Pfeil in der folgenden Abbildung dargestellt.

Meine Skizzen zur Veranschaulichung von B-Splines und Basisfunktionen

Da wir dem neuronalen Netzwerk eine solche Einschränkung nicht auferlegen können, haben sie in dem Dokument Residual Activation Functions eingeführt. Dies wirkt eher wie eine Regularisierung. In der Praxis ist dies die SeLU-Aktivierung, die der Standard-Spline-Funktion hinzugefügt wird, wie im folgenden Dokument zu sehen ist.

Spline-Gitter und Feinkörnigkeit von KANs

KANs führen eine neue Trainingsmethode namens Feinkörnigkeit ein. Wir alle kennen die Feinabstimmung, bei der wir dem Modell weitere Parameter hinzufügen. Bei der Feinkörnigkeit können wir jedoch die Dichte der Spline-Gitter verbessern. Dies nennt man Gittererweiterung.

Ein Teil der Abbildung aus dem Dokument zeigt die Feinkörnigkeit, die der Feinabstimmung eines herkömmlichen neuronalen Netzwerks entspricht.

Wie wir aus der obigen Abbildung ersehen können, bedeutet Feinkörnigkeit einfach, die Gitter der B-Splines zu verdichten, sodass sie repräsentativer und damit leistungsfähiger werden.

Rechenkomplexität

Einer der Nachteile von Splines ist, dass sie rekursiv und daher rechenintensiv sind. Ihre Rechenkomplexität beträgt O(N²LG), was höher ist als die übliche Komplexität von O(N²L) für MLPs. Die zusätzliche Komplexität ergibt sich aus den Gitterintervallen G.

Die Autoren bekämpfen dieses inhärente Problem, indem sie zeigen, dass:

  • Die Anzahl der von KAN benötigten Parameter ist im Vergleich zu MLPs für dasselbe Problem geringer
  • KANs konvergieren während des Trainings schnell und effizient und benötigen daher weniger Trainingszeit.

Wir werden die Diagramme dieser Verteidigungen im Abschnitt „Ergebnisse“ sehen. Schauen wir uns jetzt zunächst eine andere Spezialität der KANs genauer an.

Interpretierbarkeit und Auswahl von KAN-Ebenen

Da KANs Funktionen lernen, sind sie nicht einfach eine Blackbox wie MLPs, die wir einfach entwerfen können, indem wir die Tiefe und Breite des MLP für bestimmte Daten oder Probleme wählen. Um KANs besser interpretierbar zu machen und ein gutes KAN-Netzwerk zu entwerfen, müssen wir also die folgenden Schritte befolgen:

  • Verdünnung. Wir beginnen mit einem größeren KAN-Netzwerk als erwartet und führen eine Regularisierung ein, indem wir die L1-Norm der Aktivierungsfunktion anstelle der Eingaben einführen, wie wir es normalerweise beim maschinellen Lernen tun.
  • Beschneiden. Sobald das dünn besetzte Netzwerk trainiert ist, können wir unnötige Knoten entfernen, die in einem festgelegten Kriterium oder einer Punktzahl unter einem bestimmten Schwellenwert liegen.
  • Symbolisierung. Wenn wir ungefähr wissen, welche Funktion bestimmte Daten darstellen, können wir einige Knoten so einstellen, dass sie diese Funktion übernehmen. Dies nennt man Symbolisierung. Wenn wir beispielsweise mit Schallwellen arbeiten, sind die meisten Daten sinusförmig, daher erleichtern wir uns das Leben, indem wir einige der Knoten als Sinuskurven einstellen. Das Framework ermöglicht uns dies, indem es eine Schnittstellenfunktion namens fix_symbolic(l,i,j,f) bereitstellt, wobei l, i, j Knotenebenen und -positionen sind und f die Funktion ist, die sine, cosine, log, etc sein kann.

Verschiedene Schritte zum Trainieren eines KAN-Modells

Eine Zusammenfassung der verschiedenen im Dokument vorgeschlagenen Schritte zum Erreichen eines trainierten KAN-Netzwerks

Die verschiedenen Schritte sind in der obigen Abbildung zusammengefasst. Wir beginnen mit einem großen Netzwerk und verdünnen es (Schritt 1), beschneiden das resultierende Netzwerk (Schritt 2), legen eine Symbolisierung fest (Schritt 3), trainieren das Netzwerk (Schritt 4) und gelangen schließlich zum trainierten Modell.

Experimente und Ergebnisse

Mithilfe der oben genannten Schritte haben sie KAN-Netzwerke für fünf verschiedene Spielzeugprobleme trainiert, um ihre Wirksamkeit zu veranschaulichen und sie mit MLPs zu vergleichen. Die wichtigsten Erkenntnisse aus dem Vergleich sind:

  • KAN trainiert viel schneller als MLPs, wodurch die ihm innewohnende Rechenkomplexität beeinträchtigt wird.
  • KAN kann mit weniger Parametern das erreichen, was MLPs mit viel mehr
  • KANs konvergieren sehr reibungslos mit schnell abnehmendem Verlust im Vergleich zu MLPs

Der erste Punkt wird durch die dicke blaue Linie in den fünf Diagrammen im oberen Diagramm oben für die 5 Spielzeugprobleme dargestellt. Die letzten beiden Punkte werden durch das Diagramm unten veranschaulicht, das Verlustkurven und die Parameteranzahlen zur Lösung eines bestimmten Problems zeigt.

Ergebnisse aus dem Papier zeigen, dass KANs schneller konvergieren und mit weniger Parametern in kürzerer Zeit trainiert werden können, um das Problem der Rechenkomplexität zu überwinden.

Katastrophales Vergessen

Die nächste Erkenntnis ist, dass KANs beim Problem des katastrophalen Vergessens weitaus besser sind als MLPs. Wenn wir Sequenzdaten für kontinuierliches Lernen einspeisen, scheinen sich KANs im Vergleich zu MLPs weitaus besser an die vergangenen Daten zu erinnern. Dies wird in der folgenden Abbildung gezeigt, in der KAN die 5 Phasen in den Daten reproduziert, MLP jedoch Schwierigkeiten hat.

Abbildung aus dem Papier, die zeigt, dass KANs bei der Überwindung des katastrophalen Vergessens besser sind als MLPs

Weitere Ergebnisse

Sie haben auch umfangreiche Experimente durchgeführt, um zu zeigen, dass KAN für Probleme mit partiellen Differentialen und physikalischen Gleichungen verwendet werden kann. Anstatt auf diese Details einzugehen, schauen wir uns an, wann man KANs gegenüber MLPs wählen sollte.

Auswahl zwischen KAN und MLP

Sie haben die folgende Abbildung erstellt, um uns zu zeigen, wann wir KANs gegenüber MLPs bevorzugen sollten. Wählen Sie also KANs, wenn

  • Sie arbeiten mit Strukturdaten wie Wellenformen oder Graphen
  • kontinuierlich aus Daten lernen möchten
  • Die Trainingszeit ist mir ziemlich egal!
  • hochdimensionale Daten

Auswahl zwischen KAN- und MLP-Abbildung aus dem Papier

Ansonsten gewinnen immer noch die MLPs.

Ausruf

Wenn Ihnen dieser Artikel gefallen hat, folgen Sie mir doch auf Þjórsárdalur wo ich an jedem einzelnen Tag der Woche Forschungsupdates von Top-KI-Laboren teile?

Bitte abonnieren Sie auch meinen Youtube Kanal wo ich KI-Konzepte und -Dokumente visuell erkläre.

Diskussion und Schlussfolgerung

Meiner Meinung nach werden KANs MLPs nicht ersetzen, da Transformatoren die NLP-Landschaft erobert haben. KANs werden sich eher für Nischenprobleme in Mathematik und Physik als nützlich erweisen. Aber selbst dann sind meiner Meinung nach noch viele weitere Verbesserungen nötig. Aber bei Big-Data-Problemen, die mit Basismodellen gelöst werden, haben KANs, zumindest in ihrem aktuellen Zustand, noch einen langen Weg vor sich.

Darüber hinaus weichen der Trainingsansatz und die Gestaltung der KAN-Architektur tendenziell von der Standardmethode zum Entwerfen und Trainieren moderner neuronaler Netzwerke ab. Trotzdem hat die GitHub-Seite bereits 13.000 Sterne und 1,2.000 Forks, was darauf hindeutet, dass hier etwas zu erwarten ist. Warten wir also ab und beobachten wir die Entwicklung.