3 Punkte von GN⁺ 2023-08-11 | 1 Kommentare | Auf WhatsApp teilen
  • Grokking, das in kleinen Modellen beobachtet wurde, ist ein Phänomen, bei dem ein Modell zunächst die Trainingsdaten auswendig lernt und erst nach deutlich längerem Training plötzlich auch unbekannte Eingaben richtig vorhersagt; damit liefert es einen Hinweis darauf, wie sich Auswendiglernen und Generalisierung unterscheiden lassen
  • Das 1-schichtige MLP im Experiment zur modularen Addition zeigt anfangs verrauschte Gewichte, bildet aber zu dem Zeitpunkt, an dem die Testgenauigkeit steigt, eine periodische Struktur aus und generalisiert dadurch
  • Im Experiment mit 30-stelligen 0/1-Sequenzen reduziert ein generalisierendes Modell die Gewichte auf störenden hinteren Stellen und konzentriert sich auf die ersten 3 Stellen, wodurch der Unterschied zwischen einer Memorierungs- und einer Generalisierungslösung sichtbar wird
  • Der zentrale Druck hinter dem Umschalten ist das Minimieren des Losses zusammen mit Weight Decay (weight decay); auch wenn der Test-Loss plötzlich abzufallen scheint, bewegen sich die inneren Gewichte relativ glatt zwischen beiden Lösungen
  • Grokking tritt nur auf, wenn Hyperparameter wie Modellgröße, Datengröße und Weight Decay passend gewählt sind; ob sich große Modelle auf dieselbe Weise interpretieren lassen, ist weiterhin offen

Die Frage, die Grokking aufwirft

  • 2021 entdeckten Forschende bei Spielzeugaufgaben ein Phänomen, bei dem kleine Modelle zwar zuerst die Trainingsdaten korrekt trafen, die Testdaten aber eine Zeit lang noch nicht; erst nach längerem Training generalisierten sie plötzlich
  • Dieses Phänomen wird Grokking genannt und bezeichnet Lerndynamiken, bei denen Generalisierung erst lange nach dem Fit auf die Trainingsdaten auftritt
  • Große Sprachmodelle können so wirken, als würden sie die Welt verstehen, sie könnten aber auch nur Teile ihrer riesigen Trainingskorpora auswendig lernen und wiedergeben
  • Wenn man bei kleinen Modellen beginnt, lässt sich leichter Intuition für Interpretationsmethoden aufbauen, die sich nicht direkt auf die heute größten Modelle anwenden lassen
  • Der Ansatz besteht darin, den Lernprozess kleiner Modelle zu beobachten und die von ihnen gefundene Lösung rückzuentwickeln, um ein Beispiel für mechanistische Interpretierbarkeit zu zeigen

Periodische Struktur in modularer Addition

  • Modulare Addition wird als kleine Aufgabe verwendet, bei der sich Grokking leicht beobachten lässt
    • Gegeben sind zwei Eingabezahlen a, b und ein Modulus; vorhergesagt werden soll a + b unter modularer Arithmetik
    • Im Beispiel werden Zahlen von 0 bis 66 verwendet; 67 wurde gewählt, damit die Visualisierung weder zu simpel noch zu komplex wird
  • Das Versuchsmodell ist ein 1-schichtiges MLP mit 24 Neuronen
    • Alle Paare a, b werden zufällig in Trainings- und Testdaten aufgeteilt
    • Die Trainingsdaten dienen zum Anpassen der Modellgewichte, die Testdaten ausschließlich dazu, zu prüfen, ob eine allgemeine Lösung gelernt wurde
  • Das Modell wählt die Embedding-Spalten für die Eingaben a und b aus, addiert sie, setzt negative Werte auf 0 und verwendet dann die nächstgelegene Spalte der Ausgabematrix als Vorhersage
  • Früh im Training sind die Gewichte verrauscht, doch wenn die Testgenauigkeit steigt und das Modell generalisiert, erscheinen periodische Muster
    • Am Ende des Trainings durchläuft jedes Neuron mehrfach hohe und niedrige Werte, während die Eingabezahl von 0 auf 66 steigt
    • Wenn man Neuronen nach ihrer finalen Periodenfrequenz gruppiert, wird dieses Muster noch deutlicher
  • Diese Periodizität deutet darauf hin, dass das Modell eine mathematische Struktur gelernt hat, und fällt mit dem Zeitpunkt zusammen, an dem es beginnt, Testbeispiele zu lösen

