Home

05 Drills: Grundlegende Matrizenrechnung für Transformer

exercise drills matrix linear-algebra lecture-5

Ein Übungsbuch für den ersten Kontakt — für Studierende, die die linear-algebraischen Schritte eines Transformers von Hand durchrechnen möchten, bevor sie Code anfassen. Jede Übung greift auf die durchgehenden Beispiele aus Vorlesung 5 — Im Inneren des Transformers zurück: die Spielzeug-Sequenz <BOS> dragon drinks mit \(T = 3, d \le 6\) und das “the cat sat on it”-Attention-Beispiel mit \(T = 5, d_k = 64\).

Dieses Dokument ist die Brücke zwischen “Ich kann Zahlen multiplizieren” und den beweislastigen Begleitübungen Lineare Algebra für Transformer. Sobald Sie jeden Eintrag unten mit Stift und Papier lösen können, werden die Beweise in jenem Begleitdokument selbstverständlich.

Wie man dieses Dokument benutzt

Inhaltsverzeichnis


Kapitel 1. Vektoren vor der Attention

Die Geometrie von Embeddings — Skalarprodukt, Länge, Kosinus — ist das einzige Werkzeug, das Sie brauchen, um zu interpretieren, was \(QK^\top\) in Kapitel 4 misst. Wir verwenden 3-dimensionale Spielzeug-Embeddings für zwei der durchgehenden Token der Vorlesung.

Betrachten Sie

\[x_{\text{dragon}} = \begin{pmatrix} 1 \\ 2 \\ 0 \end{pmatrix}, \qquad x_{\text{drinks}} = \begin{pmatrix} 0 \\ 1 \\ 1 \end{pmatrix}.\]

Übung 1.1. Berechnen Sie das Skalarprodukt \(x_{\text{dragon}}^\top x_{\text{drinks}}\).

Lösung

\(x_{\text{dragon}}^\top x_{\text{drinks}} = 1 \cdot 0 + 2 \cdot 1 + 0 \cdot 1 = 2\).

Übung 1.2. Berechnen Sie \(\|x_{\text{dragon}}\|_2\), \(\|x_{\text{drinks}}\|_2\) und die Kosinusähnlichkeit \(\cos(x_{\text{dragon}}, x_{\text{drinks}})\).

Lösung

\(\|x_{\text{dragon}}\|_2 = \sqrt{1 + 4 + 0} = \sqrt{5}\); \(\|x_{\text{drinks}}\|_2 = \sqrt{0 + 1 + 1} = \sqrt{2}\). Mit Übung 1.1,

\[\cos(x_{\text{dragon}}, x_{\text{drinks}}) \;=\; \frac{x_{\text{dragon}}^\top x_{\text{drinks}}}{\|x_{\text{dragon}}\|_2 \, \|x_{\text{drinks}}\|_2} \;=\; \frac{2}{\sqrt{5}\,\sqrt{2}} \;=\; \frac{2}{\sqrt{10}} \;\approx\; 0.632.\]

Übung 1.3 (MCQ). Zwei Embeddings \(u, v\) zeigen in dieselbe Richtung (d.h. \(v = \alpha u\) für ein \(\alpha > 0\)), aber \(v\) ist doppelt so lang wie \(u\). Welche der folgenden Aussagen ist wahr?

(a) \(\cos(u, v) = 0\) und \(u^\top v = 0\). (b) \(\cos(u, v) = 1\) und \(u^\top v = 2\|u\|_2^2\). (c) \(\cos(u, v) = 1\) und \(u^\top v = \|u\|_2^2\). (d) \(\cos(u, v) = 2\) und \(u^\top v = 2\|u\|_2^2\).

Lösung

(b). Der Kosinus entfernt die Länge: dieselbe Richtung ergibt immer \(\cos = 1\), unabhängig vom Betrag. Das Skalarprodukt behält die Länge: \(u^\top v = u^\top(2u) = 2 u^\top u = 2\|u\|_2^2\). Genau deshalb verwenden Attention-Scores das rohe Skalarprodukt \(q^\top k\) — Beträge tragen Information, die der Kosinus wegwirft.


Kapitel 2. Ihr erstes Matrixprodukt

