7.0 KiB
7.0 KiB
Notizen NSL Lektion 1
Thema: Unsupervised Learning Datum: 18.06.2026 Dozentin: Matthias Dehmer
Recap
Supervised Learning
- Input: Arbeitet auf Daten (Feature Vektoren) mit Labels
- Output: Modell für Prediction
- Regression:
- Daten
X(Features) gegeben -> man willY(Zielgrösse) vorhersagen - Gesucht ist eine Funktion
fmit\hat{y} = f(x)für eine Vorhersage
- Daten
- Klassifikation
- Binär
- Multiclass
- Applications
- Spam Filtering
- Image Classification
- Gesture Recognition
- Fraud Detection
Unsupervised Learning
- Input: Arbeitet auf Daten (Feature Vektoren) ohne Labels
- Output: Model discovering underlying data structure of the data
- Methoden
- Clustering
- Dimension Reduction
- Association Rules
- Anwendungen
- Exploratory Data Analysis
- Outlier Detection
- Data Compression
- Denoising
Reinforcement Learning
- Input: Current observed State from Environment and reward score
- Output: Agent chooses next action
- Methoden:
- Control
- Q-Learning
- Applications
- Games (Chess, Go)
Recap: Supervised Learning
- Viele Machine Learning Probleme lassen sich in einfache Optimierungsprobleme überführen
- Fehlerquadratsumme (Methode der kleinsten Quadrate)
Recap: Lineare Regression
- Problem: Wir wollen eine gute Approximation der Daten durch eine Gerade (Linearitätsforderung)
- Vorgehen: Gerade in die Punktwolke legen und Parameter solange anpassen bis Fehler (Epsilon) minimal sind
- Wobei Epsilon:
\epsilon_i = y_i - \hat{y}_i
- Wobei Epsilon:
- Wir suchen eine Gerade, mit der Bedingung, dass die quadratische Summe aller Epsilon minimal wird
\min \sum_{i=1}^{n} \epsilon_i^2 = \min \sum_{i=1}^{n} (y_i - \hat{y}_i)^2
- Zur Analyse immer einen Scatterplot machen
- Dabei sieht man von Auge bereits ob eine Linearität vorhanden ist
Unsupervised Learning
- Keine Labels
- Es gibt keine Outcome Variable
- Wie kann man sich das vorstellen
- Data is generated by some unknown process
- Unsupervised learning finds patterns in the data
- Methoden
- Clustering (k-Means, Hierarchical, DBSCAN)
- Density Estimation: Gaussian Mixture Models
- Dimensionality Reduction
- Neural Networks
- Autoencoder
- Generative Adversarial Models
- Restricted Boltzman Machines
Clustering
- Clustering ist der Prozess der eine Gruppe in Untergruppen aufteilt
- Elemente in Untergruppen sind sich ähnlich
- Schwierig ist es ein Ähnlichkeitsmass (measure) zu finden
- Die Anzahl der Cluster hängt von der Anwendung ab
- intra-cluster measure -> tightness (Homogenität) of the cluster
- inter-cluster measure -> Daten sollen so gewählt werden, dass sie sich nicht überlappen
- Hauptproblem des Clusterings
- Wir haben einen Datensatz D den wir clustern wollen
- D enthält Altersangaben
- Wir schicken D durch einen Clusteringalgorithmus
- Wir erhalten C1-3
- C1: 20-30
- C2: 40-50
- C3: 60-80
- K-Means braucht eine Angabe wieviele Cluster zu erzeugen sind
- Wieviele Cluster sind denn aber sinnvoll?
- Zwei wesentliche Forderungen beim Clustern
- Cluster sollen homogen sein (gleich verteilte Abstände innerhalb des Clusters)
- Cluster sollen heterogen getrennt sein (nicht überlappen)
- Wir sehen: Die Anzahl der Cluster ist nicht eindeutig
- C1,C2: Schreibweise
|C| = 2"Die Grösse der Cluster C ist 2"
- C1,C2: Schreibweise
- Wie messen wir die Homogenität in folgendem Fall?
- c1 = {2,4,6}
- c2 = {2,15,80}
- Man könnte sich die Abstände zum Centroiden anschauen
- Hom(C1) > Hom(C2)
Anwendung von Clustering
- Ähnlichkeit von Kunden, Krankheiten, Produkte
- Betrugserkennung
- Bspw. Intrusion Detection in Netzwerken
- Vergleich session duration zu transmitted bytes
- ssh -> lange Session Zeit aber nicht viel Daten
- web traffic -> kurze Session Zeit aber viele Daten
- Alle Verbindungen, die nicht in diese Cluster passen, sind "verdächtig"
Dimensionsreduktion von Datensets
- Warum soll man Dimensionen reduzieren?
- Man fischt sich diejenigen Dimensionen heraus, welche für die gewünschte Information wichtig sind
- Alle ohne nützliche Information werden eliminiert (Projektion der gewünschten Dimension)
- Eine Art wie man Dimensionen reduzieren kann, ist PCA
- Principal Component Analysis
- Vereinfacht komplexe Datensets und behält dabei die wichtigsten Strukturen
- Wie funktioniert eine Dimensionsreduktion dim1000 zu dim2 mit PCA?
- PC1: Man legt eine Achse in die Richtung wo die Varianz maximal ist
- PC2: Richtung der maximalen verbleibenden Varianz, die orthogonal zu PC1 steht
- Bei einer (symmetrischen) Kovarianzmatrix sind die Eigenvektoren ohnehin paarweise orthogonal
- Allgemein: PC$_k$ = Eigenvektor zum $k$-grössten Eigenwert der Kovarianzmatrix
Begriffe in der Dimensionsreduktion
- Varianz
- Streuung um den Mittelwert
- Population vs. Stichprobe (Bessel-Korrektur mit
n-1):
\sigma^2 = \frac{1}{n}\sum_{i=1}^{n}(x_i - \bar{x})^2 \qquad s^2 = \frac{1}{n-1}\sum_{i=1}^{n}(x_i - \bar{x})^2
- Kovarianz
- Mass für das gemeinsame Streuen zweier Variablen (steigen sie zusammen oder gegenläufig?)
- Hinweis: Kovarianz ist nicht die Steigung — die Regressionssteigung ist
\beta = \mathrm{Cov}(X,Y)/\mathrm{Var}(X) - Ist nicht begrenzt im Gegensatz zur Korrelation (
\rho = \mathrm{Cov}(X,Y)/(\sigma_X \sigma_Y) \in [-1, 1])
\mathrm{Cov}(X,Y) = \frac{1}{n}\sum_{i=1}^{n}(x_i - \bar{x})(y_i - \bar{y})
- Kovarianz-Matrix
- Für zentrierte Datenmatrix
X_c \in \mathbb{R}^{n \times d}(Mittelwert pro Spalte abgezogen) d \times d, symmetrisch, positiv semidefinit- Diagonale = Varianzen, off-diagonal = Kovarianzen
- Für zentrierte Datenmatrix
\Sigma = \frac{1}{n}\, X_c^{\top} X_c \qquad \Sigma_{jk} = \mathrm{Cov}(X_j, X_k)
- Eigenwert-Problem (Lambda)
- Korrektur: die Eigenwerte
\lambdasind die Nullstellen des charakteristischen Polynoms (nicht die Eigenvektoren) - Definition:
A\mathbf{v} = \lambda \mathbf{v} \iff (A - \lambda I)\mathbf{v} = \mathbf{0} - Nicht-triviale Lösung existiert nur, wenn
\det(A - \lambda I) = 0(charakteristisches Polynom) - Vorgehen: 1)
\lambdaaus dem char. Polynom bestimmen, 2) je\lambdaden Eigenvektor\mathbf{v}aus(A - \lambda I)\mathbf{v} = \mathbf{0}lösen - In der PCA: Eigenwert
\lambda_i= Varianz entlang PC$_i$; Gesamtvarianz= \mathrm{tr}(\Sigma) = \sum_i \lambda_i; erklärter Varianzanteil= \lambda_i / \sum_j \lambda_j
- Korrektur: die Eigenwerte
PCA Vorgehen
- Daten zentrieren (Mittelwert pro Feature abziehen); bei unterschiedlichen Skalen zusätzlich standardisieren (auf Einheitsvarianz)
- Kovarianzmatrix
\Sigmaberechnen - Eigenwert-Problem lösen -> Eigenwerte
\lambda_iund zugehörige Eigenvektoren\mathbf{v}_i - Endkoordinatensystem bestimmen: Eigenvektoren nach Eigenwerten absteigend sortieren, die Top-
kals neue Achsen wählen und die Daten darauf projizieren (Z = X_c W, mitW= Matrix der Top-kEigenvektoren)