Zum Hauptinhalt springen

2.1 Dimensionsreduktion & Kovarianz

Warum Dimensionsreduktion?​

📄 03_dimred.pdf, Folie 4

Reale Daten sind oft sehr hochdimensional: Genomsequenzen, Bilder, Textdokumente. Das bringt zwei Probleme mit sich:

  1. Lernalgorithmen werden deutlich erschwert. Mehr Variablen bedeuten mehr Parameter, mehr Rechenzeit und, bei wenigen Beispielen, Überanpassung.
  2. Man kann die Daten nicht mehr visualisieren. Mehr als drei Achsen kann niemand anschauen.

Man versucht deshalb, die Anzahl der Variablen im Lernproblem zu reduzieren: Dimensionsreduktion (dimensionality reduction). Es gibt zwei grundsätzliche Wege:

Merkmalsselektion (feature selection)Merkmalsextraktion (feature extraction)
Ideeeine Teilmenge der vorhandenen Variablen auswählenwenige neue Variablen (Merkmale) aus allen alten berechnen
Kriterienz.B. Rekonstruktionsfehler, Informationszuwachsdie neuen Merkmale sollen die für das Lernproblem relevante Information möglichst gut repräsentieren
ErgebnisOriginalvariablen bleiben interpretierbarneue Variablen sind Mischungen, oft schwerer zu deuten
Beispielnur die 50 aussagekräftigsten Gene behaltenPCA: Linearkombinationen aller Gene
Merke

Die PCA ist Merkmalsextraktion, nicht Selektion. Jede Hauptkomponente hängt von allen Originalvariablen ab.

Beispiele für hochdimensionale Daten​

  • MNIST (📄 03_dimred.pdf, Folie 5): handgeschriebene Ziffern als 28×2828\times28-Graustufenbilder. Jedes Pixel ist eine Variable, also 28⋅28=78428\cdot28=784 Merkmale pro Bild, bei 60 000 Trainingsbildern. Die Datenmatrix hat eine Zeile pro Bild (Fall, engl. case/sample) und eine Spalte pro Pixel.
  • Genexpression in Microarrays (📄 03_dimred.pdf, Folie 6): rund 30 000 Gene (Merkmale), aber nur rund 100 Patienten (Chips). Hier gibt es viel mehr Variablen als Beispiele, ein typischer Fall von n≫Nn \gg N.

Wie findet man in einer Tabelle mit 30 000 Spalten einen Fehler (📄 03_dimred.pdf, Folie 8)? Durch Hinschauen jedenfalls nicht.

Visualisierung durch Dimensionsreduktion​

📄 03_dimred.pdf, Folie 9

Idee: Man stellt nur die zwei oder drei „wichtigsten“ Dimensionen dar. „Wichtig“ heißt hier: Richtungen, in denen die Daten möglichst breit streuen, also hohe Varianz haben. Dort werden interne Strukturen sichtbar.

Das Microarray-Beispiel auf der Folie zeigt, was man dabei entdecken kann:

  • Die Proben zerfallen in zwei Gruppen, die zwei Gewebetypen entsprechen.
  • Ein blauer Punkt liegt mitten in der roten Gruppe: ein falsch beschriftetes Experiment (mislabeled experiment).
  • In einem anderen Datensatz trennen sich die Proben nach Labor (site effect), nicht nach Biologie. Das ist ein Messartefakt, das man ohne Visualisierung leicht übersieht.

Um „Richtung hoher Varianz“ präzise zu machen, braucht man die Kovarianzmatrix.

Wiederholung: Korrelation und Kovarianz​

📄 03_dimred.pdf, Folie 10

Die Folie nennt die Korrelation zweier Variablen xx und yy

Cxy=E[xy]=∑xi∈X∑yj∈Yxi yj p(xi,yj).C_{xy} = \mathcal E[xy] = \sum_{x_i\in\mathcal X}\sum_{y_j\in\mathcal Y} x_i\, y_j\, p(x_i,y_j).

Ergänzung zur Begriffswahl: In der Statistik versteht man unter „Korrelation“ meist den normierten Korrelationskoeffizienten ρxy=σxy/(σxσy)\rho_{xy}=\sigma_{xy}/(\sigma_x\sigma_y). Die Folie meint mit CxyC_{xy} dagegen das (unnormierte) gemischte zweite Moment E[xy]\mathcal E[xy], wie es in der Signalverarbeitung üblich ist.

Intuition: Hängen xx und yy zusammen, sind sie oft gleichzeitig positiv oder gleichzeitig negativ, sie kovariieren. Ihr Produkt ist dann oft groß, also auch E[xy]\mathcal E[xy].