Die mit Abstand wichtigste Berechnung in diesem gesamten Dokument. Wir führen sie dreimal durch — eintragsweise, dann als Linearkombination der Zeilen von \(B\), dann als Linearkombination der Spalten von \(A\) —, damit Ihnen alle drei Sichtweisen der Matrixmultiplikation in Fleisch und Blut übergehen.

Betrachten Sie

\[A = \begin{pmatrix} 1 & 2 & 0 \\ 0 & 1 & 1 \end{pmatrix} \;\in\; \mathbb{R}^{2 \times 3}, \qquad B = \begin{pmatrix} 1 & 1 \\ 0 & 1 \\ 1 & 0 \end{pmatrix} \;\in\; \mathbb{R}^{3 \times 2}.\]

Übung 2.1 (eintragsweise). Berechnen Sie \(A B\), indem Sie jeden der vier Einträge über die Formel \((A B)_{ij} = \sum_{k=1}^{3} A_{ik} B_{kj}\) ausrechnen.

Lösung

\((A B)_{11} = 1\cdot 1 + 2\cdot 0 + 0\cdot 1 = 1\). \((A B)_{12} = 1\cdot 1 + 2\cdot 1 + 0\cdot 0 = 3\). \((A B)_{21} = 0\cdot 1 + 1\cdot 0 + 1\cdot 1 = 1\). \((A B)_{22} = 0\cdot 1 + 1\cdot 1 + 1\cdot 0 = 1\).

\[A B = \begin{pmatrix} 1 & 3 \\ 1 & 1 \end{pmatrix}.\]

Übung 2.2 (Zeile-als-Linearkombination-der-Zeilen-von-\(B\)). Es seien \(b_1^\top = (1, 1)\), \(b_2^\top = (0, 1)\), \(b_3^\top = (1, 0)\) die Zeilen von \(B\). Verifizieren Sie, dass

\[(\text{Zeile 1 von } AB)^\top \;=\; A_{11}\, b_1^\top + A_{12}\, b_2^\top + A_{13}\, b_3^\top.\]
Lösung

\(A_{11} b_1^\top + A_{12} b_2^\top + A_{13} b_3^\top = 1 \cdot (1, 1) + 2 \cdot (0, 1) + 0 \cdot (1, 0) = (1, 1) + (0, 2) + (0, 0) = (1, 3)\) — genau Zeile 1 von \(A B\).

Diese Sichtweise sagt: Zeile \(i\) von \(A B\) ist eine gewichtete Mischung der Zeilen von \(B\), mit den Gewichten aus Zeile \(i\) von \(A\). Genau so funktioniert \(Z = A V\) innerhalb der Attention — Kapitel 4 der Vorlesungsnotizen Transformer-Forward-Pass-Formeln und -Dimensionen stellt dies ausdrücklich klar.

Übung 2.3 (Spalte-als-Linearkombination-der-Spalten-von-\(A\)). Es seien \(a_1 = (1, 0)^\top\), \(a_2 = (2, 1)^\top\), \(a_3 = (0, 1)^\top\) die Spalten von \(A\). Verifizieren Sie, dass

\[\text{Spalte 1 von } A B \;=\; B_{11}\, a_1 + B_{21}\, a_2 + B_{31}\, a_3.\]
Lösung

\(B_{11} a_1 + B_{21} a_2 + B_{31} a_3 = 1 \cdot (1, 0)^\top + 0 \cdot (2, 1)^\top + 1 \cdot (0, 1)^\top = (1, 0)^\top + (0, 0)^\top + (0, 1)^\top = (1, 1)^\top\) — genau Spalte 1 von \(A B\).

Diese Sichtweise sagt: Spalte \(j\) von \(A B\) ist eine gewichtete Mischung der Spalten von \(A\), mit den Gewichten aus Spalte \(j\) von \(B\). Die beiden Sichtweisen — Zeilenmischung und Spaltenmischung — sind dieselbe Multiplikation, von verschiedenen Seiten betrachtet.


Kapitel 3. Die Query-Matrix Zeile für Zeile berechnen

Jetzt wenden wir Kapitel 2 auf die eigentliche Attention-Projektion an. Jede Zeile von X ist das Embedding eines Tokens; jede Zeile von Q ist der zugehörige Query-Vektor. Die Rechtsmultiplikation mit W_Q wirkt auf jede Zeile unabhängig — genau deshalb ist die “Zeile von Q für Token \(t\)” wohldefiniert.