Auswendiglernen und Generalisierung in einer 0/1-Aufgabe

  • Ein noch einfacheres Experiment lässt ein Modell bei 30 langen 0/1-Sequenzen vorhersagen, ob die Anzahl der Einsen in den ersten 3 Stellen ungerade ist
    • Beginnt eine Sequenz zum Beispiel mit 000..., kann die Ausgabe 0 sein; beginnt sie mit 010..., kann sie 1 sein
    • Im Kern ist das eine etwas schwierigere XOR-Aufgabe, während die hinteren Stellen nur störendes Rauschen sind
  • Ein generalisierendes Modell sollte nur die ersten 3 Stellen verwenden
    • Ein Modell, das die Trainingsdaten auswendig lernt, benutzt zusätzlich auch die hinteren störenden Stellen
  • Auch in diesem Experiment wird ein 1-schichtiges MLP verwendet, das auf festen 1.200 Sequenzen trainiert wird
    • Anfangs steigt nur die Trainingsgenauigkeit, während die Testgenauigkeit fast auf Zufallsniveau bleibt
    • Später steigt die Testgenauigkeit stark an, wenn die allgemeine Lösung gelernt wird
  • Ein Modell in der Memorierungsphase zeigt dichte, verrauschte Gewichte mit hohen Beträgen, die über viele Eingaben verteilt sind
  • Ist die Generalisierung abgeschlossen, werden die Gewichte zu den störenden Stellen sehr klein, und das Modell konzentriert sich auf die ersten 3 Eingabestellen

Wie Weight Decay die generalisierende Lösung begünstigt

  • Während des Trainings wirkt auf das Modell gleichzeitig zweierlei Druck
    • Es muss den Loss verringern, um den korrekten Labels hohe Wahrscheinlichkeit zuzuweisen
    • Gleichzeitig wirkt Weight Decay, das kleine Gewichtsbeträge bevorzugt
  • In der 0/1-Aufgabe steigt der Trainings-Loss leicht an, kurz bevor das Modell generalisiert
    • Das liegt daran, dass es einen Teil des Loss-Gewinns aufgibt, um zu einer Lösung mit kleineren Gewichten zu wechseln
  • Der starke Abfall des Test-Loss lässt es so erscheinen, als würde das Modell plötzlich auf Generalisierung umschalten
  • Betrachtet man jedoch die Gewichte während des Trainings, interpolieren die meisten glatt zwischen der Memorierungs- und der Generalisierungslösung
  • Die schnelle Generalisierung tritt auf, wenn die letzten Gewichte zu den störenden Stellen durch Weight Decay entfernt werden

Unter welchen Bedingungen Grokking auftritt

  • Grokking tritt nicht immer auf, sondern hängt von Bedingungen wie Modellgröße, Weight Decay und Datengröße ab
  • Ist das Weight Decay zu klein, bleibt das Modell im Overfitting auf die Trainingsdaten stecken
  • Erhöht man das Decay etwas, memoriert das Modell zuerst und generalisiert danach
  • Erhöht man es weiter, fallen Test-Loss und Trainings-Loss gemeinsam, und das Modell generalisiert direkt
  • Ist das Decay zu groß, lernt das Modell überhaupt nichts
  • In der 0/1-Aufgabe wurden mit unterschiedlichen Hyperparametern mehr als 1.000 Modelle trainiert; um Trainingsrauschen zu berücksichtigen, wurden pro Hyperparameter-Kombination 9 Modelle gelernt

Eine Lösung für modulare Addition mit fünf Neuronen

  • Modulare Addition ist ein periodisches Problem, weil die Summe nach Überschreiten von 67 wieder von vorn beginnt
  • Ordnet man Eingabezahlen als Punkte auf einem Kreis an, lässt sich diese Periodizität direkt in die Modellstruktur einbauen
    • Für jede mögliche Eingabezahl werden sin- und cos-Werte berechnet, aus denen die Embedding-Matrix besteht
  • In einem 1-schichtigen MLP mit diesem Startpunkt lässt sich eine perfekte Lösung schon mit 5 Neuronen finden, wenn nur einige der Matrizen trainiert werden
  • Betrachtet man die trainierten Parameter, konvergieren die Neuronen auf nahezu gleiche Größen, und zeichnet man die sin- und cos-Komponenten, liegen sie fast gleichmäßig auf einem Kreis
  • Verbindet man benachbarte Neuronen, zeigt sich ein Muster, bei dem sich die unembedding-Seite doppelt so schnell um den Kreis bewegt wie die Embedding-Seite
  • Diese Konstruktion liefert eine 20-Parameter-Lösung für modulare Addition

