2 Punkte von GN⁺ 2024-08-06 | 1 Kommentare | Auf WhatsApp teilen
  • Kolmogorov-Arnold Networks (KANs) haben eine andere Struktur als bestehende neuronale Netze und liefern schon in kleinem Maßstab besser interpretierbare und genauere Ergebnisse; sie könnten Wissenschaftlern als Werkzeug dienen, um aus physikalischen Daten neue Hypothesen abzuleiten
  • Während herkömmliche MLPs auf den Gewichten der Synapsen und den Aktivierungsfunktionen der Neuronen beruhen, lernen bei KANs die Synapsen Eingabe-Ausgabe-Funktionen, und die Neuronen berechnen nur die Summe der Synapsenausgaben
  • Bei Daten zu physikalischen Gesetzen und Experimenten zu topologischen Knoten verbesserte sich die Leistung von KANs mit wachsender Größe schneller; beim Lösen partieller Differentialgleichungen war ein KAN 100-mal genauer als ein MLP mit 100-mal mehr Parametern
  • Die Forschenden visualisierten die Funktionsformen im Inneren von KANs und die Wichtigkeit der Verbindungen und schnitten schwache Verbindungen weg; in manchen Fällen rekonstruierten sie die dem Datensatz zugrunde liegende physikalische Funktion als intuitive Ein-Zeilen-Funktion
  • KANs benötigen pro Parameter längere Trainingszeiten und lassen sich schwer auf GPUs ausnutzen, bleiben aber wegen der geringen Zahl benötigter Parameter in kleinen Maßstäben wie bei physikalischen Problemen praktisch einsetzbar

KAN schlägt eine neue Struktur für neuronale Netze vor

  • Künstliche neuronale Netze, das Zentrum der modernen KI, treiben Chatbots und Bildgeneratoren an, können wegen ihrer vielen Neuronen aber zu einer schwer interpretierbaren Black Box werden
  • Die neue Struktur Kolmogorov-Arnold Networks (KANs) ist besser interpretierbar als traditionelle neuronale Netze und zeigte in Experimenten selbst bei kleinerer Größe genauere Ergebnisse
  • Die Entwickler von KANs gehen davon aus, dass diese Struktur physikalische Daten kompakt darstellen kann und Wissenschaftlern helfen könnte, neue Hypothesen über Naturgesetze zu entdecken
  • Brice Ménard von der Johns Hopkins University bewertet das Auftauchen einer neuen Architektur, die wie KAN aus ersten Prinzipien entworfen wurde, positiv; seiner Ansicht nach beruhte das Design neuronaler Netze in den vergangenen mehr als zehn Jahren überwiegend auf Anpassungen durch Versuch und Irrtum

Unterschiede zwischen herkömmlichen MLPs und KANs

  • In traditionellen neuronalen Netzen lernt eine Synapse nur ein einzelnes Gewicht, das die Stärke der Verbindung zwischen zwei Neuronen ausdrückt
  • Neuronen bilden die gewichtete Summe der Eingaben aus den Neuronen der vorherigen Schicht und wenden darauf eine einfache Aktivierungsfunktion an
  • Die Struktur, in der jedes Neuron mit allen Neuronen der nächsten Schicht verbunden ist, wird multi-layer perceptron (MLP) genannt
  • Bei KANs werden die Rollen vertauscht
    • Synapsen lernen statt einer bloßen Verbindungsstärke eine Aktivierungsfunktion, die Eingaben auf Ausgaben abbildet
    • Diese Funktion kann ein Spline sein, also eine Kombination mehrerer Funktionen, und sich für jede Verbindung unterscheiden
    • Neuronen werden einfacher und summieren nur noch die Ausgaben der vorherigen Synapsen
  • Der Name KAN geht auf die beiden Mathematiker Kolmogorov und Arnold zurück, die die Art der Funktionskomposition untersucht haben
  • Ziel dieser Struktur ist es, bei der Darstellung von Daten mit weniger trainierbaren Parametern größere Flexibilität zu bieten