Betrachten Sie drei Token mit 2-dimensionalen Embeddings (klein zur besseren Lesbarkeit — hier d = 2, aber die Vorlesung verwendet d = 6, und die Rechnung ist dieselbe):

\[X = \begin{pmatrix} 1 & 0 \\ 1 & 2 \\ 0 & 1 \end{pmatrix} \;=\; \begin{pmatrix} x_{\langle\text{BOS}\rangle}^\top \\ x_{\text{dragon}}^\top \\ x_{\text{drinks}}^\top \end{pmatrix} \;\in\; \mathbb{R}^{3 \times 2}, \qquad W_Q = \begin{pmatrix} 1 & 1 \\ 0 & 1 \end{pmatrix} \;\in\; \mathbb{R}^{2 \times 2}.\]

Übung 3.1. Berechnen Sie den Query-Vektor pro Token für dragon mit der Formel \(q_2^\top = x_2^\top W_Q\).

Lösung

\(q_2^\top = (1, 2) \cdot \begin{pmatrix} 1 & 1 \\ 0 & 1 \end{pmatrix} = (1\cdot 1 + 2\cdot 0,\; 1\cdot 1 + 2\cdot 1) = (1, 3)\).

Der Query-Vektor für dragon ist also \(q_2 = (1, 3)^\top\). Beachten Sie, dass die Berechnung nur Zeile 2 von X und die Einträge von W_Q verwendet — keine andere Zeile ist beteiligt.

Übung 3.2. Berechnen Sie \(Q = X W_Q\) direkt als \((3 \times 2) \cdot (2 \times 2)\)-Matrixprodukt.

Lösung

Zeile für Zeile:

\[Q = \begin{pmatrix} (1,0) \cdot W_Q \\ (1,2) \cdot W_Q \\ (0,1) \cdot W_Q \end{pmatrix} = \begin{pmatrix} 1 & 1 \\ 1 & 3 \\ 0 & 1 \end{pmatrix}.\]

Übung 3.3. Bestätigen Sie, dass die Zeile von \(Q\), die Sie in 3.1 berechnet haben, mit Zeile 2 der Matrix aus 3.2 übereinstimmt.

Lösung

Zeile 2 von \(Q\) ist \((1, 3)\), was genau \(q_2^\top\) aus 3.1 ist. Die Kernaussage: Die matrix-gestapelte Formel \(Q = X W_Q\) ist nichts anderes als \(T\) unabhängige Formeln pro Token \(q_t^\top = x_t^\top W_Q\), in eine Zeile geschrieben. Die Rechtsmultiplikation mit \(W_Q\) wirkt auf die Zeilen von \(X\) einzeln.


Kapitel 4. Die Score-Matrix aus Q und K

Hier verdient sich Attention den Namen “alle Queries im Skalarprodukt mit allen Keys”. Jeder Eintrag von S ist ein Skalarprodukt; bei T = 3 Token haben wir 9 Skalarprodukte — angeordnet in einem \(3 \times 3\)-Raster.

Betrachten Sie \(Q\) aus Kapitel 3 und eine Key-Matrix

\[Q = \begin{pmatrix} 1 & 1 \\ 1 & 3 \\ 0 & 1 \end{pmatrix}, \qquad K = \begin{pmatrix} 2 & 0 \\ 0 & 1 \\ 1 & 1 \end{pmatrix} \;\in\; \mathbb{R}^{3 \times 2}.\]

Übung 4.1. Berechnen Sie \(S = Q K^\top\) Eintrag für Eintrag. (Hinweis: Schreiben Sie zuerst \(K^\top\) aus, dann verwenden Sie Kapitel 2.)

Lösung

\(K^\top = \begin{pmatrix} 2 & 0 & 1 \\ 0 & 1 & 1 \end{pmatrix} \in \mathbb{R}^{2 \times 3}\), und \(S = Q K^\top \in \mathbb{R}^{3 \times 3}\):

\[S = \begin{pmatrix} (1,1)\cdot(2,0) & (1,1)\cdot(0,1) & (1,1)\cdot(1,1) \\ (1,3)\cdot(2,0) & (1,3)\cdot(0,1) & (1,3)\cdot(1,1) \\ (0,1)\cdot(2,0) & (0,1)\cdot(0,1) & (0,1)\cdot(1,1) \end{pmatrix} = \begin{pmatrix} 2 & 1 & 2 \\ 2 & 3 & 4 \\ 0 & 1 & 1 \end{pmatrix}.\]

