Deep Learning - Cheatsheet
Grundkonzepte von Neuronen und Schichten
Definition:
Grundelemente eines neuronalen Netzes. Neuronen führen gewichtete Summation und Aktivierungsfunktion durch. Schichten bestehen aus mehreren Neuronen und sind in Eingabe-, versteckte und Ausgabeschichten unterteilt.
Details:
- Neuron: Berechnet gewichtete Summe \(z = \sum_{i} w_i x_i + b\), gibt Ergebnis durch Aktivierungsfunktion \(a = \sigma(z)\) weiter
- Gewichte (\(w\)) und Bias (\(b\)): Parameter, die während des Trainings angepasst werden
- Aktivierungsfunktion (\(\sigma(z)\)): Nichtlinearität - ReLU, Sigmoid, Tanh
- Schichten (Layer): Koppelung von Neuronen - Eingabeschicht, mehrere versteckte Schichten, Ausgabeschicht
Convolutional und Pooling Schichten
Definition:
Convolutional-Schichten extrahieren Merkmale durch Faltung, Pooling-Schichten reduzieren die räumliche Größe der Repräsentation.
Details:
- Convolutional Layer:
- Nutzt Filter/Kernels zum Extrahieren von Merkmalen.
- Ergebnis: Feature Maps
- Aktivierungsfunktion: häufig ReLU
- Pooling Layer:
- Reduziert die Abmessungen (Downsampling).
- Max Pooling: wählt maximalen Wert.
- Average Pooling: berechnet Durchschnitt.
- Verhindert Overfitting, reduziert Rechenaufwand.
LSTM- und GRU-Architekturen
Definition:
LSTM (Long Short-Term Memory) und GRU (Gated Recurrent Unit) sind erweiterte RNN-Architekturen zur Verarbeitung und Modellierung von Sequenzdaten, um Probleme mit Langzeitabhängigkeiten zu überwinden.
Details:
- LSTM: Besteht aus Zellzustand, Eingabe-, Vergessens- und Ausgangsgates
- GRU: Kombination aus Update- und Reset-Gates zur Reduktion der Komplexität im Vergleich zu LSTM
- Wichtige Formeln für LSTM:
- Vergessensgate: \( f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f) \)
- Eingabegate: \( i_t = \sigma(W_i \cdot [h_{t-1}, x_t] + b_i) \)
- Zellzustandsupdate: \( \tilde{C}_t = \tanh(W_C \cdot [h_{t-1}, x_t] + b_C) \)
- Aktualisierter Zellzustand: \( C_t = f_t * C_{t-1} + i_t * \tilde{C}_t \)
- Ausgabegate: \( o_t = \sigma(W_o \cdot [h_{t-1}, x_t] + b_o) \)
- Endgültiger Output: \( h_t = o_t * \tanh(C_t) \)
- Wichtige Formeln für GRU:
- Updategate: \( z_t = \sigma(W_z \cdot [h_{t-1}, x_t]) \)
- Resetgate: \( r_t = \sigma(W_r \cdot [h_{t-1}, x_t]) \)
- Aktualisierter Hidden State: \( \tilde{h}_t = \tanh(W_h \cdot [r_t * h_{t-1}, x_t]) \)
- Endgültiger Hidden State: \( h_t = (1 - z_t) * h_{t-1} + z_t * \tilde{h}_t \)
Dimensionenreduktionstechniken wie PCA und t-SNE
Definition:
Methoden zur Reduktion der Dimensionalität in Daten, um deren Visualisierung und Analyse zu erleichtern.
Details:
- PCA (Principal Component Analysis): Lineare Methode zur Reduktion der Dimensionalität durch Projektionsmaximierung der Varianz.
- t-SNE (t-Distributed Stochastic Neighbor Embedding): Nichtlineare Methode, die lokale Struktur in Daten bewahrt und oft für Visualisierungen in 2D oder 3D verwendet wird.
- PCA: Eigenvektoren und Eigenwerte aus Kovarianzmatrix berechnen, Hauptkomponenten auswählen.
- PCA: \(Z = XW\) wobei \(X\) die zentrierten Daten und \(W\) die Matrix der Hauptkomponenten ist.
- t-SNE: Minimiert Kullback-Leibler-Divergenz zwischen Wahrscheinlichkeitsverteilungen im hohen und niedrigen Dimensionen.
- t-SNE: \(P_{ij}\) in hohem Raum und \(Q_{ij}\) in niedrigem Raum durch Student-t Verteilung approximiert.
- Datenvorverarbeitung: Normalisierung und Standardisierung oft notwendig.
- Anwendung: Datenvisualisierung, Vorverarbeitung für Machine Learning Modelle.
Strategien zur Exploration und Exploitation im DRL
Definition:
Strategien zur Exploration und Exploitation im Deep Reinforcement Learning (DRL) helfen beim Ausbalancieren zwischen der Entdeckung neuer Zustände (Exploration) und der Nutzung vorhandenen Wissens (Exploitation)
Details:
- Exploration: Erforschen neuer Zustände/Aktionen, um Umgebungsverständnis zu erweitern. Methoden: \(\epsilon\)-greedy, Zufallsauswahl, Boltzmann Exploration.
- Exploitation: Nutzung des vorhandenen Wissens zur Maximierung der Belohnung. Methoden: Greedy-Policy (immer beste aktuelle Aktion wählen).
- \(\epsilon\)-greedy: Mit Wahrscheinlichkeit \( 1-\epsilon \) die beste bekannte Aktion wählen, mit Wahrscheinlichkeit \( \epsilon \) eine zufällige Aktion wählen.
- Boltzmann Exploration: Wahrscheinlichkeiten für Aktionen basierend auf aktuellen Q-Werten berechnen.
- Balancing: Ausbalancieren von Exploration und Exploitation, oft durch anfänglich hohe und dann abnehmende Exploration.
- UCB (Upper Confidence Bound): Balance zwischen Exploration und Exploitation durch Belohnungswert und Unsicherheit der Aktion.
Gradientenabstieg und Optimierungstechniken
Definition:
Gradientenabstieg: Verfahren zur Minimierung einer Funktion, indem iterativ in die entgegengesetzte Richtung des Gradienten gegangen wird.
Details:
- Gradient: Ableitung der Verlustfunktion, gibt die Richtung des steilsten Anstiegs an.
- Schrittweite (Lernrate \(\text{\alpha}\)): entscheidend für Konvergenzgeschwindigkeit und Stabilität.
- Stochastic Gradient Descent (SGD): Aktualisiert Parameter basierend auf einzelnen Trainingsbeispielen.
- Mini-Batch Gradient Descent: Kompromiss zwischen SGD und Batch Gradient Descent.
- Batch Gradient Descent: Verwendet den gesamten Trainingssatz für jeden Schritt.
- Optimierungstechniken:
- Momentum: Beschleunigt SGD, indem es vergangene Gradienten berücksichtigt.
- Adam: Kombiniert Momentum und Adaptive Learning Rates.
- RMSprop: Verwendet gleitenden Durchschnitt der quadratischen Gradienten.
- Adagrad: Adaptive Lernrate, die häufig aktualisierte Parameter verlangsamt.
Überanpassung und Regularisierung
Definition:
Überanpassung (Overfitting): Modell passt sich zu stark an Trainingsdaten an, verliert Generalisierungsfähigkeit. Regularisierung: Techniken zur Reduktion von Überanpassung.
Details:
- Überanpassung: hohe Trainingsgenauigkeit, aber schlechte Validierungsgenauigkeit
- Regularisierungsmethoden: L1-Regularisierung (\( L_{1} = \lambda \sum_{j} |w_{j}| \)), L2-Regularisierung (\( L_{2} = \lambda \sum_{j} w_{j}^{2} \)), Dropout, Datenaugmentation
- Optimale Modellkomplexität durch Regularisierung
- Hyperparameterwahl wichtig (z.B. \(\lambda\) für L1/L2)
Autoencoder und ihre Anwendungen
Definition:
Autoencoder sind neuronale Netzwerke, die darauf trainiert werden, Eingabedaten zu kodieren und dann aus der kodierten Darstellung wiederherzustellen.
Details:
- Bestandteile: Encoder, Bottleneck, Decoder
- Ziel: Rekonstruktion der Eingabedaten
- Verlustfunktion: meist Mean Squared Error (MSE)
- Anwendungen: Datenkompression, Rauschunterdrückung, Anomalieerkennung, Bild- und Sprachverarbeitung
- Varianten: Variational Autoencoder (VAE), Denoising Autoencoder, Sparse Autoencoder