Derselbe Algorithmus im großen 1-schichtigen MLP

  • Das ursprüngliche Modell mit 3.216 Parametern wird von Grund auf trainiert und startet ohne eingebaute Periodizität
  • Anders als die konstruierte kleine Lösung verwendet dieses Modell mehrere Frequenzen
  • Mit der diskreten Fourier-Transformation (DFT) lassen sich die über die Eingaben hinweg gelernten periodischen Muster zerlegen
    • Für jedes Neuron lassen sich sin- und cos-Werte für mögliche Periodenfrequenzen von 1 bis 33 bestimmen
    • Neuronen können nach der Frequenz gruppiert werden, bei der ihre sin- und cos-Werte am größten sind
  • Je stärker das Modell generalisiert, desto spärlicher macht Weight Decay diese Darstellung
  • Gruppiert man die Neuronen nach ihrer finalen Frequenz und zeichnet die DFT-Komponenten, erscheint dieselbe Sternform wie in der Fünf-Neuronen-Konstruktion
  • Das trainierte Modell verwendet also denselben Algorithmus wie die konstruierte Lösung
    • Betrachtet man die Ausgabebeiträge der Neuronengruppen je Frequenz, erzeugen sie Wellenformen, die der Berechnung von a + b mod 67 entsprechen
    • Nach einer kurzen Plateauphase um etwa 45.000 Schritte richtet sich die Frequenz-7-Neuronengruppe sternförmig aus, wenn sich der Test-Loss verbessert, und die Ausgabe nähert sich stärker der Wellenform an
  • Das Modell nutzt mehrere Frequenzen, um den Loss zu senken, ohne größere Gewichte zu verwenden, und macht sich dabei konstruktive Interferenz zunutze
  • Die Frequenzen 4, 5, 7 und 26 sind an sich nicht besonders; in anderen Trainingsläufen werden Varianten desselben Algorithmus gelernt

Offene Fragen

  • Allein ein Modell der Form W = W_L W_R direkt zu trainieren, führt in modularer Arithmetik nicht zu Generalisierung, selbst wenn Weight Decay hinzugefügt wird
    • Mindestens eine Matrix muss faktorisiert sein
    • Nach der DFT ist die generalisierende Lösung zwar spärlich, die zusammengeführte Matrix hat aber eine große Norm
    • Weight Decay direkt auf W und U anzuwenden, liefert für diese Aufgabe keinen passenden induktiven Bias
  • Weight Decay kann viele Modelle davon wegbewegen, nur die Trainingsdaten zu memorieren
    • Weitere Techniken gegen Overfitting sind Dropout, kleinere Modelle und numerisch instabile Optimierungsalgorithmen
    • Diese Ansätze interagieren komplex und nichtlinear, sodass sich schwer vorhersagen lässt, welche Einstellung Generalisierung fördern wird
  • Eine Theorie dafür, warum Memorierung vor Generalisierung auftritt, lautet, dass es sehr viel mehr Möglichkeiten geben könnte, den Trainingssatz auswendig zu lernen, als eine generalisierende Lösung zu finden
    • Ohne Regularisierung oder bei nur schwacher Regularisierung ist es statistisch wahrscheinlicher, dass zuerst Memorierung auftritt
    • Regularisierungsmethoden wie Weight Decay bevorzugen bestimmte Lösungen, etwa spärliche, gegenüber dichten Lösungen
  • Gut strukturierte Repräsentationen können mit Generalisierung zusammenhängen, sind aber weder notwendige noch hinreichende Bedingungen
    • Einige MLP-Varianten ohne symmetrische Eingaben lernen bei modularer Addition weniger kreisförmige Repräsentationen
    • Kleine Modelle, die ohne Weight Decay trainiert wurden, beginnen mitunter zu generalisieren und fallen dann mit periodischen Embeddings wieder in Memorierung zurück
    • Bei manchen Hyperparametern sind sogar Übergänge Generalisierung → Memorierung → Generalisierung möglich