Übung 4.2. Formulieren Sie in einem Satz, was \(S_{2,3}\) in Attention-Begriffen bedeutet, gegeben dass \(Q\) und \(K\) aus <BOS> dragon drinks stammen.

Lösung

\(S_{2,3} = q_2^\top k_3 = 4\) ist die rohe Ausrichtung zwischen der Query von Token 2 (dragon) und dem Key von Token 3 (drinks) — wie sehr dragon “nachfragt”, was drinks “anbietet”. Ein höheres \(S_{2,3}\) bedeutet mehr Attention von dragon zu drinks nach dem zeilenweisen Softmax.

Übung 4.3. Begründen Sie, dass \(S\) nicht symmetrisch sein muss (d.h. im Allgemeinen \(S_{ij} \ne S_{ji}\)). Bestätigen Sie dies an der Matrix aus 4.1, indem Sie ein konkretes \(i, j\) angeben, für das sie sich unterscheiden.

Lösung

\(S_{ij} = q_i^\top k_j\), und \(Q\) und \(K\) sind unabhängig parametrisiert: im Allgemeinen \(W_Q \ne W_K\), also sind \(q_i\) und \(k_i\) unterschiedliche Transformationen desselben Eingabevektors \(x_i\). Konkret ist \(S_{1,2} = 1\), aber \(S_{2,1} = 2\) in 4.1. Die Asymmetrie ist wichtig: Sie erlaubt es der Attention, zu sagen “dragon achtet auf drinks”, ohne “drinks achtet auf dragon” im gleichen Maße zu erzwingen.


Kapitel 5. Softmax von Hand auf den “the cat sat on it”-Scores

Dies ist das numerische Vorzeigebeispiel der Vorlesung. Die Query ist das Token it, und wir berechnen ihre Attention-Verteilung über [the, cat, sat, on, it] — fünf Token. Die Scores vor dem Softmax sind genau jene, die in der Durchrechnung von Kapitel 6 der Vorlesung angegeben sind:

\[s = (3.2,\; 12.8,\; 5.6,\; 2.4,\; 7.2), \qquad d_k = 64.\]

Übung 5.1 (ohne Skalierung). Berechnen Sie \(\mathrm{softmax}(s)\) direkt — exponentieren Sie jeden Eintrag, teilen Sie durch die Summe. Runden Sie jedes Gewicht auf 0.001 genau.

Lösung

\(\exp(3.2) \approx 24.5\), \(\exp(12.8) \approx 362\,217\), \(\exp(5.6) \approx 270.4\), \(\exp(2.4) \approx 11.0\), \(\exp(7.2) \approx 1\,339.4\).

Summe \(\approx 363\,862\). Dividieren:

\[\mathrm{softmax}(s) \;\approx\; (0.000,\; 0.996,\; 0.001,\; 0.000,\; 0.004).\]

Die Masse konzentriert sich fast vollständig auf cat. Die anderen vier Token tragen zusammen weniger als 0.5 % der Attention.

Übung 5.2 (mit der \(\sqrt{d_k}\)-Skalierung). Teilen Sie nun jeden Score durch \(\sqrt{d_k} = \sqrt{64} = 8\) vor dem Softmax und rechnen Sie erneut. Runden Sie jedes Gewicht auf 0.01 genau.

Lösung

Skalierte Scores: \(s / 8 = (0.40,\; 1.60,\; 0.70,\; 0.30,\; 0.90)\).

Exponentiale: \(\exp(0.40) \approx 1.49\), \(\exp(1.60) \approx 4.95\), \(\exp(0.70) \approx 2.01\), \(\exp(0.30) \approx 1.35\), \(\exp(0.90) \approx 2.46\).

Summe \(\approx 12.26\). Dividieren:

\[\mathrm{softmax}(s / \sqrt{d_k}) \;\approx\; (0.12,\; 0.40,\; 0.16,\; 0.11,\; 0.20).\]

