Acht Ideen der linearen Algebra hinter Embeddings, LoRA und PCA
Vektoren, Matrizen, Eigenvektoren, Kosinus-Ähnlichkeit, Normen, SVD und Rang, erklärt an kleinen Beispielen mit Hauspreisen und an den KI-Techniken, die darauf aufbauen.
Um mit KI zu bauen, brauchst du kein Mathestudium, aber ein bisschen lineare Algebra lüftet viele Geheimnisse. Modelle können Text, Bilder oder Ton nicht direkt lesen. Alles wird zuerst in Zahlen verwandelt. Danach braucht es noch eine Möglichkeit, die Zahlen so anzuordnen, dass ein Modell Dinge vergleichen, Muster erkennen und Vorhersagen treffen kann, und genau diesen Werkzeugkasten liefert die lineare Algebra. Hier sind acht Konzepte, die du kennen solltest, bevor du dich KI-Engineer nennst.
1. Vektoren halten die Daten
Ein Vektor ist eine geordnete Liste von Zahlen, die etwas beschreibt. Ein Haus könnte so aussehen:
[300000, 150, 3]
Diese drei Einträge stehen für den Preis (300.000 $), die Größe (150 Quadratmeter) und die Zahl der Schlafzimmer (3).
Warum ist das wichtig? Sobald Dinge Vektoren sind, kann ein Modell sie vergleichen. Zwei Häuser mit ähnlichem Preis, ähnlicher Größe und Schlafzimmerzahl haben ähnliche Vektoren, und so erkennt das Modell, dass sie verwandt sind.
2. Matrizen stapeln viele Vektoren
Stell dir eine Matrix als Raster aus Zeilen und Spalten vor. Ein Vektor beschreibt ein Objekt, eine Matrix fasst eine ganze Menge davon:
[ 300000 150 3 ] → House 1
[ 450000 200 4 ] → House 2
[ 250000 120 2 ] → House 3
Jede Zeile ist ein Haus und jede Spalte ein Merkmal: Preis, Größe, Schlafzimmer. Mit Matrizen kann ein System viele Daten auf einmal verarbeiten statt Vektor für Vektor, was Berechnungen auf großen Datensätzen effizient hält.
3. Eigenwerte und Eigenvektoren zeigen, was zählt
Ein Eigenvektor ist ein besonderer Vektor, der nach einer Transformation immer noch entlang derselben Geraden zeigt. Er kann länger oder kürzer werden, schwenkt aber nicht in eine neue Richtung. Sein Eigenwert sagt dir, wie stark er gestreckt oder gestaucht wurde. Die Beziehung wird so geschrieben:
Av=λv
A = the transformation
v = the eigenvector (special direction)
λ = the eigenvalue (how much it stretches or shrinks)
Um das zu verstehen, denk daran, dass ein Vektor eine Richtung und einen Betrag hat, also seine Länge.
●
↗
/
/
/
/
●
Der Betrag ist die Länge des Pfeils, die Richtung ist, wohin er zeigt. Multipliziert man einen Vektor mit einer Matrix, wird er transformiert; das Ergebnis kann gestreckt, geschrumpft, gedreht oder auf andere Weise verändert sein. Ein winziges Beispiel:
[3].[2 0] = [6]
[4] [0 2] [4]
Der Vektor [3, 4] hat den Betrag 5 und zeigt in einem Winkel von etwa 53,13 Grad. Nach der Multiplikation wird er zu [6, 8], mit Betrag 10 und denselben 53,13 Grad. Er ist doppelt so lang geworden, ohne sich zu drehen, also ist er ein Eigenvektor mit Eigenwert 2.
Das ist wichtig, weil die Eigenanalyse die dominanten Muster oder Richtungen in Daten freilegt. Die Hauptkomponentenanalyse (PCA) stützt sich darauf, um Datensätze zu verkleinern und dabei die wichtigen Informationen zu behalten.
4. Skalarprodukt und Kosinus-Ähnlichkeit messen Ähnlichkeit
Nimm zwei Vektoren gleicher Länge, kombiniere sie, und das Skalarprodukt liefert eine einzige Zahl:
A · B = (a₁ × b₁) + (a₂ × b₂) + ... + (aₙ × bₙ)
Wende es auf zwei Häuser an:
House 1 (A) = [300000, 150, 3]
House 2 (B) = [450000, 200, 4]
A · B = (300000 × 450000) + (150 × 200) + (3 × 4)
= 135,000,030,012
Dieses Ergebnis hat zwei Schwächen.
Die erste ist die Skala. Preiswerte sind riesig im Vergleich zu Schlafzimmern, also dominiert der Preis die Antwort, und die Zahl der Schlafzimmer fällt kaum ins Gewicht. Die Abhilfe ist Feature-Skalierung: Bring jedes Merkmal in einen ähnlichen Bereich, etwa 0 bis 1, wobei 0 der kleinste beobachtete Wert ist und 1 der größte.
// All three features are on roughly the same scale (0–1),
// so price doesn't dominate simply because its original number is much larger.
A' = [0.60,0.50,0.60]
B' = [0.90,0.67,0.80]
Die zweite ist die Länge. Bei einem rohen Skalarprodukt erzielt ein längerer Vektor einen höheren Wert, nur weil er länger ist. Es gibt zwei Lösungen: die Vektoren zuerst normalisieren und dann das Skalarprodukt bilden, oder das Skalarprodukt berechnen und mit der Kosinus-Ähnlichkeit abschließen. Zum Normalisieren braucht man die L2-Norm, die geradlinige Länge des Vektors:
# L2 Norm (Euclidean Distance) → Straight-line distance from the origin.
# It measures the overall length of a vector.
||x||₂ = √(x₁² + x₂²+...+xₙ²)
||A'||₂ = √(0.60²+0.50²+0.60²) ≈ 0.985
A'' = [0.60/0.985, 0.50/0.985 ,0.60/0.985] ≈ [0.609, 0.508, 0.609]
||B'||₂ = √(0.90²+0.67²+0.80²) ≈ 1.378
B'' = [0.90/1.378, 0.67/1.378, 0.80/1.378] ≈[0.653, 0.486, 0.581]
A''⋅B'' = (0.609)(0.653)+(0.508)(0.486)+(0.609)(0.581)
≈ 0.398+0.247+0.354
≈0.999
Und die Kosinus-Berechnung selbst:
# cosine similarity
A' · B' = (0.60×0.90)+(0.50×0.67)+(0.60×0.80)
≈ 1.355
||A'||₂ ≈ 0.985
||B′||₂ ≈ 1.378
Cosine Similarity = (A' · B')/||A'||||B'||
≈ 1.355/(0.985*1.378)
≈ 0.999
Eine gängige Deutung des Werts:
- 1,0 bedeutet dieselbe Richtung, maximale Ähnlichkeit
- 0,9 bis 1,0 ist extrem ähnlich
- 0,7 bis 0,9 ist recht ähnlich
- 0,4 bis 0,7 ist mäßig ähnlich
- über 0 und unter 0,4 ist schwache Ähnlichkeit
- 0 bedeutet senkrecht, keine gemeinsame Richtung
- unter 0 bedeutet zunehmend entgegengesetzt
- -1,0 bedeutet genau entgegengesetzt, maximale Unähnlichkeit
Behandle diese Bereiche nicht als Gesetz. Was als ähnlich gilt, hängt von deinen Daten und deinem Modell ab. Die Idee ist wichtig, weil Ähnlichkeitssuche, Empfehlungssysteme und neuronale Netze alle davon abhängen, wie stark zwei Zahlenmengen zusammenhängen.
5. Normen messen Größe und Fehler
Vektoren können für Häuser, Nutzer, Produkte, Bilder oder Wörter stehen. Eine Norm liefert eine einzige Zahl für die Größe eines Vektors, sodass sich Vektoren nach ihrem Betrag vergleichen lassen. Drei gängige Normen:
Die L1-Norm, auch Manhattan-Distanz genannt, addiert die Beträge aller Einträge und ergibt so die Gesamtgröße.
||x||₁ = ∣x₁∣+∣x₂∣+⋯+∣xₙ∣
Die L2-Norm oder euklidische Distanz ist der geradlinige Abstand vom Ursprung und erfasst damit die Gesamtlänge.
||x||₂ = √(x₁² + x₂²+...+xₙ²)
Die L-unendlich-Norm betrachtet nur den größten Betrag.
||x||∞ = max(∣x₁∣,∣x₂∣, ⋯ , ∣xₙ∣)
Für „wie groß“ stell dir den Vektor als Pfeil vor: Seine Norm ist die Länge des Pfeils, und ein längerer Vektor hat eine größere Norm. Genau darauf beruht der Normalisierungsschritt oben. Normalisieren skaliert einen Vektor auf Länge 1, sodass Vergleiche von der Richtung abhängen und nicht von der Größe.
Für „wie falsch“ betrachte die Lücke zwischen Vorhersage und Wahrheit als Fehlervektor. Seine Norm sagt dir, wie weit du danebenlagst.
yactual=[10,20]
ypredicted=[8,23]
Error = [10,20]−[8,23]=[2,−3]
||error||₁=∣2∣+∣−3∣=5
So the prediction has a total absolute error of 5.
Eine größere Fehlernorm bedeutet eine schlechtere Vorhersage. Ein Wert von 5 ist für sich weder gut noch schlecht; man beurteilt ihn im Vergleich zu anderen Vorhersagen oder einer Baseline.
In der Praxis tauchen Normen an drei Stellen auf:
- Regularisierung (L1 und L2) bekämpft Overfitting, indem sie große Gewichte in der Verlustfunktion bestraft.
- Verlustfunktionen nutzen sie: Der mittlere absolute Fehler baut auf der L1-Norm auf, der mittlere quadratische Fehler auf der quadrierten L2-Norm.
- Gradient Clipping nutzt die L2-Norm, um explodierende Gradienten beim Training tiefer Netze im Zaum zu halten.
6. Matrixmultiplikation kombiniert Informationen
Eine Matrix speichert nicht nur Zahlen. Auf einen Eingabevektor angewendet, erzeugt sie einen Ausgabevektor, indem sie ihn skaliert, dreht, spiegelt oder anderweitig transformiert. Matrixmultiplikation mischt Zahlen aus beiden Matrizen zu neuen. Angenommen, drei Häuser werden jeweils durch drei skalierte Merkmale beschrieben:
Houses =
[ 0.50 0.50 0.50 ]
[ 0.75 1.00 1.00 ]
[ 0.25 0.00 0.00 ]
Nehmen wir nun an, das Modell hat gelernt, dass Merkmale unterschiedlich wichtig sind, mit Preis bei 0,5, Größe bei 0,3 und Schlafzimmern bei 0,2:
Weights =
[ 0.5 ]
[ 0.3 ]
[ 0.2 ]
Multipliziere die Hausdaten mit den Gewichten:
Houses × Weights → Scores
Das Ergebnis:
House 1 → 0.500
House 2 → 0.875
House 3 → 0.125
Ein höherer Wert bedeutet mehr gewichteten Wert unter der von dir festgelegten Wichtigkeit. Matrixmultiplikation ist überall in maschinellem Lernen, neuronalen Netzen, Datenverarbeitung und Computergrafik, weil sie Daten effizient kombiniert und transformiert.
7. SVD vereinfacht Matrizen
Viele Matrizen sind nicht quadratisch, und nicht quadratische Matrizen haben keine Eigenvektoren. Die Singulärwertzerlegung funktioniert mit jeder Matrix beliebiger Form, indem sie sie in drei einfachere zerlegt:
A=UΣVᵀ
Lies es so: U dreht die Ausgabe, Sigma skaliert die wichtigen Richtungen, und V transponiert dreht die Eingabe. Mit SVD kannst du große Matrizen verkleinern und dabei ihren wichtigsten Inhalt behalten. Sie wird für Dimensionsreduktion, Kompression, Empfehlungssysteme und Low-Rank-Methoden wie LoRA verwendet. Behalte nur die stärksten Komponenten, und Daten wie Modelle werden kleiner, schneller und günstiger.
8. Der Rang erklärt Low-Rank-Tricks
Der Rang sagt dir, wie viel einzigartige Information eine Matrix enthält. Eine Matrix kann viele Zeilen und Spalten haben und sich trotzdem wiederholen, was ihr einen niedrigen Rang gibt. Sieh dir diese an:
[1 2]
[2 4]
Die zweite Zeile ist einfach das Doppelte der ersten, also ist nur eine Zeile unabhängig, und der Rang ist 1.
Deshalb sind Low-Rank-Methoden so beliebt. Statt jede Zahl zu speichern, stellst du den wesentlichen Inhalt mit weniger Zahlen dar und sparst Speicher und Rechenleistung, während das meiste Wichtige erhalten bleibt.
Wie alles zusammenpasst
Gemeinsam ermöglichen dir diese acht Ideen, Daten zu codieren, umzuformen, ihre Größe abzuschätzen, zu prüfen, wie ähnlich sich zwei Dinge sind, und sie auf etwas Kleineres einzudampfen. Versuch nicht, Formeln auswendig zu lernen. Ziel ist zu wissen, was jedes Konzept tut, warum es nützlich ist und wo es in echten Systemen vorkommt. Diese Intuition macht die Tools, Bibliotheken und Modelle, die du nutzt, weit weniger undurchsichtig. Gibt es ein neuntes Konzept, das du auf die Liste setzen würdest?