Lieber schauen statt lesen?
8 Minuten · Vom Aktienkurs zum Sprachmodell im Browser
Kapitel 1
Das Glasperlenspiel
Eine Google-Suche löst im Hintergrund ein Eigenwertproblem: Welche Webseite hat das höchste Gewicht im Verlinkungs-Graph? Die Antwort ist ein Eigenvektor. Ein neuronales Netz lernt über Eigenwerte des Trainings-Operators, welche Merkmale es behalten und welche es vernachlässigen soll. In der Quantenmechanik bilden die erlaubten Energien eines Atoms – die diskreten Spektrallinien, die Niels Bohr 1913 nicht erklären konnte – ebenfalls Eigenwerte; Schrödinger gab seiner Arbeit von 1926 daher den Titel Quantisierung als Eigenwertproblem.
Dass dieselbe mathematische Struktur in drei völlig unterschiedlichen Kontexten auftaucht, ist kein Zufall. Im Folgenden wird der Grund dafür entwickelt.
Die Argumentation verläuft als Kette: von der linearen Regression über Kernel-Methoden und Google PageRank bis zu neuronalen Netzen. Jedes Glied folgt aus dem vorhergehenden. Am Ende steht die Beobachtung, dass moderne künstliche Intelligenz im Kern ein Eigenwertproblem ist.
Falls du den Quantenbeitrag gelesen hast: Dort hast du den Propagator \(K(B,A,t) = \sum_n \phi_n(B)\,\phi_n^*(A)\,e^{-i E_n t/\hbar}\) gesehen – eine Summe über Eigenzustände. Die Energien \(E_n\) sind Eigenwerte. Hier wirst du entdecken, dass der Kernel in der KI exakt dieselbe Struktur hat. Derselbe Buchstabe \(K\). Dasselbe Muster. Mehr dazu im Epilog.
Kapitel 2
Der kürzeste Weg
Ein Schatten auf dem Boden
Ein anschauliches Bild für Projektion: ein Mensch in der Mittagssonne. Der Schatten fällt senkrecht auf den Boden und ist ein flaches Abbild der dreidimensionalen Gestalt – die bestmögliche Darstellung in einer niedrigeren Dimension. Was „bestmöglich“ hier heißt, ließe sich beliebig definieren; in der Linearen Algebra wird es konkret gemacht: Der kürzeste Abstand von einem Punkt zu einer Fläche ist immer der senkrechte. Diese Eigenschaft trägt alles Folgende.
Das Skalarprodukt: Zwei Vektoren, eine Zahl
Um „senkrecht“ mathematisch auszudrücken, wird das Skalarprodukt verwendet: \(\langle \mathbf{a}, \mathbf{b} \rangle = a_1 b_1 + a_2 b_2 + \ldots + a_n b_n\). Es beschreibt anschaulich das Maß dafür, wie weit zwei Vektoren in dieselbe Richtung zeigen. Zwei Vektoren stehen senkrecht aufeinander genau dann, wenn ihr Skalarprodukt null ist; ist es positiv, zeigen sie in ähnliche Richtungen, ist es negativ, in entgegengesetzte.
Projektion auf eine Gerade
Sei \(\mathbf{y}\) ein Vektor und \(\mathbf{a}\) eine Richtung. Der Punkt auf der Geraden durch \(\mathbf{a}\), der \(\mathbf{y}\) am nächsten liegt, ist:
Der Bruch beschreibt anschaulich, wie weit man entlang \(\mathbf{a}\) gehen muss, damit der Fehler \(\mathbf{y} - \hat{y}\) senkrecht auf \(\mathbf{a}\) steht. Damit ist die Grundoperation der gesamten linearen Approximation gegeben.
Der allgemeine Fall: Die Normalengleichung
In der Praxis wird nicht auf eine Gerade projiziert, sondern auf einen Unterraum, aufgespannt durch die Spalten einer Matrix \(X\). Die Bedingung „Fehler steht senkrecht auf allen Spalten" lässt sich kompakt schreiben:
Dies ist die sogenannte Normalengleichung. Konkretes Beispiel: \(X = (1,\; 0{,}5)^T\), \(\mathbf{y} = (3,\; 4)^T\). Dann ist \(X^TX = 1{,}25\), \(X^T\mathbf{y} = 5\), und damit \(c = 4\). Die Projektion lautet \(\hat{\mathbf{y}} = (4,\; 2)^T\); der Fehler \((-1,\; 2)^T\) steht senkrecht auf \(X\), denn \(1 \cdot (-1) + 0{,}5 \cdot 2 = 0\). ✓
Die Formel ist kompakt, hat aber in der Mitte einen kostspieligen Term: die Inversion \((X^TX)^{-1}\). Sie kostet \(O(n^3)\) Rechenoperationen und ist numerisch instabil. Im nächsten Kapitel wird gezeigt, dass diese Inversion vermeidbar ist.
Kapitel 3
Geduld statt Genialität
Die Inversion der Matrix \(X^TX\) ist rechnerisch teuer und numerisch instabil; sie lässt sich vermeiden, indem an ihre Stelle ein iteratives Verfahren tritt, das auf wiederholter Fehlerkorrektur beruht. Im Folgenden wird gezeigt, dass dieses Verfahren dieselbe Lösung wie die Normalengleichung liefert, jedoch ohne Matrixinversion auskommt.
Projiziere, korrigiere, wiederhole
Schritt 1: Berechne eine grobe erste Approximation: \(\hat{\mathbf{y}}_1 = X \cdot X^T \mathbf{y}\).
Schritt 2: Berechne den Fehler (das Residuum): \(\mathbf{r}_1 = \mathbf{y} - \hat{\mathbf{y}}_1\).
Schritt 3: Projiziere den Fehler selbst und addiere ihn: \(\hat{\mathbf{y}}_2 = \hat{\mathbf{y}}_1 + X \cdot X^T \mathbf{r}_1\).
Und weiter. Und weiter. Jede Iteration bringt uns näher an die exakte Lösung.
Das Muster in den Residuen
Nach \(n\) Schritten hat das Residuum die Form:
Wenn die Matrix \((I - XX^T)\) „schrumpft“ – alle ihre Eigenwerte betragskleiner als 1 sind – dann konvergiert \(\mathbf{r}_n \to \mathbf{0}\). Der Fehler verschwindet. (Das setzt voraus, dass die Daten passend skaliert sind. In der Praxis fügt man eine Lernrate \(\eta\) ein, die genau das sicherstellt – wir halten es hier einfach.)
Die mathematische Struktur hinter dieser Konvergenz heißt Neumann-Reihe:
Das ist die Matrixversion der geometrischen Reihe \(\sum q^k = 1/(1-q)\). Und sie bedeutet: Unsere Iteration konvergiert gegen \((X^TX)^{-1}X^T\mathbf{y}\) – exakt die geschlossene Lösung aus Kapitel 2.
Konkretes Beispiel: Zahlen statt Symbole
Für \(X = (1,\; 0{,}5)^T\) und \(\mathbf{y} = (3,\; 4)^T\) mit exakter Lösung \(\hat{\mathbf{y}}^* = (4,\; 2)^T\):
| n | \(\hat{\mathbf{y}}_n\) | \(\mathbf{r}_n\) | \(\|\mathbf{r}_n\|\) |
|---|---|---|---|
| 0 | (0; 0) | (3; 4) | 5,00 |
| 1 | (3,13; 1,56) | (−0,13; 2,44) | 2,44 |
| 2 | (3,47; 1,73) | (−0,47; 2,27) | 2,32 |
| 5 | (3,84; 1,92) | (−0,84; 2,08) | 2,25 |
| 20 | (3,99; 2,00) | (−0,99; 2,00) | 2,24 |
| ∞ | (4; 2) | (−1; 2) | 2,24 |
Die Approximation wandert Iteration für Iteration näher an (4, 2). Der Fehler im Grenzfall, \((-1, 2)\), steht senkrecht auf \(X\): \(1 \cdot (-1) + 0{,}5 \cdot 2 = 0\). Genau das ist die Bedingung der Normalengleichung.
Selbst nachvollziehen. Durch wiederholtes Klicken auf „Nächster Schritt" wandert die blaue Approximation auf die grüne exakte Lösung zu; der rote Pfeil (Residuum) wird bei jedem Schritt kürzer.
Dies bedeutet: Die Iteration konvergiert nicht gegen eine Näherung, sondern gegen die exakte Lösung – dieselbe, die die Matrixinversion liefert – ohne dass eine Matrix invertiert wird. Es genügt das wiederholte Korrigieren des eigenen Fehlers.
Der elegante Beweis
Im Gleichgewicht ändert sich die Lösung nicht mehr: \(\hat{\mathbf{y}}' = X^T\mathbf{y} + (I - X^TX)\,\hat{\mathbf{y}}'\). Umstellen ergibt \(\hat{\mathbf{y}}' - (I - X^TX)\,\hat{\mathbf{y}}' = X^T\mathbf{y}\), also \(X^TX\,\hat{\mathbf{y}}' = X^T\mathbf{y}\), und damit \(\hat{\mathbf{y}}' = (X^TX)^{-1}X^T\mathbf{y}\). Dies ist die Normalengleichung. ∎
Zwischenstand: Iteration tritt an die Stelle der Inversion. Offen bleibt allerdings die Frage, warum das Verfahren konvergiert und was seine Geschwindigkeit bestimmt. Dies wird im nächsten Kapitel über Eigenwerte geklärt.
Kapitel 4
Was Matrizen wirklich tun
Eine Matrix ist eine lineare Abbildung: Vektor rein, Vektor raus. Die meisten Vektoren werden dabei gestreckt und gedreht. Es gibt jedoch ausgezeichnete Vektoren, deren Richtung erhalten bleibt; sie werden nur skaliert:
Ein solches \(\mathbf{v}\) heißt Eigenvektor, das zugehörige \(\lambda\) sein Eigenwert. Die Matrix beschreibt anschaulich: Sie streckt den Eigenvektor um den Faktor \(\lambda\) und lässt seine Richtung unberührt.
Ein Beispiel von Hand
Nehmen wir \(A = \bigl(\begin{smallmatrix} 2 & 1 \\ 0 & 3 \end{smallmatrix}\bigr)\). Das charakteristische Polynom: \(\det(A - \lambda I) = (2-\lambda)(3-\lambda) = 0\). Eigenwerte: \(\lambda_1 = 2\), \(\lambda_2 = 3\).
Eigenvektoren: Für \(\lambda_1 = 2\) löse \((A-2I)\mathbf{v} = 0\): \(\mathbf{v}_1 = (1, 0)^T\). Für \(\lambda_2 = 3\): \(\mathbf{v}_2 = (1, 1)^T\). Probe: \(A \cdot (1,1)^T = (3,3)^T = 3 \cdot (1,1)^T\). ✓
Probier es selbst
Ziehe den weißen Vektor. Wenn er in Richtung eines Eigenvektors zeigt, ändert \(A\mathbf{v}\) nur die Länge – nicht die Richtung. Wähle verschiedene Matrizen, um Streckung, Scherung und Drehung zu vergleichen.
Was bedeutet das konkret?
Wird die Matrix 10-mal hintereinander angewandt, ergibt sich \(\lambda_1^{10} = 2^{10} = 1024\) gegenüber \(\lambda_2^{10} = 3^{10} = 59\,049\). Der größere Eigenwert dominiert. Nach 20 Anwendungen: \(2^{20} \approx 10^6\), \(3^{20} \approx 3{,}5 \times 10^9\). Die Richtung von \(\mathbf{v}_2\) überlagert dann alles andere.
Warum Eigenwerte über Konvergenz entscheiden
Die Schlüsselformel lautet \(A^n = V\,\Lambda^n\,V^{-1}\), wobei \(\Lambda\) die Diagonalmatrix der Eigenwerte ist. Sie beschreibt anschaulich, dass die Wirkung wiederholter Matrix-Anwendung vollständig durch die Potenzen der Eigenwerte bestimmt wird:
• Für \(|\lambda| < 1\) gilt \(\lambda^n \to 0\); die zugehörige Komponente verschwindet.
• Für \(|\lambda| = 1\) bleibt sie konstant.
• Für \(|\lambda| > 1\) folgt \(\lambda^n \to \infty\); die Komponente explodiert.
Probier es selbst
Schiebe \(|\lambda|\) und beobachte, was mit \(\lambda^n\) passiert. Unter 1: die Kurve fällt gegen Null. Über 1: sie explodiert. Genau an der Grenze 1: nichts passiert.
Die Verbindung zu Kapitel 3 ergibt sich daraus: Ist \(\mu\) ein Eigenwert von \(X^TX\), so ist \((1 - \mu)\) ein Eigenwert von \((I - X^TX)\). Die Iteration konvergiert genau dann, wenn \(|1 - \mu| < 1\) für alle \(\mu\) gilt. Die Eigenwerte von \(X^TX\) bestimmen damit sowohl, ob die Iteration konvergiert, als auch, wie schnell sie das tut.
Symmetrische Matrizen – und \(X^TX\) ist stets symmetrisch – besitzen ausschließlich reelle Eigenwerte und orthogonale Eigenvektoren. Große Eigenwerte entsprechen Richtungen mit hoher Varianz (Signal); kleine Eigenwerte entsprechen Richtungen mit geringer Varianz (Rauschen).
Zwischenstand: Die Eigenwerte einer Matrix charakterisieren das Verhalten unter wiederholter Anwendung – Konvergenz, Divergenz, und insbesondere die Trennung von Signal und Rauschen. Letzteres führt zum nächsten Kapitel.
Kapitel 5
Früh aufhören lohnt sich
Ein anschauliches Bild: Ein Schüler lernt 20 Übungsaufgaben auswendig – jede Zahl, jedes Komma, jede Formulierung. In der Übung erreicht er 20 von 20 Punkten. In der Prüfung, in der neue Aufgaben gestellt werden, erreicht er nur 8 von 20. Er hat die konkreten Aufgaben gelernt, nicht die zugrundeliegenden Prinzipien. Dieses Phänomen heißt Overfitting oder Überanpassung.
Was das mit unserer Iteration zu tun hat
Nach \(n\) Iterationen wird die Komponente entlang des \(i\)-ten Eigenvektors um den Faktor \(1 - (1-\mu_i)^n\) beibehalten. Was diese Formel anschaulich bedeutet, zeigt sich in den Zahlen:
| \(\mu_i\) | \((1-\mu_i)\) | nach 3 Iter. | nach 10 | nach 100 |
|---|---|---|---|---|
| 1,0 (stark) | 0,0 | 100% | 100% | 100% |
| 0,5 | 0,5 | 87,5% | 99,9% | ≈100% |
| 0,1 | 0,9 | 27,1% | 65,1% | ≈100% |
| 0,01 (schwach) | 0,99 | 3,0% | 9,6% | 63,4% |
Große Eigenwerte (starkes Signal) erreichen bereits nach wenigen Iterationen nahezu 100 %. Kleine Eigenwerte (typisch Rauschen) brauchen Hunderte von Iterationen. Daraus folgt: Wenige Iterationen lernen nur das Signal; viele auch das Rauschen. Frühes Aufhören wirkt damit als natürlicher Rauschfilter.
Die Äquivalenz zu Ridge Regression
Die klassische Lösung gegen Overfitting – Ridge Regression – addiert \(\lambda\) zur Diagonale: \(\mathbf{c}_\lambda = (X^TX + \lambda I)^{-1}X^T\mathbf{y}\). Der Filterfaktor ist \(\mu_i/(\mu_i + \lambda)\).
Vergleiche mit unserem Iterationsfaktor \(1 - (1-\mu_i)^n\). Beide haben dieselbe Wirkung: große \(\mu_i\) durchlassen, kleine dämpfen. Als Faustregel (für moderate \(n\) und kleine \(\mu_i\)):
Mehr Iterationen entsprechen kleinerem \(\lambda\) und damit schwächerer Regularisierung; weniger Iterationen entsprechen größerem \(\lambda\) und damit glatterer Lösung. (Die Beziehung ist nicht exakt; die Filterkurven beider Verfahren haben jedoch für praktische Zwecke dieselbe Form.)
Selbst nachvollziehen. Durch Schieben von \(n\) wird sichtbar: Die Filterkurve der Iteration (links, cyan) und jene von Ridge Regression (rechts, gelb) haben dieselbe Form. Frühes Aufhören und Ridge Regression bewirken in der Filterung dasselbe.
In Lehrbüchern wird Ridge Regression üblicherweise als künstlicher Strafterm eingeführt: man „bestraft“ große Koeffizienten. Aus der hier entwickelten Perspektive ergibt sich eine andere Lesart: Regularisierung ist nichts anderes als das frühzeitige Beenden eines Korrekturprozesses. Der Ridge-Parameter ist keine Hilfsvariable, sondern der geschlossene Ausdruck derselben Spektralfilterung, die durch Iteration bei endlicher Schrittzahl entsteht.
Zwischenstand: \(\lambda \approx 1/n\). Frühes Aufhören und Ridge Regression sind im Wesentlichen gleichwertige Mechanismen; beide trennen Signal von Rauschen, gesteuert durch die Eigenwerte von \(X^TX\).
Diese Äquivalenz lässt sich als formaler Satz schreiben. In der Sprache der Spektralfilter besagt Theorem 1 im Kalle-Paper (Leonhardt, 2026):
Theorem 1 (Early Stopping ≈ Ridge Regression). Der iterative Filter \(f_i^{\mathrm{iter}}(n) = 1 - (1-\mu_i)^n\) und der Ridge-Filter \(f_i^{\mathrm{ridge}}(\lambda) = \mu_i/(\mu_i + \lambda)\) erzeugen bei \(\lambda \approx 1/n\) übereinstimmende Spektralfilterungen. Beide trennen Signal (große \(\mu_i\)) von Rauschen (kleine \(\mu_i\)) über das Eigenwertspektrum.
Konkrete Zahlen für \(\lambda = 0{,}01\) und \(n = 10\) (Tabelle 1 des Papers):
| Eigenwert \(\mu_i\) | Ridge \(\mu_i/(\mu_i+\lambda)\) | Iter. \(1-(1-\mu_i)^{10}\) | Interpretation |
|---|---|---|---|
| 1,0 | 0,999 | 1,000 | Signal: durchgelassen |
| 0,1 | 0,909 | 0,651 | Moderat: teilweise gefiltert |
| 0,01 | 0,500 | 0,096 | Rauschen: stark unterdrückt |
| 0,001 | 0,091 | 0,010 | Rauschen: nahezu eliminiert |
Die beiden Spalten sind zwar nicht identisch, ihre Rangordnung über das Spektrum jedoch schon: Große Eigenwerte werden in beiden Fällen weitgehend durchgelassen, kleine in beiden Fällen stark unterdrückt. Frühes Aufhören ist somit implizite Regularisierung; der Ridge-Parameter ist deren geschlossener Ausdruck.
Kapitel 6
Der Kernel-Trick
Bisher war alles linear: Geraden, Ebenen, Polynome. Reale Daten folgen jedoch häufig nicht-linearen Strukturen – Parabeln, Sinuskurven, chaotischen Mustern. Im Folgenden wird gezeigt, dass dies keine neue Theorie erfordert, sondern lediglich eine neue Lesart der bisherigen Konstruktion.
Features erweitern
Sind die Daten nicht linear in \(x\), so lassen sie sich linear in einem Vektor von Funktionen \((1, x, x^2, \ldots)\) machen. Die Designmatrix wird durch eine Feature-Abbildung \(\phi(x)\) erweitert. Im neuen Raum ist das Problem linear, und die gesamte bisher entwickelte Maschinerie greift unverändert.
Die entscheidende Beobachtung
In der Iteration tritt durchweg \(X^TX\) auf – die Matrix der paarweisen Skalarprodukte. Der Eintrag \((i,j)\) lautet \(\langle \phi(x_i), \phi(x_j) \rangle\). Die einzelnen Features \(\phi(x_i)\) werden somit nie explizit benötigt; nur ihre Skalarprodukte.
Eine Kernel-Funktion \(k(x_i, x_j) = \langle \phi(x_i), \phi(x_j) \rangle\) liefert dieses Skalarprodukt direkt, ohne Umweg über die Features. Konkretes Beispiel: \((1 + xz)^2 = 1 + 2xz + x^2z^2\) ist das Skalarprodukt der Features \(\phi = (1, \sqrt{2}\,x, x^2)\) – eine einzige Multiplikation genügt anstelle von drei Komponenten-Multiplikationen.
Der Gauß-Kernel \(k(x,z) = \exp(-\|x-z\|^2/(2\sigma^2))\) besitzt einen unendlich-dimensionalen Feature-Raum. Die Kernel-Matrix \(K\) bleibt jedoch endlich: \(n \times n\) für \(n\) Datenpunkte.
Der Übergang
Ersetzt man \(X^TX\) durch \(K\), so ändert sich algorithmisch nichts: Die Iteration lautet \(\hat{\mathbf{y}}_{n+1} = \hat{\mathbf{y}}_n + K(\mathbf{y} - \hat{\mathbf{y}}_n)\), die Residuen folgen \(\mathbf{r}_n = (I - K)^n \mathbf{y}\), Konvergenz wird durch die Eigenwerte von \(K\) bestimmt, und Regularisierung über \(\lambda \approx 1/n\) gesteuert. Es ist derselbe Algorithmus, formuliert über einem höherdimensionalen Feature-Raum.
Probier es selbst
Bewege die Regler für \(\lambda\) (Regularisierung) und \(\sigma\) (Kernel-Breite). Bei kleinem \(\lambda\) passt sich die Kurve eng an die Daten an. Bei großem \(\lambda\) wird sie zu glatt. Finde den Sweet Spot.
Die Vorhersage für einen neuen Punkt \(x_*\) lautet \(f(x_*) = \sum_{i=1}^n \alpha_i\,k(x_i, x_*)\) und beschreibt anschaulich eine gewichtete Abstimmung aller Trainingspunkte über ihre Ähnlichkeit zu \(x_*\).
Bemerkenswert daran: Es existieren keine abstrakten Parameter, keine Gewichtsmatrizen, keine versteckten Schichten. Die Trainingsdaten selbst sind das Modell. Die Funktion \(f\) ist vollständig durch die Datenpunkte und ihre Kernel-Ähnlichkeiten bestimmt. Dies ist die Aussage des Representer Theorems; sie gilt für jede Verlustfunktion, nicht nur für die quadratische.
Zwischenstand: \(X^TX \to K\). Algorithmisch ändert sich nichts, der Feature-Raum wird allerdings unendlich-dimensional, und die Ausdruckskraft entsprechend universell.
Kapitel 7
Die große Vereinigung
Licht, das von Wänden springt
Ein anschauliches Beispiel aus der Computergrafik: ein weißer Raum mit einer tiefroten Wand und einer Deckenlampe. Sichtbar ist nicht nur die direkte Beleuchtung; daneben entsteht ein sanfter rötlicher Schimmer auf dem weißen Boden neben der roten Wand. Dieses als Color Bleeding bezeichnete Phänomen beschreibt anschaulich, wie Licht von der roten Wand zum Boden springt und Farbe mitträgt.
In der Computergrafik wird der gegenseitige Lichtaustausch zwischen Flächen durch die Radiosity-Gleichung beschrieben: \(\mathbf{B} = \mathbf{E} + \rho F \mathbf{B}\). Dabei ist \(\mathbf{E}\) das Eigenleuchten der Lampen, \(\rho\) die Reflektivität der Flächen, und \(F\) die Formfaktormatrix, die kodiert, welche Flächen sich gegenseitig „sehen“. Die Lösung lautet:
Dies ist exakt dieselbe Neumann-Reihe wie in Kapitel 3, nur mit anderer physikalischer Bedeutung der einzelnen Terme:
• \(k = 0\): direktes Licht, die Lampe strahlt.
• \(k = 1\): erster Bounce, das Licht wird einmal von einer Wand reflektiert.
• \(k = 2\): zweiter Bounce, das reflektierte Licht wird erneut reflektiert.
• In typischen Szenen sind nach drei bis fünf Bounces bereits etwa 99 % der Energie absorbiert.
Licht, das zwischen Wänden springt, ist iterative Fehlerkorrektur – angewendet auf Energie statt auf Daten.
Die Matrix \(\rho F\) ist substochastisch (Zeilen summieren sich zu weniger als 1, weil Energie absorbiert wird). Füge eine zusätzliche „Absorber-Dimension“ hinzu – und die Matrix wird stochastisch (alle Zeilen = 1). Eine stochastische Matrix ist eine Markov-Kette. Deren Gleichgewicht ist der dominante Eigenvektor – der Eigenvektor zum Eigenwert 1.
Der Surfer, der nie aufhört
Ein großes Eigenwertproblem für eine stochastische Matrix wird in jeder Google-Suche gelöst. Modelliert wird ein zufälliger Surfer, der auf einer Webseite startet und bei jedem Schritt zufällig einem der ausgehenden Links folgt. Die zugehörige Übergangsmatrix \(M\) beschreibt diesen Random Walk. Konkretes Beispiel mit 4 Seiten:
A hat 2 Links (→ B, → D), also gibt A je \(1/2\) seiner „Stimme“ an B und D. Die Google-Matrix ergänzt einen Dämpfungsfaktor: mit \(d \approx 0{,}85\) folgt der Surfer einem Link; mit \(1-d \approx 0{,}15\) teleportiert er zu einer zufälligen Seite:
Die Power Iteration \(\mathbf{r}^{(k+1)} = G\,\mathbf{r}^{(k)}\) konvergiert zum dominanten Eigenvektor – dem PageRank. Für unser Mini-Web: B hat den höchsten Rang (34%), gefolgt von A (28%), D (24%), C (14%). Google berechnet das für Milliarden Webseiten in ~50 Iterationen.
Warum die Matrix stochastisch zu machen nicht nur elegant ist – sondern ein Performance-Trick
In der Absorber-Konstruktion steckt ein algorithmischer Gewinn, den man explizit benennen sollte. Vergleiche die zwei Wege, dieselbe Gleichung zu lösen:
Naiver Ansatz (Neumann-Summation): Berechne die Reihe $\mathbf{x} = \mathbf{b} + T\mathbf{b} + T^2\mathbf{b} + T^3\mathbf{b} + \ldots$ Term für Term. Jeder Schritt erfordert eine Matrix-Vektor-Multiplikation und eine Vektor-Addition, plus einen Akkumulator für die laufende Summe. Du kannst die vorherigen Terme nicht verwerfen – die gesamte Partialsumme muss bis zum Stopp-Zeitpunkt gehalten werden.
Stochastischer Ansatz (Power-Iteration): Sobald $T$ über die Absorber-Konstruktion zu einer stochastischen Matrix $P$ gemacht wurde, kollabiert die Iteration zu $\mathbf{x}_{k+1} = P\mathbf{x}_k$. Kein Akkumulator. Keine Additionen zwischen den Schritten. Nur eine Matrix-Vektor-Multiplikation, Vektor überschreiben, wiederholen. Der Speicherbedarf bleibt bei $O(n)$ über die gesamte Laufzeit.
Warum spielt das in der Praxis eine Rolle?
• GPU-Eignung: Matrix-Vektor-Produkte sind genau die Operation, für die GPUs optimiert sind. Power-Iteration ist im Wesentlichen ein BLAS-gemv-Aufruf pro Schritt. Neumann-Summation verschachtelt gemv mit axpy (Vektor-Addition) und verlangt, dass der Akkumulator resident bleibt – das erhöht die Speicherbandbreiten-Last.
• Kein Zwischenspeicher: Bei Neumann muss die Partialsumme $\sum_{k=0}^{N-1} T^k\mathbf{b}$ separat vom nächsten Term $T^N\mathbf{b}$ gehalten werden. Bei Power-Iteration existiert nur der aktuelle Vektor. Bei einem Web-Graphen mit einer Milliarde Seiten macht das den Unterschied.
• Konvergenz über Spectral Gap: Die Konvergenzrate der Power-Iteration ist direkt $|\lambda_2(P)|^k$. Googles Damping-Faktor $d$ ist genau so konstruiert, dass eine nutzbare Spektrallücke garantiert wird: $|\lambda_2(G)| \leq d = 0{,}85$. Das ist kein Detail – es ist der numerische Stabilisator.
Diese Einsicht überträgt sich auf Kernel Ridge Regression: der Ridge-Parameter \(\lambda\) übernimmt die Rolle des Damping-Faktors \(d\). Beide stabilisieren die Iteration, indem sie eine Spektrallücke erzeugen. Die algorithmische Konsequenz – dass man \((K + \lambda I)\boldsymbol{\alpha} = \mathbf{y}\) über GPU-freundliche Matrix-Vektor-Iteration lösen kann statt über einen \(O(D^3)\)-Direct-Solve – ist Gegenstand von Kalle v2, in dem wir die Absorber-Konstruktion formal für KRR herleiten und Direct Solve gegen Block Preconditioned Conjugate Gradient (Block-PCG) benchmarken.
Die überraschende Einsicht aus den Benchmarks. Für Kalle's reale Trainingsmatrix (\(D = 6144\), \(V = 2977\)) zeigt Tabelle 4 des Papers:
| Solver | Zeit | Iterationen | Rel. Err vs. Direct |
|---|---|---|---|
| Direct (NumPy/LAPACK, Float64) | 2097 ms | 1 | Referenz |
| Block-PCG (NumPy, Float64) | 6731 ms | 14 | \(4{,}3 \times 10^{-7}\) |
| Block-PCG (PyTorch CPU, Float32) | 1704 ms | 11 | \(1{,}0 \times 10^{-5}\) |
| Block-PCG (PyTorch MPS / Apple GPU) | 1622 ms | 11 | \(1{,}0 \times 10^{-5}\) |
Man erwartet, dass Block-PCG nur bei großem \(D\) lohnt – die naive Intuition ist, dass Krylov-Methoden erst ab vielen tausend Dimensionen schneller werden als Gauß-Elimination. Tatsächlich liegt der Kipp-Punkt deutlich früher: mit einem modernen BLAS-Backend ist Block-PCG schon bei \(D = 6144\) rund 4× schneller als Direct Solve. Der zusätzliche Gewinn durch die Apple-GPU beträgt gerade einmal 5 % – denn bei dieser Größe deckt die Host-zu-Device-Transfer-Latenz noch nicht ihre Compute-Ersparnis. Die GPU wird erst ab \(D \geq 20\,000\) dominant, und dort ist der \(O(D^3)\)-Direct-Solve ohnehin nicht mehr praktikabel.
Die Lehre: der Hebel für Skalierung in KRR ist nicht in erster Linie die Hardware, sondern die algorithmische Umformulierung – die Absorber-Konstruktion, die das System in eine Form bringt, die moderne Matrixbibliotheken effizient lösen können. Das ist dieselbe intellektuelle Bewegung, die Google vor 25 Jahren mit PageRank gemacht hat: nicht durch größere Server, sondern durch die Umformulierung in ein Eigenwertproblem einer stochastischen Matrix.
Damit zeigt sich: Regression (Kapitel 3), Radiosity, und PageRank sind in der mathematischen Struktur dasselbe Problem. Dreimal iterative Matrix-Vektor-Multiplikation, gesteuert durch Eigenwerte; dreimal Neumann-Reihe; dreimal Konvergenz zum dominanten Eigenvektor.
So mächtig wie ein Gehirn
Es bleibt eine letzte Verbindung: Wie mächtig ist Kernel Ridge Regression eigentlich?
Das Representer Theorem (Kimeldorf & Wahba, 1970) sagt: Die optimale KRR-Lösung hat immer die Form \(f^*(x) = \sum_{i=1}^n \alpha_i\,k(x_i, x)\). Endlich viele Koeffizienten, egal wie hochdimensional der Kernel-Raum ist.
Das Universal Approximation Theorem (Cybenko, 1989) sagt: Ein neuronales Netz mit einer versteckten Schicht kann jede stetige Funktion beliebig genau approximieren.
Und der Gauß-Kernel ist universell (Micchelli et al., 2006): KRR mit Gauß-Kernel kann ebenfalls jede stetige Funktion beliebig genau approximieren.
Beide Funktionenklassen – neuronale Netze und KRR – sind dicht in \(C(K)\). Sie sind gleich mächtig. Und der Neural Tangent Kernel (Jacot et al., 2018) zeigt: Im idealisierten Grenzfall unendlicher Breite und geeigneter Initialisierung wird ein neuronales Netz zu KRR. Die Verbindung ist nicht metaphorisch – sie ist ein Theorem (wenn auch ein Grenzfall-Theorem).
Natürlich ist moderne KI – Transformer, Attention, stochastisches Gradientenverfahren in nicht-konvexen Landschaften – mehr als ein Eigenwertproblem. Aber die Eigenwertstruktur ist der mathematische Kern, der sich durch alle Schichten zieht. Sie erklärt nicht alles – aber sie erklärt, warum das Fundament hält.
Regression: \(\hat{\mathbf{y}} = (X^TX + \lambda I)^{-1}X^T\mathbf{y}\) — Eigenwerte steuern die Konvergenz
Radiosity: \(\mathbf{B} = (I - \rho F)^{-1}\mathbf{E}\) — Eigenwerte steuern die Lichtverteilung
PageRank: \(\mathbf{r} = \text{dom. Eigenvektor von } G\) — Eigenwert 1 bestimmt die Rangfolge
KRR ≡ NN: beide dicht in \(C(K)\) — Eigenwerte des NTK steuern das Lernen
Probier es selbst: KRR Chat
Wir haben ein didaktisches Proof-of-Concept gebaut, das exakt nach diesem Prinzip funktioniert – Kernel Ridge Regression mit Random Fourier Features. Kein neuronales Netz. Nur Eigenwerte und Matrixmultiplikation. Es ist kein Konkurrent zu ChatGPT, sondern macht die mathematische Struktur hinter Sprachmodellen sichtbar – auf einem Maßstab, den man noch verstehen kann.
Unter der Haube: Wie der KRR-Chatbot funktioniert
Der KRR-Chat ist nicht simuliert – er ist ein echtes, funktionierendes Sprachmodell, allerdings bewusst minimal gehalten, um die mathematische Struktur sichtbar zu machen. Er ist ein vollständiges Sprachmodell, das die gesamte Kette dieses Beitrags in einer einzigen Anwendung vereint: Wort-Hashing (\(\phi(x)\)), Random Fourier Features (Kernel-Approximation), Ridge Regression (Regularisierung) – alles in drei JavaScript-Funktionen.
Die Antwort des Modells wird farblich markiert: Grün für Wörter die exakt so in den Trainingsdaten vorkommen (Memorisierung), Orange für Wörter die das Modell neu kombiniert (Generalisierung). Typischerweise sind 60–80% grün – das zeigt ehrlich: ein KRR-Modell mit 505 Wörtern memoriert hauptsächlich, generalisiert aber an den Nahtstellen zwischen gelernten Sätzen.
Deep Dive: Der vollständige Quellcode, die Float64-Lektion und was das Modell kann (und was nicht)
Epilog
K = K: Das Glasperlenspiel
Am Anfang dieses Beitrags stand eine Formel aus der Quantenmechanik; am Ende steht eine Formel aus dem maschinellen Lernen. Nebeneinander gestellt:
Propagator (Quantenmechanik):
\(\displaystyle K(B,A,t) = \sum_n \psi_n(B)\;\psi_n^*(A)\;e^{-i\,E_n\,t/\hbar}\)
Kernel (Machine Learning – Mercer-Zerlegung):
\(\displaystyle K(x,x') = \sum_n \lambda_n\;\psi_n(x)\;\psi_n(x')\)
Derselbe Buchstabe \(K\), dasselbe Muster: eine Summe über Eigenfunktionen \(\psi_n\), gewichtet durch Eigenwerte. Der Propagator beschreibt, wie ein Quantenteilchen von A nach B propagiert. Der Kernel beschreibt anschaulich, wie ähnlich zwei Datenpunkte zueinander sind. Zwei verschiedene Anwendungskontexte, dieselbe mathematische Struktur. (Die \(\psi_n\) im Kernel-Fall sind die Mercer-Eigenfunktionen; sie sind verwandt mit, aber verschieden von der Feature-Abbildung \(\phi\) aus Kapitel 6.)
Im Quantenbeitrag wurde gezeigt, wie stehende Wellen zu diskreten Energieniveaus führen – den Tönen, die ein Quantensystem hervorbringen kann. Im vorliegenden Beitrag wurde gezeigt, wie die Eigenwerte einer Kernel-Matrix darüber entscheiden, was ein Algorithmus lernt und was er vernachlässigt. Es ist dasselbe Prinzip in unterschiedlicher Kulisse.
Schrödinger gab seiner Arbeit von 1926 den Titel Quantisierung als Eigenwertproblem. Eine analoge Formulierung für das gegenwärtige Feld wäre: Intelligenz als Eigenwertproblem.
Die Natur ist reicher als jede einzelne Beschreibung. Mehrere Beschreibungen können aber denselben mathematischen Kern teilen; Eigenwerte sind ein solcher Kern. Wie weit dieses Prinzip über die künstliche Intelligenz hinaus trägt – von der schwingenden Stimmgabel bis zur Gesichtserkennung – entwickelt der Beitrag Das Eigenprinzip.
Verwandter Beitrag: Im Deepfakes-Post wird PCA — mathematisch eine Eigenwertzerlegung der Kovarianzmatrix — zur Bildkomprimierung eingesetzt. Und die Latent-Space-Arithmetik der Autoencoder ist im Grunde ein nichtlineares Pendant zur Hauptkomponentenanalyse.
Auch passend: Im Quantencomputer-Post sind Quantengatter unitäre Matrizen — ihre Eigenwerte liegen alle auf dem Einheitskreis. Daher sind sie reversibel: sie strecken nichts, sie rotieren nur.
Häufige Fragen
Was sind Eigenwerte einfach erklärt?
Ein Eigenwert beschreibt, wie stark eine bestimmte Richtung unter einer Transformation gestreckt oder gestaucht wird. Die stabilen Richtungen sind die Eigenvektoren, der Faktor ist der Eigenwert. Eigenwerte tauchen überall auf: in der Quantenmechanik, bei PageRank, in neuronalen Netzen.
Warum braucht man Eigenwerte in der künstlichen Intelligenz?
Die Kernel-Matrix in Machine-Learning-Verfahren hat Eigenwerte. Große Eigenwerte entsprechen Signal, kleine Eigenwerte entsprechen Rauschen. Regularisierung dämpft die kleinen Eigenwerte – das ist der mathematische Kern der Überanpassungsvermeidung.
Was hat PageRank mit Eigenwerten zu tun?
PageRank berechnet die Wichtigkeit von Webseiten als den dominanten Eigenvektor der Link-Matrix des Internets. Die Webseite mit dem größten Eigenwert-Anteil ist die wichtigste.
Weiterlesen
Verwandte Beiträge auf ki-mathias.de:
- Emergenz in Sprachmodellen — Phasenübergänge, Grokking, Ising
- KRR Chat: Unter der Haube — RAG, Float64, Drei-Farben-Code