feature: add NSL lession 1
This commit is contained in:
@@ -0,0 +1,183 @@
|
||||
# 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 will $Y$ (Zielgrösse) vorhersagen
|
||||
- Gesucht ist eine Funktion $f$ mit $\hat{y} = f(x)$ für eine Vorhersage
|
||||
- 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$
|
||||
- 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
|
||||
1. Cluster sollen homogen sein (gleich verteilte Abstände innerhalb des Clusters)
|
||||
2. 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"
|
||||
- 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?
|
||||
1. PC1: Man legt eine Achse in die Richtung wo die Varianz maximal ist
|
||||
2. 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):
|
||||
|
||||
$$
|
||||
\Sigma = \frac{1}{n}\, X_c^{\top} X_c
|
||||
\qquad
|
||||
\Sigma_{jk} = \mathrm{Cov}(X_j, X_k)
|
||||
$$
|
||||
|
||||
- $d \times d$, symmetrisch, positiv semidefinit
|
||||
- Diagonale = Varianzen, off-diagonal = Kovarianzen
|
||||
|
||||
- Eigenwert-Problem (Lambda)
|
||||
- Korrektur: die *Eigenwerte* $\lambda$ sind die Nullstellen des charakteristischen Polynoms (nicht die Eigenvektoren)
|
||||
- $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 \quad \text{(charakteristisches Polynom)}
|
||||
$$
|
||||
|
||||
- Vorgehen: 1) $\lambda$ aus dem char. Polynom bestimmen, 2) je $\lambda$ den 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$
|
||||
|
||||
## PCA Vorgehen
|
||||
|
||||
1. Daten zentrieren (Mittelwert pro Feature abziehen); bei unterschiedlichen Skalen zusätzlich standardisieren (auf Einheitsvarianz)
|
||||
2. Kovarianzmatrix $\Sigma$ berechnen
|
||||
3. Eigenwert-Problem lösen -> Eigenwerte $\lambda_i$ und zugehörige Eigenvektoren $\mathbf{v}_i$
|
||||
4. Endkoordinatensystem bestimmen: Eigenvektoren nach Eigenwerten absteigend sortieren, die Top-$k$ als neue Achsen wählen und die Daten darauf projizieren ($Z = X_c W$, mit $W$ = Matrix der Top-$k$ Eigenvektoren)
|
||||
Reference in New Issue
Block a user