Interpretierbarkeit als Weg zu größeren Modellen

  • Grokking wurde bei algorithmischen Aufgaben in kleinen Transformern und MLPs beobachtet und später auch bei komplexeren Aufgaben mit Bild-, Text- und tabellarischen Daten innerhalb bestimmter Hyperparameterbereiche gefunden
  • Die größten Modelle, die viele verschiedene Aufgabentypen bewältigen können, könnten während des Trainings mehrere Dinge mit unterschiedlicher Geschwindigkeit grokken
  • Es gibt auch Arbeiten, die Grokking vor seinem tatsächlichen Auftreten vorhersagen wollen
    • Manche Methoden benötigen Wissen über die generalisierende Lösung oder über die gesamte Datendomäne
    • Andere analysieren nur den Trainings-Loss und könnten auch auf größere Modelle anwendbar sein
  • Ein möglicher Weg nach vorn besteht darin, wiederholt einfachere Modelle einzusetzen
    • Man trainiert einfache Modelle mit stärkerem induktivem Bias und weniger beweglichen Teilen
    • Mit ihnen erklärt man schwer interpretierbare Teile großer Modelle
    • Falls nötig, wiederholt man diesen Prozess
  • Ein solcher Ansatz der mechanistischen Interpretierbarkeit kann helfen, Muster zu identifizieren oder zu automatisieren, mit denen sich von neuronalen Netzen gelernte Algorithmen aufspüren lassen

