Lineare Algebra für maschinelles Lernen: Vektoren, Matrizen und warum KI vor allem multipliziert
Vektoren, Skalarprodukt und Kosinus-Ähnlichkeit, Matrizen als Transformationen, die Determinante, eine Schicht eines neuronalen Netzes als Wx + b und Eigenvektoren — mit Abbildungen, die Code berechnet.
Serie KI-Grundlagen Teil 9 von 52
- Landkarte der künstlichen Intelligenz: was was ist und wie alles zusammenpasst
- Eine kurze Geschichte der künstlichen Intelligenz: von Turing bis zu Sprachmodellen
- Daten, Modell, Training, Inferenz: die Grundbegriffe an einem einzigen Beispiel
- Mathematische Notation lesen: Symbole, Indizes, Summen und Quantoren
- Mengen und Relationen: der Baukasten, aus dem Definitionen in der KI bestehen
- Funktionen und Abbildungen: warum jedes KI-Modell eine Funktion ist
- Logik und Beweise: die Regeln, nach denen KI schließt
- Graphen und Bäume: die Struktur, auf der Suche und neuronale Netze stehen
- Lineare Algebra für maschinelles Lernen: Vektoren, Matrizen und warum KI vor allem multipliziert
- Ableitungen, Gradient und Kettenregel: wie ein Modell herausfindet, in welche Richtung es lernen soll
- Gradientenabstieg: wie ein Modell lernt
- Was ist Wahrscheinlichkeit: vom Würfelwurf zu den Kolmogorow-Axiomen
- Bedingte Wahrscheinlichkeit und der Satz von Bayes: wie du deine Einschätzung änderst, wenn du etwas Neues erfährst
- Zufallsvariable und Verteilungsfunktion: eine Funktion, die alles über eine Verteilung verrät
- Dichtefunktion und Wahrscheinlichkeitsfunktion: warum eine stetige Zufallsvariable in einem Punkt die Wahrscheinlichkeit null hat
- Erwartungswert, Varianz und Kovarianz: wo eine Verteilung liegt, wie breit sie ist und was womit zusammenhängt
- Überblick über Wahrscheinlichkeitsverteilungen: Bernoulli-, Binomial-, Poisson-, Gleich-, Normal- und Exponentialverteilung
- Gesetz der großen Zahlen und zentraler Grenzwertsatz: Warum sich Durchschnitte so vorhersagbar verhalten
- Statistik und Parameterschätzung: Maximum Likelihood, MAP und Konfidenzintervalle
- Informationstheorie: Entropie, Kreuzentropie und KL-Divergenz — woher Verlustfunktionen kommen
- Zustandsraumsuche: BFS, DFS, UCS und A* mit Animationen
- Spiele und Gegner: Minimax, Alpha-Beta-Suche und Monte Carlo Tree Search
- Constraint Satisfaction: Backtracking, Constraint-Propagierung und AC-3 an Sudoku und einer Karte tschechischer Regionen
- Logik und wissensbasierte Systeme: Vorwärts- und Rückwärtsverkettung, Resolution und Expertensysteme
- Planung: STRIPS, die Blockwelt, Heuristiken aus Relaxierung und Planung in KI-Agenten
- Lokale Suche und simulierte Abkühlung: ein Handlungsreisender durch die tschechischen Regionalhauptstädte
- Genetische Algorithmen: Population, Kreuzung, Mutation und Selektion am Rucksack für die Wanderung
- Evolutionsstrategien und genetische Programmierung: von der 1/5-Erfolgsregel zum Keplerschen Gesetz
- Ameisenkolonieoptimierung: wie eine Pheromonspur einen kurzen Weg findet
- Partikelschwarmoptimierung: Trägheit, eigene Erfahrung und die Erfahrung des Schwarms
- Neuroevolution: Evolution der Gewichte und der Gestalt neuronaler Netze und der Algorithmus NEAT
- Fuzzy-Mengen und Zugehörigkeitsfunktionen: wie man „etwas warm“ aufschreibt
- Fuzzy-Logik und Wahrscheinlichkeit: warum „etwas warm“ nicht „wahrscheinlich warm“ bedeutet
- Fuzzy-Logik: t-Normen, Implikationen und WENN–DANN-Regeln
- Fuzzy-Regelung: Mamdani und Sugeno vom Ventilator bis zum Pendel auf dem Wagen
- Fuzzy-Clustering: der Algorithmus fuzzy c-means und Punkte zwischen den Clustern
- Neuro-Fuzzy-Systeme (ANFIS): Fuzzy-Regeln, die aus Daten lernen
- Markow-Ketten: Übergangsmatrix, stationäre Verteilung und PageRank
- Hidden-Markov-Modelle: der Viterbi-Algorithmus und das unehrliche Kasino
- Bayessche Netze: warum das Gras nass ist und was das für den Rasensprenger bedeutet
- Der Kalman-Filter: wie man aus ungenauen Messungen schätzt, wo ein Auto ist und wie schnell es fährt
- Arten des maschinellen Lernens: überwacht, unüberwacht, halbüberwacht und mehr
- Prompts, Kontext und RAG: wie man einem Modell die richtigen Informationen gibt
- Variational Autoencoder (VAE): neue Bilder aus einem stetigen latenten Raum
- Generative Adversarial Networks (GAN): der Fälscher gegen den Detektiv
- Diffusionsmodelle: wie aus reinem Rauschen ein Bild wird
- Markow-Entscheidungsprozesse: Zustände, Aktionen, Belohnungen und Bellman-Gleichungen
- Q-Learning und DQN: den Wert von Aktionen lernen, von der Tabelle bis zum neuronalen Netz
- Policy Gradient und PPO: die Strategie direkt lernen
- Wie ein KI-Agent funktioniert: ein Sprachmodell in einer Schleife mit Werkzeugen
- Programmieren mit KI-Agenten: Auftrag, Tests und Kontrolle
- Bewertung und Sicherheit von KI-Systemen: wie man misst und wie man überwacht
Der ganze Lehrplan der Serie 52 von 83 Themen fertig
- Was ein Vektor und das Skalarprodukt sind — und wie man daraus die Ähnlichkeit von Wörtern berechnet.
- Warum eine Matrix eine Transformation des Raums ist, was die Determinante sagt und warum Matrixmultiplikation Verkettung ist.
- Dass eine Schicht eines neuronalen Netzes Wx + b mit einer Nichtlinearität ist und was Eigenvektoren sind, auf denen PCA beruht.
Vorher gut zu wissen: Mathematische Notation lesen: Symbole, Indizes, Summen und Quantoren, Funktionen und Abbildungen: warum jedes KI-Modell eine Funktion ist
Wenn du ein beliebiges Modell der künstlichen Intelligenz bis auf den Kern zerlegst, findest du vor allem eine Operation: die Matrixmultiplikation. Für ein Modell ist ein Bild eine Tabelle von Zahlen, ein Wort eine Liste von Zahlen, eine Schicht eines neuronalen Netzes eine Matrix — und Grafikkarten sind deshalb so wichtig, weil sie Matrizen schneller multiplizieren können als alles andere. Lineare Algebra ist die Sprache, in der KI rechnet.
Wir gehen nicht in die ganze Breite des Universitätsstoffs. Wir behandeln nur das, was du in den nächsten Teilen brauchen wirst — und bei jedem Begriff zeigen wir, wo er in der KI steckt.
1. Vektoren: Pfeil und Zahlenliste zugleich
Definition — Vektor und Operationen damit
Sei n ∈ ℕ, n ≥ 1. Die Menge aller geordneten n-Tupel reeller Zahlen ist
ℝn = {(u1, …, un) : ui ∈ ℝ für i = 1, …, n}.
Ihre Elemente u = (u1, …, un) ∈ ℝn nennen wir Vektoren und die Zahlen ui ∈ ℝ ihre Komponenten. Zwei Vektoren u, v ∈ ℝn sind genau dann gleich, wenn ui = vi für alle i = 1, …, n.
Seien u, v ∈ ℝn und c ∈ ℝ. Die Summe von Vektoren und das Vielfache eines Vektors mit einer Zahl sind die komponentenweise definierten Vektoren aus ℝn:
u + v = (u1 + v1, …, un + vn), cu = (cu1, …, cun).
Die Differenz ist u − v = u + (−1)v, und der Nullvektor ist 0 = (0, …, 0) ∈ ℝn.
Seien k ∈ ℕ, k ≥ 1, v1, …, vk ∈ ℝn Vektoren (der Index nummeriert hier die Vektoren, nicht die Komponenten) und c1, …, ck ∈ ℝ. Die Linearkombination der Vektoren v1, …, vk mit den Koeffizienten c1, …, ck ist der Vektor
c1v1 + … + ckvk = ∑j=1k cjvj ∈ ℝn.
Vektoren addieren und mit einer Zahl multiplizieren heißt also, dasselbe mit jeder Komponente einzeln zu tun.
Ein Vektor hat zwei Gesichter. Für den Computer ist er eine Liste von Zahlen — Preis, Fläche und Alter einer Wohnung. Für die Vorstellung ist er ein Pfeil vom Ursprung zu einem Punkt. Vektoren addieren heißt, Pfeile aneinanderzuhängen: Wer zuerst entlang u und dann entlang v geht, landet bei u + v.
Beispiel — Summe, Vielfaches und Linearkombination
Für u = (3, 1) und v = (1, 2) aus der Abbildung:
u + v = (3 + 1, 1 + 2) = (4, 3)
2u = (2 · 3, 2 · 1) = (6, 2)
2u − v = (6 − 1, 2 − 2) = (5, 0)
Die letzte Zeile ist eine Linearkombination mit den Koeffizienten c1 = 2, c2 = −1. Jeder Vektor der Ebene lässt sich aus u und v als c1u + c2v zusammensetzen, weil sie nicht in dieselbe Richtung zeigen — wie man die Koeffizienten findet, zeigt der Abschnitt über Gleichungssysteme.
In der KI ist fast alles ein Vektor. Ein Schwarz-Weiß-Bild mit 28 × 28 Pixeln ist ein Vektor im ℝ784. Ein Wort in einem Sprachmodell ist ein Vektor mit Hunderten bis Tausenden Komponenten — eine sogenannte Einbettung (Embedding). Und die Parameter des ganzen Modells sind ein einziger riesiger Vektor θ.
2. Skalarprodukt, Länge und Ähnlichkeit
Definition — Skalarprodukt, Norm, Winkel
Seien n ≥ 1 und u, v ∈ ℝn. Das Skalarprodukt der Vektoren u und v ist die reelle Zahl
u · v = ∑i=1n uivi = u1v1 + … + unvn,
geschrieben auch u⊤v (siehe die Transposition unten).
Die Länge (euklidische Norm) eines Vektors u ∈ ℝn ist die nichtnegative Zahl
‖u‖ = √u · u = √u12 + … + un2.
Sei außerdem u ≠ 0 und v ≠ 0. Der Winkel zwischen den Vektoren u und v ist die eindeutige Zahl φ ∈ [0, π], für die
cos φ = u · v/‖u‖ ‖v‖;
ein solches φ existiert, weil der Bruch in [−1, 1] liegt (Cauchy-Schwarz-Ungleichung unten). Die Vektoren u, v ∈ ℝn sind senkrecht (orthogonal) genau dann, wenn u · v = 0.
Das Skalarprodukt multipliziert die zueinander gehörenden Zahlen und addiert sie. Das Ergebnis sagt, wie sehr zwei Vektoren „in dieselbe Richtung zeigen“: positiv und groß — ähnlich, null — senkrecht, negativ — entgegengesetzt.
Für u = (3, 1) und v = (1, 2) ist u · v = 3 · 1 + 1 · 2 = 5, ‖u‖ = √10 ≈ 3,16, ‖v‖ = √5 ≈ 2,24, also ‖u‖ ‖v‖ = √50, und cos φ = 5/√50 ≈ 0,71 — die Vektoren schließen einen Winkel von 45° ein (Farben nach der Formel unten).
cos φ = u · v/‖u‖ ‖v‖
- cos φ
- Kosinus-Ähnlichkeit — eine Zahl von −1 bis 1, die nur von der Richtung abhängt: 1 gleiche Richtung, 0 senkrecht, −1 entgegengesetzt
- u · v
- Skalarprodukt — wächst, wenn große Komponenten mit gleichen Vorzeichen zusammentreffen; das ist der eigentliche Kern der „Übereinstimmung“
- ‖u‖ ‖v‖
- Produkt der Längen — durch das Teilen entfernen wir den Einfluss der Größe; ohne es sähe ein langer Vektor (ein langes Dokument) allem ähnlich
Satz — Cauchy-Schwarz-Ungleichung
Seien n ≥ 1 und u, v ∈ ℝn. Dann gilt
|u · v| ≤ ‖u‖ ‖v‖.
Für u, v ≠ 0 ist also −1 ≤ u · v/‖u‖ ‖v‖ ≤ 1, die Kosinus-Ähnlichkeit fällt nie aus dem Intervall [−1, 1] heraus, und der Winkel φ ist wohldefiniert.
Beweis. Für v = 0 sind beide Seiten null. Andernfalls ist ‖v‖ > 0, und für jedes t ∈ ℝ gilt 0 ≤ ‖u − tv‖2 = ‖u‖2 − 2t(u · v) + t2‖v‖2. Ein quadratisches Polynom in t, das nie negativ ist, hat eine Diskriminante ≤ 0: 4(u · v)2 − 4‖u‖2‖v‖2 ≤ 0, d. h. (u · v)2 ≤ ‖u‖2‖v‖2. Durch Wurzelziehen (beide Seiten sind nichtnegativ) erhalten wir die Behauptung. ∎
Der Kosinus des Winkels ist in der KI als Kosinus-Ähnlichkeit berühmt. Stell dir eine Spielzeug-Einbettung von Wörtern mit drei Komponenten „Tier, Haustier, hat Räder“ vor: Katze (0,9; 0,8; 0), Hund (0,85; 0,9; 0,05), Auto (0; 0,3; 0,95). Die Ähnlichkeit von Katze und Hund ergibt 0,995, die von Katze und Auto nur 0,20. Genau so finden Suchmaschinen „ähnliche“ Dokumente und Sprachmodelle „ähnliche“ Wörter — nur in Hunderten von Dimensionen statt in drei.
Beispiel — Kosinus-Ähnlichkeit Schritt für Schritt
Katze · Hund = 0,9 · 0,85 + 0,8 · 0,9 + 0 · 0,05 = 0,765 + 0,72 + 0 = 1,485
‖Katze‖ = √0,81 + 0,64 + 0 = √1,45 ≈ 1,204, ‖Hund‖ = √0,7225 + 0,81 + 0,0025 = √1,535 ≈ 1,239
cos = 1,485/1,204 · 1,239 ≈ 1,485/1,492 ≈ 0,995
Katze · Auto = 0 + 0,8 · 0,3 + 0 = 0,24, ‖Auto‖ = √0,9925 ≈ 0,996
cos = 0,24/1,204 · 0,996 ≈ 0,24/1,200 ≈ 0,20
Die Farben entsprechen den Gliedern der Formel für die Kosinus-Ähnlichkeit oben: Skalarprodukt, Produkt der Längen, Ergebnis. Katze und Auto haben nur die Komponente „Haustier“ gemeinsam (0,8 · 0,3), und selbst die ist beim Auto klein.
3. Matrizen und die Multiplikation mit einem Vektor
Definition — Matrix und Matrix-Vektor-Produkt
Seien m, n ∈ ℕ, m, n ≥ 1. Eine Matrix vom Typ m × n ist eine Sammlung von m · n reellen Zahlen Aij ∈ ℝ, i = 1, …, m, j = 1, …, n, angeordnet in einer Tabelle mit m Zeilen und n Spalten; Aij ist der Eintrag in der i-ten Zeile und j-ten Spalte. Formal ist sie eine Abbildung A : {1, …, m} × {1, …, n} → ℝ, (i, j) ↦ Aij. Die Menge aller solchen Matrizen bezeichnen wir mit ℝm×n. Im Text schreiben wir eine Matrix zeilenweise, die Zeilen durch Semikolon getrennt: [2 1; 1 3] hat die erste Zeile (2, 1) und die zweite (1, 3).
Seien A ∈ ℝm×n und x ∈ ℝn. Das Matrix-Vektor-Produkt ist der Vektor Ax ∈ ℝm mit den Komponenten
(Ax)i = ∑j=1n Aijxj, i = 1, …, m.
Die i-te Komponente des Ergebnisses ist also das Skalarprodukt der i-ten Zeile (Ai1, …, Ain) mit dem Vektor x. Das Produkt ist genau dann definiert, wenn x so viele Komponenten hat, wie A Spalten hat.
Eine Matrix ist eine Maschine für Vektoren: Du steckst einen Vektor hinein und bekommst einen anderen heraus. Jede Zeile der Matrix bildet mit der Eingabe ein Skalarprodukt, und das Ergebnis ist eine Komponente der Ausgabe.
A = [2 1; 1 3], x = (1, 2)
Ax = (2 · 1 + 1 · 2, 1 · 1 + 3 · 2) = (4, 7)
(Farben nach der Formel unten)
(Ax)i = ∑j=1n Aij xj
- (Ax)i
- die i-te Komponente der Ausgabe — jede wird einzeln aus einer Zeile berechnet, deshalb hat die Ausgabe so viele Komponenten, wie die Matrix Zeilen hat
- ∑j=1n
- Summe über die Spalten — sammelt die Beiträge aller Eingaben; deshalb muss x genau so viele Komponenten haben, wie A Spalten hat
- Aij
- Gewicht — wie viel die j-te Komponente der Eingabe zur i-ten Komponente der Ausgabe beiträgt (im Netz ist das das Gewicht einer Verbindung)
- xj
- die j-te Komponente der Eingabe — das, was gewichtet wird
Definition — Transposition und Einheitsmatrix
Seien m, n ≥ 1 und A ∈ ℝm×n. Die transponierte Matrix zu A ist die Matrix A⊤ ∈ ℝn×m mit den Einträgen
(A⊤)ij = Aji, i = 1, …, n, j = 1, …, m.
Sie entsteht also durch Vertauschen von Zeilen und Spalten. Einen Vektor u ∈ ℝn identifizieren wir mit einer Matrix vom Typ n × 1 (einer Spalte); dann ist u⊤ ∈ ℝ1×n eine Zeile, und für u, v ∈ ℝn ist u⊤v = u · v (Zeile mal Spalte ergibt das Skalarprodukt).
Eine quadratische Matrix A ∈ ℝn×n ist symmetrisch genau dann, wenn A⊤ = A, d. h. Aij = Aji für alle i, j = 1, …, n (etwa [2 1; 1 3]).
Sei n ≥ 1. Die Einheitsmatrix I = In ∈ ℝn×n ist die Matrix mit den Einträgen
Iij = 1 für i = j, Iij = 0 für i ≠ j (i, j = 1, …, n),
d. h. Einsen auf der Diagonale und sonst Nullen. Für jedes x ∈ ℝn gilt (Ix)i = ∑j Iijxj = xi, also Ix = x — sie ist die Transformation „tu nichts“.
Beispiel: [0,5 −1 2; 1 0 −0,5]⊤ = [0,5 1; −1 0; 2 −0,5].
4. Die Matrix als Transformation des Raums
Am besten „siehst“ du eine Matrix, wenn du anschaust, was sie mit der Ebene macht. Jede 2 × 2-Matrix überführt ein Gitter in ein anderes Gitter — Geraden bleiben Geraden und der Ursprung bleibt an seinem Platz. Deshalb nennt man das eine lineare Abbildung. Grau ist das ursprüngliche Gitter, grün das Gitter nach der Transformation, orange das Bild des Einheitsquadrats:
Definition — lineare Abbildung; Satz über die Spalten der Matrix
Seien m, n ≥ 1. Eine Abbildung f : ℝn → ℝm ist linear genau dann, wenn sie beide Bedingungen erfüllt:
- (Additivität) für alle u, v ∈ ℝn gilt f(u + v) = f(u) + f(v);
- (Homogenität) für alle c ∈ ℝ und u ∈ ℝn gilt f(cu) = c f(u).
Aus Bedingung 2 für c = 0 folgt f(0) = f(0 · 0) = 0 · f(0) = 0 — der Ursprung bleibt an seinem Platz.
Satz. Sei f : ℝn → ℝm linear und für j = 1, …, n sei ej ∈ ℝn der j-te Einheitsvektor (an der j-ten Stelle 1, sonst 0). Dann gibt es genau eine Matrix A ∈ ℝm×n, sodass f(x) = Ax für alle x ∈ ℝn, und ihre j-te Spalte ist f(ej). Umgekehrt ist jede Abbildung x ↦ Ax linear.
Beweis: Jedes x ∈ ℝn ist x = x1e1 + … + xnen, also folgt aus der Linearität f(x) = x1f(e1) + … + xnf(en), und das ist genau Ax für die Matrix mit den Spalten f(ej). Eindeutigkeit: Aej ist die j-te Spalte von A, also sind die Spalten durch die Werte f(ej) bestimmt. Die Linearität von x ↦ Ax folgt direkt aus der komponentenweisen Definition des Produkts. ∎
Beispiel: Die Drehung um 90° schickt e1 = (1, 0) auf (0, 1) und e2 = (0, 1) auf (−1, 0). Diese beiden Vektoren als Spalten nebeneinandergestellt ergeben R = [0 −1; 1 0].
[0 -1; 1 0] · Fläche × 1
[1,5 0; 0 1,5] · Fläche × 2,25
[1 1; 0 1] · Fläche × 1
[1 0; 0 0] · Fläche × 0
Definition — Determinante einer 2 × 2-Matrix
Seien a, b, c, d ∈ ℝ und A = [a b; c d] ∈ ℝ2×2. Die Determinante der Matrix A ist die reelle Zahl
det A = ad − bc.
Geometrische Bedeutung (eine Aussage, nicht Teil der Definition): Die Abbildung x ↦ Ax schickt das Einheitsquadrat [0, 1] × [0, 1] auf ein Parallelogramm mit den Seiten (a, c) und (b, d) und der Fläche |det A|; allgemein jede Figur mit der Fläche S auf eine Figur mit der Fläche |det A| · S. |det A| ist also der Faktor der Flächenänderung.
Ist det A < 0, spiegelt die Transformation die Ebene zusätzlich (sie vertauscht „im Uhrzeigersinn“ und „gegen den Uhrzeigersinn“); ist det A = 0, drückt sie die Ebene auf eine Gerade oder einen Punkt platt.
Beispiel — die Determinanten der vier Matrizen aus der Abbildung
Drehung: det [0 −1; 1 0] = 0 · 0 − (−1) · 1 = 1
Streckung: det [1,5 0; 0 1,5] = 1,5 · 1,5 − 0 · 0 = 2,25
Scherung: det [1 1; 0 1] = 1 · 1 − 1 · 0 = 1
Projektion: det [1 0; 0 0] = 1 · 0 − 0 · 0 = 0
Die Determinante sagt, um welchen Faktor die Matrix Flächen vergrößert. Drehung und Scherung ändern die Fläche nicht (det = 1), die Streckung 1,5× vergrößert sie 2,25-fach, und die Projektion drückt die Ebene auf eine Gerade platt — Fläche und Determinante sind null, und was einmal plattgedrückt ist, lässt sich nicht mehr zurückziehen.
5. Matrixmultiplikation ist Verkettung
Definition — Matrixprodukt
Seien m, k, n ≥ 1, A ∈ ℝm×k und B ∈ ℝk×n (die Anzahl der Spalten von A ist gleich der Anzahl der Zeilen von B). Das Matrixprodukt von A und B ist die Matrix AB ∈ ℝm×n mit den Einträgen
(AB)ij = ∑l=1k AilBlj, i = 1, …, m, j = 1, …, n.
Der Eintrag (i, j) ist also das Skalarprodukt der i-ten Zeile von A mit der j-ten Spalte von B. Für dieses Produkt gilt:
- (Verkettung) für jedes x ∈ ℝn ist (AB)x = A(Bx) — das Matrixprodukt ist die Verkettung der Abbildungen, zuerst B, dann A;
- (Assoziativität) für jedes C ∈ ℝn×p, p ≥ 1, ist (AB)C = A(BC);
- (Nichtkommutativität) im Allgemeinen ist AB ≠ BA: Es gibt A, B ∈ ℝ2×2 mit AB ≠ BA (Beispiel R, Z unten).
Zwei Matrizen zu multiplizieren heißt, zwei Maschinen hintereinander zu einer zu verbinden. Und genau wie bei Funktionen kommt es auf die Reihenfolge an: erst drehen und dann scheren ergibt etwas anderes als erst scheren und dann drehen.
R = [0 −1; 1 0] (Drehung), Z = [1 1; 0 1] (Scherung)
RZ = [0 −1; 1 1], ZR = [1 −1; 1 0]
Beispiel — das Produkt RZ Eintrag für Eintrag
Der Eintrag (i, j) ist das Skalarprodukt der i-ten Zeile von R mit der j-ten Spalte von Z:
(1, 1): (0, −1) · (1, 0) = 0 · 1 + (−1) · 0 = 0 (1, 2): (0, −1) · (1, 1) = 0 − 1 = −1
(2, 1): (1, 0) · (1, 0) = 1 (2, 2): (1, 0) · (1, 1) = 1
Probe am Vektor x = (1, 2): Zx = (3, 2), R(Zx) = (−2, 3), und ebenso (RZ)x = (0 − 2, 1 + 2) = (−2, 3).
Direkt nach der Definition berechnet man das Produkt mit drei verschachtelten Schleifen:
def soucin(A, B): # A ist m × k, B ist k × n
m, k, n = len(A), len(B), len(B[0])
C = [[0] * n for _ in range(m)]
for i in range(m): # jede Zeile des Ergebnisses
for j in range(n): # jede Spalte des Ergebnisses
for l in range(k): # Skalarprodukt einer Zeile von A mit einer Spalte von B
C[i][j] += A[i][l] * B[l][j]
return C
Das sind m · k · n Multiplikationen: für zwei 1000 × 1000-Matrizen eine Milliarde. Alle sind aber voneinander unabhängig, sodass eine Grafikkarte Tausende davon gleichzeitig ausführen kann.
6. Eine Schicht eines neuronalen Netzes ist eine Matrix
Jetzt lässt sich genau sagen, was eine Schicht eines neuronalen Netzes macht:
y = ReLU(W x + b)
- y ∈ ℝm
- die Ausgabe der Schicht — m Zahlen, die die nächste Schicht als ihre Eingabe bekommt
- ReLU
- max(0, ·) komponentenweise — der einzige nichtlineare Teil; ohne ihn würde das ganze Netz zu einer einzigen Matrix verschmelzen (siehe den Satz unten)
- W ∈ ℝm×n
- Gewichte — jede Zeile ist ein Neuron, das die Eingabe auf seine eigene Weise gewichtet; das lernt das Netz
- x ∈ ℝn
- Eingabe — Daten oder die Ausgabe der vorherigen Schicht
- b ∈ ℝm
- Bias — Wx ist für x = 0 immer null; der Bias erlaubt dem Neuron, auch anderswo als im Ursprung zu „schalten“
Die Matrix W (Gewichte) und der Vektor b (Bias) sind die Parameter, die das Netz lernt. Für W = [0,5 −1 2; 1 0 −0,5], die Eingabe x = (1, 2, 3) und b = (0, −1) (Farben nach der Formel oben):
Wx = (0,5 · 1 + (−1) · 2 + 2 · 3, 1 · 1 + 0 · 2 + (−0,5) · 3) = (0,5 − 2 + 6, 1 + 0 − 1,5) = (4,5; −0,5)
Wx + b = (4,5 + 0; −0,5 + (−1)) = (4,5; −1,5), ReLU → y = (4,5; 0)
Die Schicht hat drei Zahlen in zwei verwandelt und die negative auf null gesetzt. Ein tiefes Netz ist eine Folge solcher Schritte hintereinander — und ohne nichtlineare Funktion (ReLU, Sigmoid) würde das Ganze zu einer einzigen Matrix zusammenfallen, weil die Verkettung linearer Abbildungen wieder eine lineare Abbildung ist. Wenn das Netz mehrere Eingaben gleichzeitig verarbeitet (einen Batch), fasst es sie zu einer Matrix X zusammen, und der ganze Batch wird mit einer einzigen Multiplikation WX berechnet — und genau das ist die Operation, die Grafikkarten am schnellsten beherrschen.
Satz — zwei lineare Schichten ohne Nichtlinearität sind eine
Seien n, k, m ≥ 1, W1 ∈ ℝk×n, b1 ∈ ℝk, W2 ∈ ℝm×k und b2 ∈ ℝm. Setzen wir W = W2W1 ∈ ℝm×n und b = W2b1 + b2 ∈ ℝm. Dann gilt für jedes x ∈ ℝn
W2(W1x + b1) + b2 = (W2W1)x + (W2b1 + b2) = Wx + b.
Beweis: Ausmultiplizieren der Klammer (Distributivität) und Assoziativität der Matrixmultiplikation. ∎ Durch Induktion gilt dasselbe für eine beliebige Anzahl von Schichten — hundert lineare Schichten können genau dasselbe wie eine.
7. Die inverse Matrix und Gleichungssysteme
Definition — inverse Matrix
Seien n ≥ 1, A ∈ ℝn×n und I ∈ ℝn×n die Einheitsmatrix. Die Matrix A ist regulär (invertierbar) genau dann, wenn
∃ B ∈ ℝn×n : BA = AB = I.
Eine solche Matrix B gibt es höchstens einmal (ist auch B′A = AB′ = I, dann ist B′ = B′I = B′AB = IB = B); sie heißt die inverse Matrix zu A und wird mit A−1 bezeichnet. Eine Matrix, die nicht regulär ist, heißt singulär.
Satz. Sei A = [a b; c d] ∈ ℝ2×2. Dann ist A genau dann regulär, wenn det A = ad − bc ≠ 0, und in diesem Fall gilt
A−1 = 1/ad − bc · [d −b; −c a].
(Für allgemeines n gilt dasselbe Kriterium det A ≠ 0 mit der Determinante einer n × n-Matrix, die dieser Teil nicht einführt.) Ist A ∈ ℝn×n regulär und y ∈ ℝn, hat das System Ax = y genau eine Lösung x = A−1y.
Die inverse Matrix macht die Transformation rückgängig. Das geht nur, wenn die Matrix den Raum nicht plattgedrückt hat — und genau darüber wacht die Determinante.
A−1 = 1/ad − bc · [d −b; −c a]
- A−1
- Inverse — die Matrix, die das Ergebnis Ax wieder auf x zurückführt
- 1/ad − bc
- eins geteilt durch die Determinante, stellt die Fläche wieder her — A hat Flächen um den Faktor |det A| vergrößert, die Inverse muss sie ebenso verkleinern; bei det A = 0 wird durch null geteilt, und deshalb existiert keine Inverse
- [d −b; −c a]
- vertauschte Diagonale und umgedrehte Vorzeichen — genau die Matrix, deren Produkt mit A gleich (ad − bc) · I ist; es bleibt nur noch zu teilen
Beispiel — die Inverse von [2 1; 1 3] und die Lösung eines Systems
det A = 2 · 3 − 1 · 1 = 5
A−1 = 1/5 · [3 −1; −1 2] = [0,6 −0,2; −0,2 0,4] (Farben nach der Formel oben)
System 2x1 + x2 = 4, x1 + 3x2 = 7:
x = A−1(4, 7) = (0,6 · 4 − 0,2 · 7, −0,2 · 4 + 0,4 · 7) = (2,4 − 1,4, −0,8 + 2,8) = (1, 2)
Probe: 2 · 1 + 2 = 4 und 1 + 3 · 2 = 7. Große Systeme löst man in der Praxis nicht über die Inverse, sondern mit dem Gauß-Verfahren — es ist schneller und numerisch stabiler; das Ergebnis ist dasselbe.
Für A = [2 1; 1 3] ist det A = 2 · 3 − 1 · 1 = 5 und A−1 = [0,6 −0,2; −0,2 0,4]. Aus dem bekannten Ergebnis (4, 7) erhalten wir so die Eingabe (1, 2) zurück. So wird auch die lineare Regression in geschlossener Form berechnet — die Methode der kleinsten Quadrate führt auf das System (X⊤X)θ = X⊤y.
8. Eigenwerte und Eigenvektoren
Definition — Eigenwert und Eigenvektor
Seien n ≥ 1 und A ∈ ℝn×n eine quadratische Matrix. Eine Zahl λ ∈ ℝ ist ein Eigenwert der Matrix A genau dann, wenn
∃ v ∈ ℝn, v ≠ 0 : Av = λv.
Jeder solche vom Nullvektor verschiedene Vektor v ist ein Eigenvektor der Matrix A zum Eigenwert λ. (Allgemein lässt man auch komplexe λ ∈ ℂ und v ∈ ℂn zu; in diesem Teil genügen reelle.)
Es gilt: λ ist genau dann ein Eigenwert von A, wenn det(A − λI) = 0 (für n = 2 mit der oben definierten Determinante). Spektralsatz: Ist A symmetrisch, so hat sie n reelle Eigenwerte (mit Vielfachheit gezählt), und es gibt n paarweise senkrechte Eigenvektoren der Länge 1.
Die meisten Vektoren dreht eine Matrix woandershin. Eigenvektoren sind die Ausnahmen: Die Matrix streckt oder staucht sie nur, die Richtung bleibt. Der Eigenwert sagt, um welchen Faktor. Sie sind die „natürlichen Achsen“ der Transformation.
Die Eigenwerte der Matrix [2 1; 1 3] sind 5 ± √5/2, also ≈ 3,62 und ≈ 1,38. Die Ellipse ist in Richtung des ersten Eigenvektors 3,62-fach gestreckt, in Richtung des zweiten 1,38-fach. Die grauen Pfeile in allgemeiner Richtung drehen sich bei der Transformation, die orangen Achsen nicht. Darauf beruht die Hauptkomponentenanalyse (PCA): Die Eigenvektoren der Kovarianzmatrix der Daten zeigen die Richtungen, in denen sich die Daten am stärksten unterscheiden, und die Eigenwerte, wie stark.
Beispiel — Eigenwerte und Eigenvektoren von [2 1; 1 3] von Hand
Die Gleichung Av = λv ist dasselbe wie (A − λI)v = 0. Eine von null verschiedene Lösung existiert nur dann, wenn A − λI die Ebene plattdrückt, also wenn ihre Determinante null ist:
det [2 − λ 1; 1 3 − λ] = (2 − λ)(3 − λ) − 1 = λ2 − 5λ + 5 = 0
λ = 5 ± √25 − 20/2 = 5 ± √5/2 ≈ 3,618 und 1,382
für λ1: Die erste Zeile (2 − λ1)v1 + v2 = 0 ergibt v = (1; λ1 − 2) ≈ (1; 1,618), nach dem Normieren ≈ (0,526; 0,851)
Probe: Die Summe der Eigenwerte 3,618 + 1,382 = 5 ist die Summe der Diagonale (2 + 3), und ihr Produkt 5 ist die Determinante.
Für große Matrizen gibt es keine Formel für die Nullstellen, und niemand berechnet für sie die Determinante. Den größten Eigenwert und seinen Vektor findet die einfache Potenzmethode (Vektoriteration): Sie multipliziert einen Vektor wiederholt mit der Matrix und normiert ihn auf die Länge 1. Die Komponente in Richtung des stärksten Eigenvektors wächst am schnellsten und überwächst so nach und nach die übrigen:
def mocninna_metoda(A, v, kroky):
v = v / norma(v)
for _ in range(kroky):
Av = A @ v
odhad = v @ Av # Rayleigh-Quotient v·Av: Schätzung des Eigenwerts
v = Av / norma(Av) # auf Länge 1 normieren, damit die Zahlen nicht davonlaufen
return odhad, v
| Schritt | Schätzung λ1 | v nach dem Schritt |
|---|---|---|
| 1 | 2 | (0,894; 0,447) |
| 2 | 3 | (0,707; 0,707) |
| 3 | 3,5 | (0,600; 0,800) |
| 4 | 3,6 | (0,555; 0,832) |
| 5 | 3,615 | (0,537; 0,844) |
| 6 | 3,618 | (0,530; 0,848) |
Start bei v = (1, 0) und die Matrix [2 1; 1 3]: Nach sechs Schritten ist die Schätzung 3,618, und der Vektor nähert sich (0,526; 0,851). Die Abweichung des Vektors verkleinert sich in jedem Schritt ungefähr im Verhältnis λ2/λ1 ≈ 0,38, bei einer symmetrischen Matrix die Abweichung der Schätzung sogar mit dessen Quadrat, ≈ 0,15. Mit derselben Idee hat Google ursprünglich den PageRank berechnet — den Eigenvektor einer riesigen Matrix der Links zwischen Seiten.
9. Lineare Algebra in der künstlichen Intelligenz
- Daten sind Matrizen: Eine Zeile ist ein Beispiel, eine Spalte ein Merkmal.
- Einbettungen (Embeddings) sind Vektoren; Ähnlichkeit misst man mit dem Skalarprodukt oder dem Kosinus.
- Eine Netzschicht ist Wx + b plus eine Nichtlinearität; das Training ändert die Einträge der Matrizen W.
- Attention in Transformern berechnet die Skalarprodukte aller Queries mit allen Keys auf einmal — die Matrixmultiplikation QK⊤.
- PCA und Kompression suchen Eigenvektoren, Empfehlungssysteme zerlegen die Matrix „Nutzer × Film“ in ein Produkt kleinerer Matrizen.
10. Zusammenfassung
- Ein Vektor ist Zahlenliste und Pfeil zugleich; addiert wird komponentenweise.
- Das Skalarprodukt misst, wie sehr zwei Vektoren in dieselbe Richtung zeigen — die Kosinus-Ähnlichkeit ist seine normierte Version.
- Eine Matrix ist eine lineare Transformation des Raums; die Determinante sagt, um welchen Faktor sie die Fläche ändert, und null bedeutet, dass sich die Transformation nicht rückgängig machen lässt.
- Matrixmultiplikation ist die Verkettung von Transformationen, und eine Schicht eines neuronalen Netzes ist Wx + b mit einer Nichtlinearität.
- Eigenvektoren sind Richtungen, die die Matrix nur streckt — auf ihnen beruht PCA.
Siehst du das anders? Schreib an support@coden-app.com.