Problem: CxyC_{xy} ist umso größer, je größer die Mittelwerte von xx und yy sind, ganz unabhängig davon, ob die Variablen zusammenhängen. Beispiel: xx und yy seien unabhängig mit Mittelwert 10. Dann ist E[xy]=E[x] E[y]=100\mathcal E[xy]=\mathcal E[x]\,\mathcal E[y]=100, obwohl keinerlei Zusammenhang besteht.

Lösung: Erst die Mittelwerte abziehen. Das ergibt die Kovarianz (covariance):

σxy=E[(x−μx)(y−μy)]=∑xi∑yj(xi−μx)(yj−μy) p(xi,yj).\sigma_{xy} = \mathcal E\big[(x-\mu_x)(y-\mu_y)\big] = \sum_{x_i}\sum_{y_j}(x_i-\mu_x)(y_j-\mu_y)\,p(x_i,y_j).
Vorzeichen von σxy\sigma_{xy}Bedeutung
positivliegt xx über seinem Mittel, dann meist auch yy
negativliegt xx über seinem Mittel, dann yy meist darunter
nullkein linearer Zusammenhang (unkorreliert)
Fallstrick

Unkorreliert heißt nicht unabhängig. Für xx symmetrisch um 0 und y=x2y=x^2 ist σxy=E[x3]=0\sigma_{xy}=\mathcal E[x^3]=0, obwohl yy vollständig von xx abhängt. Die Kovarianz misst nur lineare Zusammenhänge. (Ergänzung)

Die Kovarianzmatrix​

📄 03_dimred.pdf, Folie 11

Hat man nn Variablen x1,…,xnx_1,\dots,x_n, fasst man alle paarweisen Kovarianzen in der Kovarianzmatrix (covariance matrix) Σ\Sigma zusammen:

Σ=(σij)=(σ11σ12⋯σ21σ22⋯⋮⋮⋱)=(σ12σ12⋯σ21σ22⋯⋮⋮⋱).\Sigma = (\sigma_{ij}) = \begin{pmatrix} \sigma_{11} & \sigma_{12} & \cdots\\ \sigma_{21} & \sigma_{22} & \cdots\\ \vdots & \vdots & \ddots \end{pmatrix} = \begin{pmatrix} \sigma_1^2 & \sigma_{12} & \cdots\\ \sigma_{21} & \sigma_2^2 & \cdots\\ \vdots & \vdots & \ddots \end{pmatrix}.

Eigenschaften:

  • Symmetrisch: Σij=Σji\Sigma_{ij}=\Sigma_{ji}, denn (xi−μi)(xj−μj)=(xj−μj)(xi−μi)(x_i-\mu_i)(x_j-\mu_j)=(x_j-\mu_j)(x_i-\mu_i).
  • Diagonale = Varianzen: σii=E[(xi−μi)2]=σi2\sigma_{ii}=\mathcal E[(x_i-\mu_i)^2]=\sigma_i^2.

Kompakt als äußeres Produkt​

Fasst man die Variablen zu einem Merkmalsvektor x=(x1,…,xn)⊤\mathbf x=(x_1,\dots,x_n)^\top mit Mittelwert μx\boldsymbol\mu_{\mathbf x} zusammen, gilt:

Σij=E[(xi−μi)(xj−μj)]⇒Σ=E[(x−μx)(x−μx)⊤].\Sigma_{ij} = \mathcal E\big[(x_i-\mu_i)(x_j-\mu_j)\big] \quad\Rightarrow\quad \Sigma = \mathcal E\big[(\mathbf x-\boldsymbol\mu_{\mathbf x})(\mathbf x-\boldsymbol\mu_{\mathbf x})^\top\big].

Warum? Für einen Spaltenvektor v\mathbf v ist das äußere Produkt (outer product) vv⊤\mathbf v\mathbf v^\top eine n×nn\times n-Matrix mit Eintrag vivjv_iv_j an Position (i,j)(i,j). Mit v=x−μ\mathbf v=\mathbf x-\boldsymbol\mu steht dort genau (xi−μi)(xj−μj)(x_i-\mu_i)(x_j-\mu_j). Den Erwartungswert nimmt man eintragsweise.

Merke: v⊤v\mathbf v^\top\mathbf v ist ein Skalar (inneres Produkt), vv⊤\mathbf v\mathbf v^\top eine Matrix (äußeres Produkt).