Dies ist das in der Vorlesung angegebene Ergebnis: etwa 40 % auf cat, der Rest verteilt. Gleiche Query, gleiche Keys — nur die Skalierung hat sich geändert.

Übung 5.3 (MCQ). Warum teilt der Transformer vor dem Softmax durch \(\sqrt{d_k}\)?

(a) Damit die Softmax-Ausgabe sich zu 1 summiert (was sie sonst nicht täte). (b) Um zu verhindern, dass der Softmax sättigt und auf ein einzelnes Token kollabiert, wenn die Scores große Beträge haben. (c) Um jeden Eintrag der Score-Matrix in \([-1, 1]\) zu zwingen. (d) Für numerische Stabilität bei der Gleitkomma-Exponentialfunktion.

Lösung

(b). Ein Softmax summiert sich per Konstruktion immer zu 1 (also ist (a) falsch); die Skalierung begrenzt die Einträge nicht auf \([-1, 1]\) (also ist (c) falsch); der Standardtrick für numerische Stabilität ist das Subtrahieren des Zeilenmaximums, nicht das Teilen durch \(\sqrt{d_k}\) (also ist (d) falsch, wenngleich es einen gewissen indirekten Nutzen gibt). Die eigentliche Motivation ist genau der Kontrast zwischen den Übungen 5.1 und 5.2: Wenn die Scores mit \(d_k\) wachsen, sättigt der Softmax und die Gradienten verschwinden, also skalieren wir neu, um die Scores in einem moderaten Bereich zu halten.


Kapitel 6. Konkatenation als Block-Stapeln

Multi-Head Attention führt H unabhängige Single-Head Attentions auf disjunkten Abschnitten des Embeddings aus und konkateniert dann deren Ausgaben. “Konkatenation” bedeutet hier horizontales Block-Stapeln: zwei Matrizen entlang der Spaltenachse nebeneinandersetzen.

Betrachten Sie \(H = 2\) Heads, jeder der Breite \(d_k = 3\), was eine Gesamtbreite \(d = H \cdot d_k = 6\) ergibt. Die beiden Head-Ausgaben (jede \(T = 3\) Token × \(d_k = 3\) Merkmale) sind

\[Z^{(1)} = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}, \qquad Z^{(2)} = \begin{pmatrix} 1 & 1 & 1 \\ 2 & 2 & 2 \\ 3 & 3 & 3 \end{pmatrix}.\]

Übung 6.1. Bilden Sie die Konkatenation \(Z = [Z^{(1)} \mid Z^{(2)}] \in \mathbb{R}^{T \times d}\). Geben Sie ihre Form explizit an.

Lösung \[Z = \begin{pmatrix} 1 & 0 & 0 & 1 & 1 & 1 \\ 0 & 1 & 0 & 2 & 2 & 2 \\ 0 & 0 & 1 & 3 & 3 & 3 \end{pmatrix} \;\in\; \mathbb{R}^{3 \times 6}.\]

Die Anzahl der Zeilen (\(T = 3\)) bleibt unverändert; die Anzahl der Spalten geht von \(d_k = 3\) (je Head) auf \(d = H \cdot d_k = 6\) nach dem Konkatenieren beider Heads.

Übung 6.2. Welche Form muss die Ausgabeprojektion \(W_O\) haben, damit \(U = Z W_O\) ein gültiges Matrixprodukt ist? Welche Form hat \(U\) am Ende?

Lösung

\(W_O \in \mathbb{R}^{d \times d} = \mathbb{R}^{6 \times 6}\). Dann ist \(U = Z W_O \in \mathbb{R}^{3 \times 6}\) — dieselbe Form wie die Eingabe H in die Attention-Teilschicht. Das ist eine bewusste Design-Entscheidung: Die Ausgabe der Multi-Head Attention hat die Form \(T \times d\), bereit, ohne weiteres Umformen in die nächste Residualverbindung eingesetzt zu werden.

Übung 6.3 (Parameterzählung). Wie viele lernbare Parameter verwendet Single-Head Attention bei \(d = 6\) für W_Q, W_K, W_V (ohne W_O)? Wie viele verwendet Multi-Head Attention mit \(H = 2, d_k = 3\), einschließlich W_O? Woher kommt der Unterschied?

Lösung