1 Kommentare

 
GN⁺ 2023-08-11
Meinungen auf Hacker News
  • Der Grund, warum das menschliche Gedächtnis so erstaunlich ist, scheint darin zu liegen, dass es zwar nicht die Speicherkapazität einer Maschine hat, aber die Fähigkeit zur Musterkompression, bei der Informationen stark reduziert gespeichert werden.
    Diese Muster werden dann wiederum mit anderen Mustern gebündelt und komprimiert, und daraus wird etwas extrahiert; es ist zwar eine enorme verlustbehaftete Kompression, erfüllt aber ihren Zweck.

    • Ganz so ist es nicht. Es gibt auch Forschung, der zufolge es für die Speicherkapazität des Gehirns keine für uns erreichbare Obergrenze zu geben scheint.
      Das Gehirn destilliert Wissen, das nicht buchstäblich auswendig gelernt werden muss, aktiv auf Kernelemente herunter; es geht eher darum, Overfitting zu vermeiden und „verallgemeinerte Intuition und Verständnis“ zu gewinnen.
      Siehe: https://www.scientificamerican.com/article/new-estimate-boosts-the-human-brain-s-memory-capacity-10-fold/
    • Es gibt auch seltene Menschen, die sich an alles erinnern.
      https://youtu.be/hpTCZ-hO6iI
    • Für assoziatives Gedächtnis und den mathematischen Hintergrund dazu kann man sich Hopfield Neural Networks ansehen.
      Die Obergrenze ist technisch gesehen „unendlich“, aber zwischen der Anzahl der gespeicherten Konzepte und der pro Konzept speicherbaren grundlegenden Informationsmenge gibt es einen Trade-off, ähnlich wie bei anderen Kompromissprinzipien, etwa einer Art Unschärferelation.
    • Künstliche neuronale Netze verhalten sich in Bezug auf ihre Fähigkeit, die Zukunft vorherzusagen, oft wie Kompressionsalgorithmen. Ein trainiertes Netzwerk speichert nicht komprimierte Daten, sondern ähnelt eher dem Kompressionsalgorithmus selbst.
      Ob Tiergehirne genauso funktionieren, weiß ich nicht, aber ich vermute, dass sie hauptsächlich Kompressionsalgorithmen für Vorhersagen sind und die Daten selbst nicht in großer Menge speichern.
    • In Mathematik- und Physikkursen war es wirklich hilfreich, allgemeine Konzepte zu verstehen und Formeln dann aus anderen, leichter zu merkenden Fakten herzuleiten, statt sie auswendig zu lernen.
      Geometrie eignet sich gut für dieses Training und ist auch bei physikalischen Beweisen oft nützlich.
  • Der Kern scheint zu sein, dass Weight Decay Sparsity fördert und so dabei hilft, eher „echte“ Repräsentationen zu lernen als overfittete Repräsentationen.
    Im menschlichen Gehirn tritt während der Entwicklung breit ein ähnlich wirkender Mechanismus auf, das synaptische Pruning. Von Fachleuten auf dem Gebiet würde ich gern hören, ob das die Inspiration für Weight Decay oder, direkter, für Pruning neuronaler Netze war.

    • Als Machine-Learning-Forscher möchte ich das korrigieren: L1 induziert Sparsity. Weight Decay ist explizit L2, induziert also keine Sparsity; das ist ein verbreitetes Missverständnis.
      Weight Decay funktioniert, weil es bei Anwendung als Regularisierung das Netzwerk näher an die minimale Beschreibungslänge (MDL) bringt und so den Regret während des Lernens reduziert. Es hat in gewissem Maß mit Pruning im Gehirn zu tun, aber das Gehirn scheint Sparsity grundsätzlich nicht zur Kompression, sondern zur Herleitung von Repräsentationen zu verwenden; damit ist es im Grunde eher ein anderes Motiv. Man kann dabei an den impliziten Bias unterschiedlicher Repräsentationen denken und an dessen nachgelagerte Auswirkungen auf gelernte oder lernbare Repräsentationen.
    • Die Inspiration für Weight Decay war, die Memorierungsfähigkeit des Modells zu reduzieren, um sie genau an die Komplexität der Aufgabe anzupassen. Ist es komplexer als die Aufgabe, kommt es zu Overfitting; ist es weniger komplex, zu Underfitting. Man braucht also ein Gleichgewicht zwischen beiden.
      Das beste Mittel gegen Overfitting ist jedoch, den Datensatz zu vergrößern und für Datenvielfalt zu sorgen. LLMs werden wegen ihrer enorm großen Datensätze normalerweise nur eine Epoche lang trainiert.
    • Im menschlichen Gehirn gibt es synaptisches Pruning. Sein genauer Zweck ist nur theoretisiert, nicht wirklich verstanden, und anzunehmen, es gebe irgendeinen analogen Mechanismus zwischen LLMs und dem menschlichen Gehirn, wäre ein gewaltiger Sprung.
    • Soweit ich weiß, stammt Weight Decay aus der L2-Regularisierung, die bis zur linearen Regression zurückreicht. L2-Regularisierung ist äquivalent dazu, eine gaußsche Prior-Verteilung mit Mittelwert 0 auf die Gewichte zu legen.
      L1-Regularisierung erzeugt deutlich mehr Sparsity, liefert aber entsprechend schlechtere Performance.
  • In der AI-Szene wird das Wort grok ruiniert.
    Ursprünglich bedeutet es ungefähr „vollständig, ganz und gar verstehen“; dasselbe Wort für Generalisierung zu verwenden, heißt, dass man Grokking nicht grokkt.

    • „Grok“ in der AI bedeutet nicht einfach Generalisierung, sondern etwas Spezifischeres. Es ist eher „verzögerte und ziemlich abrupte Generalisierung“.
      Darüber gab es auch Diskussionen in den Kommentaren zu einem Beitrag, der vorschlug, dieses Phänomen „final recovery from overfitting“ zu nennen: https://www.lesswrong.com/posts/GpSzShaaf8po4rcmA/qapr-5-grokking-is-maybe-not-that-big-a-deal
    • Aus Sicht eines SF-Nerds ist „grok“ ein Wort, mit dem Valentine Michael Smith ein marsianisches Wort an menschliche Ohren und Stimmbänder angepasst hat; die genaue referenzielle Bedeutung ist „trinken“.
      Die Konnotationen reichen von „tief in sich aufnehmen“ im wörtlichen oder übertragenen Sinn bis hin zum Verzehr des abwesenden Leichnams eines geliebten Menschen. Ich empfehle Stranger in A Strange Land sehr und würde zur ungekürzten Neuauflage von etwa 1990 greifen.
    • Hier wird Grokking einfach anders definiert.
      Es scheint ziemlich plausibel, weil es Elemente wie intuitives Verständnis und einen plötzlichen, starken Zuwachs an Verständnis wachruft, und das ähnelt auch der Veränderung, die im Loss passiert.
    • Ich verstehe wirklich nicht, welchen Unterschied man zwischen den beiden Verwendungen machen will.
    • Ich habe immer gedacht, dass beim Grokken von etwas nicht Vollständigkeit, sondern intuitives Verständnis entscheidend ist.
  • Wenn ich mich richtig erinnere, sagte Raphaël Millière in einem Mindscape-Interview, dass bei Machine-Learning-Modellen mit vielen Dimensionen die Unterscheidung zwischen Interpolation und Extrapolation nicht so klar ist wie in den Bereichen, in denen wir normalerweise schlussfolgern.
    Ich bin mir nicht sicher, ob das eine ähnliche Aussage ist wie das, was in diesem Beitrag behandelt wird.

  • Ich frage mich, wie diese Diagramme erstellt wurden.
    Vermutlich wurden sie mit irgendeiner Bibliothek etwa zur Hälfte generiert und dann manuell nachbearbeitet; die erzeugten animierten SVGs sind wunderschön.

  • Wenn einen die Details dieses Themas interessieren, sollte man den Artikel am besten am Computer ansehen. Auf Mobilgeräten gibt es Visualisierungsdaten, die sich nicht erkunden lassen.

  • Zunächst einmal ist es ein guter Blogpost mit vielen hervorragenden Beispielen und erinnert an das frühere distill.pub.
    Wie im Artikel richtig gesagt wird, entstehen bei L2 Weight Decay normalerweise viele Gewichte mit kleiner Größe. Ich frage mich, ob es, wenn man ein besser generalisierendes Modell will, immer besser wäre, L1 Weight Decay zu verwenden, um Sparsity zu fördern, und länger zu trainieren. Außerdem frage ich mich, ob Deep-Learning-Modelle, die statt dichter linearer Schichten nur sparse Fourier-Features verwenden, vielleicht besser funktionieren würden.

    • Die kurze Antwort: Wenn sich die Eingabe gut in einer Fourier-Basis darstellen lässt, dann ja. Zu diesem Thema läuft bei mir gerade ein Patentverfahren, daher hoffe ich, dass das gut ausgeht.
      Die lange Antwort: Deep-Learning-Modelle versuchen normalerweise, die optimale nichtlineare Basis zur Darstellung der Eingabe zu finden. Wenn die Eingabe in einer vorab bekannten Basis gut, also sparse, dargestellt werden kann, hilft es in der Regel, sie auf diese Basis zu bringen, etwa indem man ein RF-Signal per FFT transformiert. Allerdings kann die global optimale Basis von der Basis jedes lokalen Minimums verschieden sein, daher braucht man Tricks, um das Netzwerk in diese Richtung zu schieben.
    • Etwas verwandt damit: Die ReLU-Aktivierungsfunktion, die Sparsity begünstigt, wird in neuronalen Netzen häufig verwendet.
  • Ich frage mich, wie repräsentativ die Zielfunktion ist.
    Dass man möchte, dass ein Modell die wichtigen Teile der Eingabe lernt, ist zwar häufig, aber dass es bei einem Bitstring nur auf die ersten drei Bits achtet, wirkt ziemlich künstlich. Ich weiß nicht, ob hier eine Wahrheitstabelle mit einer relevanten Parametergröße von 8 mit 4,8 Millionen Samples trainiert wurde, oder ob ich etwas missverstehe.

    • Dieses Muster habe ich auch bei Computer-Vision-Aufgaben gesehen: Die Trainingsgenauigkeit bleibt eine Zeit lang flach, und dann beginnt die Testgenauigkeit zu steigen.
      Der Grund für die Verwendung einer einfachen Aufgabe ist, dass man interpretieren kann, was intern passiert, wenn so etwas auftritt.
  • Im HTML gab es weder einen RSS/Atom-Auto-Discovery-Feed noch einen Link auf einen RSS-Feed, aber durch Raten möglicher Feed-Namen und -Speicherorte konnte ich den RSS-Feed von „Explorables“ finden: https://pair.withgoogle.com/explorables/rss.xml

  • Sieht nach Gitterzellen aus.
    https://en.wikipedia.org/wiki/Grid_cell
    Wenn man die Heatmaps der Neuronen in der verborgenen Schicht in einem 2D-Diagramm zeichnet, mit $a$ auf der einen Achse und $b$ auf der anderen, dürfte ein Dreiecksgitter entstehen. Wenn es so funktioniert, wie ich denke, würde man bei einem anderen verborgenen Neuron ein weiteres Gitter mit anderer Richtung und anderem Maßstab sehen. Wenn man diese zusammensetzt, könnte man auch einen Addierer zur Basis 67 bauen. Außerdem werde ich das Gefühl nicht los, dass die Beziehung zwischen den W_in-proj-Neuronen und die Beziehung zwischen den W_out-proj-Neuronen einer Abbildung zwischen Halbtonkreis und Quintenzirkel ähnelt.
    https://upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Pitch_class_space_star.svg/220px-Pitch_class_space_star.svg.png