Leistung bei wissenschaftlichen Aufgaben

  • Die Forschenden testeten KANs an vergleichsweise einfachen wissenschaftlichen Aufgaben
  • Einige Experimente nutzten einfache physikalische Gesetze, etwa die Geschwindigkeit, mit der sich zwei Objekte, die sich mit relativistischen Geschwindigkeiten bewegen, aneinander vorbeibewegen
    • Aus Gleichungen wurden Eingabe-Ausgabe-Datenpunkte erzeugt
    • Für jede physikalische Funktion wurde das Netzwerk mit einem Teil der Daten trainiert und mit den übrigen Daten getestet
  • Mit wachsender Größe verbesserte sich die Leistung von KANs schneller als die von MLPs
  • Beim Lösen partieller Differentialgleichungen war ein KAN 100-mal genauer als ein MLP mit 100-mal mehr Parametern
  • In einem weiteren Experiment wurde das Netzwerk darauf trainiert, eine Eigenschaft von Knoten namens signature auf Basis anderer Eigenschaften topologischer Knoten vorherzusagen
    • Ein MLP erreichte mit etwa 300.000 Parametern eine Testgenauigkeit von 78 %
    • Ein KAN erreichte mit etwa 200 Parametern eine Testgenauigkeit von 81,6 %

Interpretierbarkeit und Rekonstruktion von Funktionen

  • Die Forschenden konnten KANs visuell entfalten und so die Form der Aktivierungsfunktionen und die Wichtigkeit jeder Verbindung betrachten
  • Schwache Verbindungen konnten manuell oder automatisch beschnitten werden
  • Einige Aktivierungsfunktionen ließen sich durch einfachere Funktionen wie die sine-Funktion oder die exponential-Funktion ersetzen
  • Dadurch ließ sich das gesamte KAN einschließlich seiner Aktivierungsfunktionen als intuitive Ein-Zeilen-Funktion zusammenfassen
  • In manchen Fällen wurde die physikalische Funktion, aus der der Datensatz erzeugt worden war, vollständig rekonstruiert
  • Ziming Liu vom MIT und dem NSF AI Institute for Artificial Intelligence and Fundamental Interactions meint, dass man schwer interpretierbare Datensätze in ein KAN einspeisen könne, um Hypothesen zu erzeugen, und die Struktur bei Bedarf anhand des KAN-Diagramms anpassen könne

Kombination mit CNNs und Transformern

  • Das KAN-Preprint wurde bereits in Dutzenden Arbeiten zitiert
  • Alexander Bodner von der University of San Andrés und seine Kollegen kombinierten KANs mit CNNs, die in der Bildverarbeitung weit verbreitet sind, und entwickelten Convolutional KANs
  • Bei Klassifikationsaufgaben mit handgeschriebenen Ziffern und Kleidungsbildern erreichten Convolutional KANs nahezu die gleiche Genauigkeit wie traditionelle CNNs
    • Bei der Ziffernklassifikation erzielten beide Netzwerke 99 % Genauigkeit
    • Bei der Kleidungsklassifikation erzielten beide Netzwerke 90 % Genauigkeit
    • Das mit KAN kombinierte Modell verwendete rund 40 % weniger Parameter
  • Bodner erklärte, die verwendeten Datensätze seien einfach gewesen, andere Teams mit mehr Rechenressourcen hätten jedoch bereits begonnen, die Netzwerke zu skalieren
  • Andere Forschende kombinieren KANs zudem mit dem Transformer, der in großen Sprachmodellen weit verbreitet ist

Langsames Training und möglicher Einsatzbereich

  • Ein Nachteil von KANs ist, dass das Training pro Parameter länger dauert
  • Ein Grund für das langsame Training ist, dass sich GPUs nur schwer ausnutzen lassen
  • Dafür benötigen KANs weniger Parameter
  • Ziming Liu geht davon aus, dass KANs riesige CNNs oder Transformer für Bild- und Sprachverarbeitung zwar nicht ersetzen werden, die Trainingszeit bei vielen physikalischen Problemen im kleinen Maßstab aber kein Problem sein muss
  • Liu untersucht, wie Experten Vorwissen in KANs einbringen können
    • So könnten etwa Aktivierungsfunktionen direkt von Menschen ausgewählt werden
    • Außerdem wird geprüft, wie sich Wissen mit einer einfachen Oberfläche leicht aus KANs extrahieren lässt
  • Langfristig könnten KANs dabei helfen, Hochtemperatur-Supraleiter zu entdecken oder Wege zur Steuerung der Kernfusion zu finden