Ergänzung: Schätzung aus Daten. In der Praxis kennt man p(x)p(\mathbf x) nicht, sondern hat NN Datenpunkte x1,…,xN\mathbf x_1,\dots,\mathbf x_N. Man ersetzt den Erwartungswert durch den Mittelwert:

μ^=1N∑k=1Nxk,Σ^=1N∑k=1N(xk−μ^)(xk−μ^)⊤=1NXc⊤Xc,\hat{\boldsymbol\mu} = \frac1N\sum_{k=1}^N\mathbf x_k,\qquad \hat\Sigma = \frac1N\sum_{k=1}^N(\mathbf x_k-\hat{\boldsymbol\mu})(\mathbf x_k-\hat{\boldsymbol\mu})^\top = \frac1N X_c^\top X_c,

wobei XcX_c die zentrierte Datenmatrix ist (eine Zeile pro Datenpunkt). Oft wird durch N−1N-1 statt NN geteilt (erwartungstreue Schätzung). Für die PCA ist das egal: Ein konstanter Faktor ändert die Eigenvektoren nicht, nur die Eigenwerte skalieren mit.

Zahlenbeispiel. Vier zentrierte Punkte (Mittelwert schon (0,0)(0,0)):

x1=(21), x2=(12), x3=(−1−2), x4=(−2−1).\mathbf x_1=\begin{pmatrix}2\\1\end{pmatrix},\ \mathbf x_2=\begin{pmatrix}1\\2\end{pmatrix},\ \mathbf x_3=\begin{pmatrix}-1\\-2\end{pmatrix},\ \mathbf x_4=\begin{pmatrix}-2\\-1\end{pmatrix}.
  • σ12=14(4+1+1+4)=2.5\sigma_1^2=\tfrac14(4+1+1+4)=2.5
  • σ22=14(1+4+4+1)=2.5\sigma_2^2=\tfrac14(1+4+4+1)=2.5
  • σ12=14(2+2+2+2)=2\sigma_{12}=\tfrac14(2+2+2+2)=2
Σ^=(2.5222.5).\hat\Sigma=\begin{pmatrix}2.5&2\\2&2.5\end{pmatrix}.

Die positive Kovarianz sagt: Die Punkte liegen entlang der Diagonale „rechts oben – links unten“. Dieses Beispiel wird in 2.2 weitergerechnet.

Σ\Sigma beschreibt Form und Orientierung der Daten​

📄 03_dimred.pdf, Folie 12

Die Kovarianzmatrix beschreibt die Form und Orientierung der Punktwolke im Merkmalsraum. Die Folie zeigt drei 2D-Fälle (die Ellipsen sind Höhenlinien einer Normalverteilung mit dieser Kovarianz):

FallΣ\SigmaForm der PunktwolkeKorrelation
1(σ200σ2)\begin{pmatrix}\sigma^2&0\\0&\sigma^2\end{pmatrix}Kreis: Varianz in allen Richtungen gleich, die Daten sind isotrop verteiltunkorreliert
2(σ1200σ22)\begin{pmatrix}\sigma_1^2&0\\0&\sigma_2^2\end{pmatrix}achsenparallele Ellipsenoch unkorreliert
3(σ12σ12σ21σ22)\begin{pmatrix}\sigma_1^2&\sigma_{12}\\\sigma_{21}&\sigma_2^2\end{pmatrix}, σ12=σ21≠0\sigma_{12}=\sigma_{21}\neq0beliebig gedrehte Ellipsekorreliert

Die Intuition für die PCA kommt aus diesem Bild: Fall 3 ist nur ein gedrehter Fall 2. Dreht man das Koordinatensystem passend mit, wird die Ellipse achsenparallel, die Nebendiagonale verschwindet, und die Variablen sind unkorreliert. Genau diese Drehung sucht die PCA.

Varianz entlang einer Raumrichtung​

📄 03_dimred.pdf, Folie 13

Gesucht ist die Varianz der Daten entlang einer beliebigen Richtung. Eine Richtung im Rd\mathbb R^d wird durch einen Einheitsvektor q\mathbf q dargestellt, ∥q∥=q⊤q=1\lVert\mathbf q\rVert=\sqrt{\mathbf q^\top\mathbf q}=1. Die Datenpunkte werden nach Abzug des Mittelwerts auf q\mathbf q projiziert:

a=(x−μx)⊤q=q⊤(x−μx).a = (\mathbf x-\boldsymbol\mu_{\mathbf x})^\top\mathbf q = \mathbf q^\top(\mathbf x-\boldsymbol\mu_{\mathbf x}).