Single-Head: drei Matrizen W_Q, W_K, W_V, jede in \(\mathbb{R}^{d \times d} = \mathbb{R}^{6 \times 6}\). Gesamt: \(3 \cdot 36 = 108\). Kein \(W_O\) in der reinen Single-Head-Variante.

Multi-Head, \(H = 2, d_k = 3\): drei Projektionen pro Head, jede in \(\mathbb{R}^{d \times d_k} = \mathbb{R}^{6 \times 3}\); zwei Heads. Q/K/V gesamt: \(3 \cdot H \cdot d \cdot d_k = 3 \cdot 2 \cdot 18 = 108\) — identisch mit Single-Head. Plus \(W_O \in \mathbb{R}^{6 \times 6}\), das 36 beiträgt. Gesamtsumme: 144.

Unterschied: genau \(d^2 = 36\), alles davon in W_O. Multi-Head ist nicht “teurer pro Projektion” — es ist dasselbe Q/K/V-Budget, umgeordnet in H parallele Unterräume, mit einem zusätzlichen W_O, um sie wieder zusammenzumischen.


Kapitel 7. Die kausale Maske von Hand

Decoder-only-LLMs verhindern, dass ein Token auf zukünftige Token achtet. Der Mechanismus ist eine einzelne additive Maske M, die vor dem Softmax in die Score-Matrix eingefügt wird.

\[M_{ij} \;=\; \begin{cases} 0 & \text{falls } j \le i, \\ -\infty & \text{falls } j > i. \end{cases}\]

Betrachten Sie \(T = 4\) und die Score-Matrix

\[S = \begin{pmatrix} 1 & 2 & 3 & 4 \\ 2 & 4 & 1 & 3 \\ 3 & 1 & 4 & 2 \\ 4 & 3 & 2 & 1 \end{pmatrix}.\]

Übung 7.1. Schreiben Sie \(M \in \mathbb{R}^{4 \times 4}\) explizit aus.

Lösung \[M = \begin{pmatrix} 0 & -\infty & -\infty & -\infty \\ 0 & 0 & -\infty & -\infty \\ 0 & 0 & 0 & -\infty \\ 0 & 0 & 0 & 0 \end{pmatrix}.\]

Nullen im unteren Dreieck, \(-\infty\) im oberen Dreieck. Die Diagonale ist eingeschlossen (ein Token kann immer auf sich selbst achten).

Übung 7.2. Berechnen Sie \(\widetilde S = S + M\), wenden Sie dann den Softmax zeilenweise an. Runden Sie jedes Gewicht auf zwei Dezimalstellen.

Lösung

Nach dem Addieren von M:

\[\widetilde S = \begin{pmatrix} 1 & -\infty & -\infty & -\infty \\ 2 & 4 & -\infty & -\infty \\ 3 & 1 & 4 & -\infty \\ 4 & 3 & 2 & 1 \end{pmatrix}.\]

Softmax zeilenweise: \(\exp(-\infty) = 0\), also verschwinden die maskierten Einträge. Jede Zeile ist eine Wahrscheinlichkeitsverteilung nur über die unmaskierten Positionen.

  • Zeile 1: nur ein endlicher Eintrag. \(A_{1,:} = (1.00,\; 0,\; 0,\; 0)\).
  • Zeile 2: \(\exp(2) \approx 7.39\), \(\exp(4) \approx 54.60\); Summe \(\approx 61.99\). \(A_{2,:} \approx (0.12,\; 0.88,\; 0,\; 0)\).
  • Zeile 3: \(\exp(3) \approx 20.09\), \(\exp(1) \approx 2.72\), \(\exp(4) \approx 54.60\); Summe \(\approx 77.41\). \(A_{3,:} \approx (0.26,\; 0.04,\; 0.71,\; 0)\).
  • Zeile 4: alle vier Einträge unmaskiert. \(\exp(4) \approx 54.60\), \(\exp(3) \approx 20.09\), \(\exp(2) \approx 7.39\), \(\exp(1) \approx 2.72\); Summe \(\approx 84.79\). \(A_{4,:} \approx (0.64,\; 0.24,\; 0.09,\; 0.03)\).

Die vollständige Attention-Matrix:

\[A \;\approx\; \begin{pmatrix} 1.00 & 0 & 0 & 0 \\ 0.12 & 0.88 & 0 & 0 \\ 0.26 & 0.04 & 0.71 & 0 \\ 0.64 & 0.24 & 0.09 & 0.03 \end{pmatrix}.\]