1 Kommentare

 
GN⁺ 2024-08-06
Hacker-News-Kommentare
  • Ich habe KAN selbst an kleinen Modellierungsaufgaben ausprobiert, die Ergebnisse aufgeschrieben und mit gewöhnlichen neuronalen Netzen verglichen: https://news.ycombinator.com/item?id=40855028
    Das zentrale Fazit ist, dass KANs deutlich schwieriger zu trainieren sind als gewöhnliche neuronale Netze. Den Verlust pro Parameter kann man meist auf ein ähnliches Niveau bringen, aber dafür waren viel Hyperparameter-Tuning und zusätzliche KAN-spezifische Techniken nötig. Normale neuronale Netze ließen sich dagegen deutlich einfacher trainieren und funktionierten unter breiteren Bedingungen gut.
    In das Training neuronaler Netze ist bereits enorm viel Arbeit geflossen, und auch Optimierer wie Adam wurden in gewisser Weise für neuronale Netze entworfen und optimiert, daher halte ich den Vergleich nicht für völlig fair. KANs haben Potenzial, sind aber kein Allheilmittel, und ich bin auch etwas skeptisch gegenüber der Behauptung, dass die üblicherweise verwendeten Splines viel interpretierbarer seien als die Analyse der Ausgaben von Neuronen in unteren Schichten.
    https://cprimozic.net/blog/trying-out-kans/

    • Ich stimme weitgehend zu, dass sowohl der Hype als auch die Kritik an KAN ziemlich schwach begründet wirken. Das Potenzial ist groß, aber die bisherigen Ergebnisse sind kein Wundermittel; es könnte so einschlagen wie der Transformer oder in einer kleinen Nische bleiben.
      Forschung ist letztlich der Prozess, herauszufinden, welche Verbesserungen den praktischen Nutzen verändern, und es macht Spaß, die Entwicklung von https://github.com/mintisan/awesome-kan zu verfolgen und die verschiedenen Versuche zu sehen. Zwischen KANs und neuronalen Netzen mit festen Aktivierungsfunktionen gibt es einen kontinuierlichen Forschungsraum des Aktivierungsfunktions-Tunings.
      Zum Beispiel kann eine einfache Familie parametrisierter Aktivierungsfunktionen wie xsigmoid(mx) je nach Wert von m wie ReLU, bei m=1.7 wie GeLU oder bei m=1 wie SiLU funktionieren. Es gibt viele Punkte auf diesem Spektrum: eine einzelne Aktivierungsfunktion pro Neuron, Aktivierungsfunktionen mit mehreren Parametern, Funktionsapproximatoren bis hin zu vollständigen KANs ohne Gewichte. Wer eine einheitliche Formel berechnen kann, die zeigt, wo zusätzliche Parameter am wirkungsvollsten platziert werden sollten, dürfte viel Anerkennung bekommen.
    • Nicht nur die Optimierer, sondern auch die Initialisierungsmethoden neuronaler Netze wurden explizit so angepasst, dass Netze mit traditionellen Aktivierungsfunktionen stabil trainiert werden können. Ich weiß nicht, ob in die Initialisierung von KANs ähnlich viel Arbeit investiert wurde.
      Ich stimme zu 100 % zu, dass KANs wohl nicht interpretierbarer sein werden. Für ein einzelnes Neuron kann ich das noch nachvollziehen, aber sobald man beginnt, solche Dinge zu kombinieren, verschwindet die Interpretierbarkeit schnell.
    • Detaillierte Arbeit. Für Leute, die sich direkt den im Blog behandelten Code ansehen wollen, hier der Link: https://github.com/Ameobea/kan
    • Schön, dass jemand endlich offen ausspricht, was insgeheim ohnehin alle wissen. Alle sagen immer, neuronale Netze seien nicht interpretierbar, aber meine Erfahrung war überhaupt nicht so, sondern eher das Gegenteil.
  • KANs lassen sich als eine weitere Aktivierungsstruktur innerhalb gewöhnlicher Mehrschicht-Perzeptrons modellieren, und wegen ihrer hohen Flexibilität ist das nicht überraschend. Ich habe ein Diagramm erstellt, das verschiedene Strukturtypen einordnet: https://x.com/thomasahle/status/1796902311765434694
    Interessanterweise sind KANs nicht effizient, wenn man sie mit gewöhnlicher Matrixmultiplikation in PyTorch implementiert, aber mit benutzerdefinierten CUDA-Kernels oder torch.compile können sie sehr schnell werden: https://x.com/thomasahle/status/1798408687981297844

    • Nebenfrage: Ich frage mich, ob Leute mit tiefem Fachwissen in diesem Bereich bei solchen formelüberladenen Visualisierungen tatsächlich sofort verstehen, was vor sich geht. Ich möchte nur einordnen, wie weit ich im Vergleich zu jemandem mit durchschnittlichem Mathematikhintergrund zurückliege.
    • Interessant, danke fürs Teilen. Mich würde eine Erklärung oder Idee interessieren, warum Kompilierung bestimmte Strukturen langsamer macht.
  • Frühere Diskussion zu Kolmogorov-Arnold-Netzwerken: https://news.ycombinator.com/item?id=40219205

  • „Der Nachteil von KAN ist, dass das Training pro Parameter länger dauert, teilweise weil GPUs nicht genutzt werden können. Dafür werden aber weniger Parameter benötigt. Liu sagt, dass KANs selbst dann, wenn sie riesige CNNs oder Transformer für Bild- und Sprachverarbeitung nicht ersetzen können, bei vielen kleineren physikalischen Problemen nützlich sein könnten, wo die Trainingszeit keine große Rolle spielt.“
    Da nicht einmal gesagt wird, dass GPUs künftig vielleicht genutzt werden könnten, liest sich das wie eine grundlegende Einschränkung.

    • Wenn man sich das KAN-Repository selbst ansieht, scheint es bereits GPU-Unterstützung zu geben: https://github.com/KindXiaoming/pykan/blob/master/tutorials/API_10_device.ipynb
    • Das hier wirkt auf jeden Fall interessant: „ReLU-KAN: New Kolmogorov-Arnold Networks that Only Need Matrix Addition, Dot Multiplication, and ReLU“ https://arxiv.org/abs/2406.02075#
    • Ich habe Fälle gesehen, in denen neuronale Netze mit Entscheidungsbäumen kombiniert wurden, und für solche Hybride gibt es mehrere Ansätze. Einer davon nutzt ein genaues, auf der GPU trainiertes Netz, um die Genauigkeit eines interpretierbaren Netzes zu verbessern.
      Ich frage mich, ob sich so ein Ansatz auch bei KANs kosteneffizient anwenden ließe. Besonders interessiert mich, ob sich damit mithilfe vortrainierter Sprachmodelle wie LlaMa-3 interpretierbare Modelle trainieren lassen.
    • GPUs können sehr komplexe Dinge erledigen, daher frage ich mich, wo genau der Engpass liegt.
  • „Danach konnten wir das gesamte KAN als eine intuitive Funktion in einer einzigen Zeile zusammenfassen und in einigen Fällen die physikalische Funktion, die den Datensatz erzeugt hat, perfekt rekonstruieren.“
    Die KAN-Idee ist wirklich interessant, aber streng genommen kann man auch ein traditionelles neuronales Netz als irgendeinen geschlossenen Ausdruck in einer Zeile schreiben. Nur wird diese Zeile dann eben sehr lang. Selbst wenn man dieselbe Entscheidungsgrenze mit weniger Neuronen erzeugen kann, ist für mich nicht klar, ob die Verwendung von Splines statt Gewichten den Ausdruck selbst wirklich weniger komplex macht

    • Im ursprünglichen KAN-Paper werden dafür im Wesentlichen zwei Dinge gemacht. Zuerst verwendet man eine Regularisierung zur Förderung von Sparsity, danach lernt man einen dünn besetzten Spline-Berechnungsgraphen und fügt idealerweise einen Symbolisierungsschritt hinzu, der ein komprimiertes symbolisches Modell findet
      Im Prinzip könnte man bei einem mehrschichtigen Perzeptron etwas Ähnliches machen, aber die Darstellung eines mehrschichtigen Perzeptrons ist etwas verteilter, sodass Sparsifizierung und Symbolisierung schwieriger sein könnten
  • Könnte das jemand so erklären, als wäre ich fünf? Ich verstehe, dass neuronale Netze versuchen, die Verlustfunktion zu verringern, um bessere Ergebnisse zu erzielen, aber mich interessiert, was bei KAN tatsächlich anders ist

    • Ich bin kein Machine-Learning-Experte und lerne das gerade erst aus diesem Artikel, aber ich glaube, ich habe den Kern in der Fußnote der Grafik verstanden
      Ein normales neuronales Netz, also ein mehrschichtiges Perzeptron, hat Matrizen voller Gleitkommazahlen, die als Gewichte dienen. Gewichte sind lineare Funktionen wie y=wx; wenn man also Eingabe x und Ausgabe y in ein Koordinatensystem einträgt, erhält man eine Gerade. Wenn man die Eingabe vergrößert oder verkleinert, wächst oder schrumpft die Ausgabe ebenfalls in konstantem Verhältnis; der Effekt wird nicht plötzlich stärker oder schwächer und kehrt auch nicht die Richtung um
      Deshalb lernt das Netzwerk Gewichte über viele Schichten hinweg und verbindet sie mit einer Art magischem Klebstoff aus Funktionen, die nicht gelernt werden, sondern Teil des Entwurfs sind. Am Ende entsteht die komplexe Beziehung zwischen Eingabe und Ausgabe durch das Durchlaufen vieler Schichten
      Bei KAN lässt man das Netzwerk dagegen statt Gewichten, also linearen Funktionen, andere Arten von Funktionen lernen. Diese Funktionen sind nichtlinear, sodass die Ausgabe beim Erhöhen der Eingabe beschleunigt ansteigen oder die Richtung wechseln und sinken kann. Dadurch lassen sich viel komplexere Beziehungen zwischen Eingabe und Ausgabe lernen, aber man verliert womöglich einen Teil der Effizienz von GPUs, die für riesige Matrixoperationen optimiert sind, und braucht für beliebige mathematische Berechnungen eher die CPU
      Daher hat KAN weniger, aber komplexere „Neuronen“, und jedes Neuron besteht aus einer komplexen Funktion. Der Reiz scheint zu sein, dass man ein einzelnes Neuron anschauen und eine klare Formel erhalten kann, die erklärt, was es tut. Bei mehrschichtigen Perzeptrons muss man Gewichte über viele Schichten hinweg verfolgen, sodass mehr Arbeit nötig ist, um das Gesamtverhalten zu verstehen
      Allerdings dürften auch die Funktionen, die bei KAN herauskommen, eher nicht wie intuitive Formeln aus Isaac Newtons Notizbuch aussehen, sondern voller seltsamer Konstanten und unintuitiver Terme sein, die sich gegenseitig aufheben
    • Ob das eine Erklärung für Fünfjährige ist, weiß ich nicht, aber sehr grob vereinfacht ist eine Perzeptron-Schicht eher output = simple_function(sum(many_inputs*many_weights) + extra_weight_for_bias) und eine KAN-Schicht eher output = sum(fancy_functions(many_inputs)). Kann falsch sein, ich bin erst seit einem Tag dabei
    • Die Ausgabe eines mehrschichtigen Perzeptrons ist eine Blackbox-Funktion f(x, y). Die Ausgabe eines KAN ist eine hübsch aussehende Formel wie exp(0.3sin(x) + 4cos(y)), und genau das ist mit Interpretierbarkeit gemeint
    • KAN wirkt in gewisser Weise wie ein Netzwerk aus Netzwerken, bei dem jede Kante ihr eigenes kleines Netzwerk darstellt. Ich verarbeite den Artikel selbst noch, also kann das falsch sein, aber so wirkt es auf den ersten Blick
  • Ich frage mich, ob die Menge der gelernten Funktionen Wahrheitstabellen der Prädikatenlogik erster Stufe reproduzieren kann. Das sollte sich leicht überprüfen lassen
    Jedenfalls wäre das in Bezug auf Differenzierbarkeit eine gute Nachricht. Derzeit ist es in JAX schwierig, if-Bedingungen auszudrücken, und zumindest für mich ist das praktisch eine Optimierungsbarriere; wenn Bedingungen lernbar wären und bereits im Netzwerk steckten, wäre das großartig

    • Es ist leicht, ein mehrschichtiges Perzeptron zu bauen, das grundlegende logische Funktionen implementiert, aber für XOR braucht man mindestens eine verborgene Schicht
  • Vor ein paar Wochen haben wir Ziming Liu zum London Machine Learning Meetup eingeladen. Er hat einen großartigen Vortrag über diese interessante Arbeit gehalten, und die Aufzeichnung gibt es hier: https://youtu.be/FYYZZVV5vlY?si=ReoygVJMgY9oje3p

  • Ich bin etwas skeptisch. In den 80er und 90er Jahren gab es bereits viele Paper und Experimente zu verschiedenen Architekturen künstlicher neuronaler Netze als Alternativen zu f(x*w+b). Aber die praktisch leistungsstärksten Modelle von heute basieren immer noch auf Multiplikation, Akkumulation und Schwellwerten. Letztlich wegen Geschwindigkeit und Einfachheit

  • „Der Nachteil von KAN ist, dass die Trainingszeit pro Parameter länger ist, teilweise weil GPUs nicht genutzt werden können.“
    Das wirkt wie eine große Lücke. Ich würde gern wissen, ob das eine grundlegende strukturelle Unvereinbarkeit ist oder ob bisher einfach noch niemand die nötigen CUDA-Kernel geschrieben hat