aa ist die (vorzeichenbehaftete) Länge des Schattens von x−μ\mathbf x-\boldsymbol\mu auf der Geraden durch den Schwerpunkt in Richtung q\mathbf q. Wegen ∥q∥=1\lVert\mathbf q\rVert=1 ist das wirklich eine Länge. Für längere q\mathbf q würde aa künstlich mitwachsen.

Der Mittelwert von aa ist 0: E[a]=q⊤(E[x]−μ)=0\mathcal E[a]=\mathbf q^\top(\mathcal E[\mathbf x]-\boldsymbol\mu)=0. Also ist die Varianz einfach E[a2]\mathcal E[a^2]:

σ2(q)=E[a2]=E[(q⊤(x−μ))((x−μ)⊤q)]=q⊤ E[(x−μ)(x−μ)⊤] q=q⊤Σ q.\begin{aligned} \sigma^2(\mathbf q) &= \mathcal E[a^2]\\ &= \mathcal E\big[\big(\mathbf q^\top(\mathbf x-\boldsymbol\mu)\big)\big((\mathbf x-\boldsymbol\mu)^\top\mathbf q\big)\big]\\ &= \mathbf q^\top\,\mathcal E\big[(\mathbf x-\boldsymbol\mu)(\mathbf x-\boldsymbol\mu)^\top\big]\,\mathbf q\\ &= \mathbf q^\top\Sigma\,\mathbf q. \end{aligned}

Die einzelnen Schritte:

  1. aa ist ein Skalar, also a2=a⋅aa^2=a\cdot a. Für den ersten Faktor nimmt man die Form q⊤(x−μ)\mathbf q^\top(\mathbf x-\boldsymbol\mu), für den zweiten die transponierte Form (x−μ)⊤q(\mathbf x-\boldsymbol\mu)^\top\mathbf q.
  2. q\mathbf q ist fest (nicht zufällig) und kann wegen der Linearität aus dem Erwartungswert herausgezogen werden.
  3. Was übrig bleibt, ist die Definition von Σ\Sigma.
Kernaussage

Die Varianz der Daten in Richtung q\mathbf q ist die quadratische Form q⊤Σq\mathbf q^\top\Sigma\mathbf q. Die Kovarianzmatrix enthält also die Varianz in jeder Richtung, nicht nur entlang der Koordinatenachsen.

Zahlenbeispiel mit Σ=(2.5222.5)\Sigma=\begin{pmatrix}2.5&2\\2&2.5\end{pmatrix}:

Richtung q\mathbf qq⊤Σq\mathbf q^\top\Sigma\mathbf q
(1,0)⊤(1,0)^\top (x1x_1-Achse)2.52.5 (das ist einfach σ12\sigma_1^2)
(0,1)⊤(0,1)^\top (x2x_2-Achse)2.52.5
12(1,1)⊤\tfrac1{\sqrt2}(1,1)^\top (Diagonale)12(2.5+2+2+2.5)=4.5\tfrac12(2.5+2+2+2.5)=4.5
12(1,−1)⊤\tfrac1{\sqrt2}(1,-1)^\top (Gegendiagonale)12(2.5−2−2+2.5)=0.5\tfrac12(2.5-2-2+2.5)=0.5

Entlang der Diagonale ist die Varianz mit 4.5 viel größer als entlang jeder Koordinatenachse. Zur Kontrolle: Die Projektionen der vier Punkte auf 12(1,1)⊤\tfrac1{\sqrt2}(1,1)^\top sind ±32\pm\tfrac3{\sqrt2}, ihr Quadrat ist jeweils 4.54.5. ✔

Die Folie hält außerdem fest: Die Varianzen entlang aller Raumrichtungen haben im Allgemeinen Paare von Maxima und Minima, die senkrecht aufeinander stehen. Im Beispiel: Maximum 4.5 bei der Diagonale, Minimum 0.5 bei der dazu senkrechten Gegendiagonale. Diese Richtungen extremaler Varianz sind die Hauptkomponenten, um die es im nächsten Abschnitt geht.

Ergänzung zur Anschauung: Für q=(cos⁡φ,sin⁡φ)⊤\mathbf q=(\cos\varphi,\sin\varphi)^\top ergibt sich im Beispiel σ2(φ)=2.5+2sin⁡2φ\sigma^2(\varphi)=2.5+2\sin2\varphi. Diese Funktion hat ihr Maximum bei φ=45°\varphi=45° und ihr Minimum bei φ=135°\varphi=135°, also genau 90°90° versetzt.