Übung 7.3. Betrachten Sie A aus 7.2. Formulieren Sie, was jede Zeile Ihnen über das Attention-Muster von Token \(i\) sagt. Was bedeutet insbesondere \(A_{1,1} = 1\) anschaulich?

Lösung

Zeile \(i\) von A ist die Attention-Verteilung von Token \(i\) über die Keys, die es sehen darf — nur die Positionen \(1, \ldots, i\). Zeile 1 achtet nur auf Position 1 (sich selbst), also besagt \(A_{1,1} = 1\): das erste Token hat außer sich selbst nichts, worauf es schauen kann. Jede folgende Zeile gewinnt eine weitere Position hinzu, auf die sie achten kann, und die untere Dreiecksform von A ist die sichtbare Signatur der kausalen Maskierung.


Kapitel 8. Permutationsmatrizen

Eine Permutationsmatrix P ist einfach eine Einheitsmatrix, deren Zeilen umgeordnet wurden. Die Linksmultiplikation von X mit P ordnet die Zeilen von X um. Das ist das algebraische Objekt hinter dem Permutationsäquivarianz-Lemma der Vorlesung in Kapitel 9.

Übung 8.1. Schreiben Sie die \(3 \times 3\)-Permutationsmatrix P, die die Zeilen 1 und 2 jeder \(3 \times d\)-Matrix vertauscht und Zeile 3 unangetastet lässt.

Lösung \[P = \begin{pmatrix} 0 & 1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \end{pmatrix}.\]

Zeile 1 von P ist der zweite Standardbasisvektor \(e_2^\top\), Zeile 2 ist \(e_1^\top\), Zeile 3 ist \(e_3^\top\). Die Linksmultiplikation von X mit P macht daher: neue Zeile 1 = alte Zeile 2, neue Zeile 2 = alte Zeile 1, neue Zeile 3 = alte Zeile 3.

Übung 8.2. Verifizieren Sie, dass \(P^\top P = I_3\) für die Matrix aus 8.1 gilt.

Lösung

Dieses P ist symmetrisch (\(P^\top = P\)), also ist \(P^\top P = P P\). Berechnen:

\[P P = \begin{pmatrix} 0 & 1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} 0 & 1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \end{pmatrix} = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix} = I_3.\]

Jede Permutationsmatrix ist orthogonal: \(P^\top P = I\) und \(P^\top = P^{-1}\). Wendet man P und dann \(P^\top\) an (oder zweimal bei einer Involution wie dieser Vertauschung), landet man wieder am Ausgangspunkt.

Übung 8.3. Betrachten Sie

\[X = \begin{pmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{pmatrix}.\]

Berechnen Sie \(P X\) mit der Matrix aus 8.1 und bestätigen Sie, dass es wirklich X mit vertauschten Zeilen 1 und 2 ist.

Lösung

Zeile \(i\) von \(P X\) ist Zeile \(i\) von P im Skalarprodukt mit den Spalten von X:

\[P X = \begin{pmatrix} (0,1,0) \cdot \text{Spalten von } X \\ (1,0,0) \cdot \text{Spalten von } X \\ (0,0,1) \cdot \text{Spalten von } X \end{pmatrix} = \begin{pmatrix} 4 & 5 & 6 \\ 1 & 2 & 3 \\ 7 & 8 & 9 \end{pmatrix}.\]

Die Zeilen 1 und 2 sind tatsächlich vertauscht; Zeile 3 bleibt unverändert. Das ist der algebraische Gehalt von “zwei Token in der Eingabesequenz vertauschen” — die Permutation steckt vollständig in P, und der Rest der Attention sieht dieses vertauschte X genau so, als hätten Sie die Token in einer anderen Reihenfolge eingegeben. Genau deshalb wird die Permutationsäquivarianz (Kapitel 9 der Vorlesung) zu einer einzeiligen algebraischen Identität, sobald man die Vertauschung als Matrix schreibt.


Wie geht es weiter?

Sie können nun jeden linear-algebraischen Schritt der Attention von Hand berechnen. Von hier aus führen drei Wege weiter:

© 2026 Dominik Müller   •  Powered by Soopr   •  Theme  Moonwalk