Machine Learning for Engineers II and Advanced Methods - Cheatsheet
Random Forests und Gradient Boosting
Definition:
Random Forests: Ensemble aus Entscheidungsbäumen, kombiniert durch Mehrheitsabstimmung. Gradient Boosting: Sequenzielles Training von Entscheidungsbäumen zur Minimierung eines Fehlers.
Details:
- Random Forests: viele Entscheidungsbäume, jeder auf zufälligen Teilmengen der Daten trainiert
- Reduziert Überanpassung (Overfitting)
- Weniger sensitiv gegenüber einzelnen Ausreißern
- Gradient Boosting: adaptive Methode, die Modelle nacheinander trainiert
- Verwendet Verlustfunktion zur Optimierung
- Typischerweise effizienter aber anfälliger für Overfitting
- Beliebte Implementationen: XGBoost, LightGBM, CatBoost
Hyperparametertuning und Cross-Validation
Definition:
Optimierung der Hyperparameter von ML-Modellen und Validierung der Modellauswahl.
Details:
- Hyperparameter: Parameter, die vor dem Training festgelegt werden (z.B. Lernrate, Anzahl der Bäume).
- Typen der Cross-Validation: K-Fold, Leave-One-Out, Stratified K-Fold.
- K-Fold Cross-Validation: Daten in k Teile geteilt, Modell k-mal trainiert, jedes Mal andere Teile als Validationssatz.
- Grid Search: Durchläuft Kombinationen der Hyperparameter.
- Random Search: Zufällige Stichprobe von Hyperparameterkombinationen.
- Ziel: Modellperformance bewerten und Generalisierbarkeit sicherstellen.
K-Means und hierarchisches Clustering
Definition:
K-Means: partitioniert Daten in k Cluster, minimiert innerhalb-Cluster-Varianz. Hierarchisches Clustering: erstellt Dendrogramm, verbindet Datenpunkte zu hierarchischen Clustern.
Details:
- K-Means: wähle k, initialisiere Zentren zufällig, weise Punkte zu nächstgelegenem Zentrum, aktualisiere. Wiederholen bis Konvergenz
- Hierarchisches Clustering: agglomerativ (bottom-up) oder divisiv (top-down)
- Dendrogramm: visualisiert Cluster-Hierarchie
- Distanzmaße: z.B. euklidisch, Manhattan
- Kriterien: Silhouettenkoeffizient, Elbow-Methode für k
- Beide: unüberwachtes Lernen, kein Label benötigt
PCA und t-SNE
Definition:
PCA und t-SNE sind Dimensionreduktionsverfahren.
Details:
- PCA: Hauptkomponentenanalyse zur Reduktion hoher Dimensionalität durch Finden der Hauptkomponenten (Eigenvektoren).
- t-SNE: Nichtlineare Methode zur Visualisierung hochdimensionaler Daten durch Projektion auf geringdimensionalen Raum.
- PCA Methoden: \(X = U \Sigma V^T\)
- t-SNE Ziel: Minimierung der Kullback-Leibler-Divergenz.
Neuronale Netze und Aktivierungsfunktionen
Definition:
Neuronale Netze modellieren komplexe Zusammenhänge durch Schichten von Neuronen. Aktivierungsfunktionen bestimmen die Ausgabe eines Neurons basierend auf dessen Eingabe.
Details:
- Neuronale Netze bestehen aus Eingabeschicht, versteckten Schichten und Ausgabeschicht.
- Aktivierungsfunktionen führen Nichtlinearitäten ein, z.B. Sigmoid, ReLU, Tanh.
- Formel Sigmoid: \( \text{sigmoid}(x) = \frac{1}{1 + e^{-x}} \)
- Formel ReLU: \( \text{ReLU}(x) = \text{max}(0, x) \)
- Formel Tanh: \( \text{tanh}(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} \)
CNNs und RNNs
Definition:
Convolutional Neural Networks (CNNs) verwenden Faltungen und sind für die Verarbeitung von Bilddaten optimiert. Recurrent Neural Networks (RNNs) haben Schleifen, um sequentielle Daten zu verarbeiten.
Details:
- CNNs: Schichten von Convolutional (Faltungen), Pooling und Fully Connected.
- RNNs: Neuronen haben Rückkopplungen um zeitliche Abfolgen zu lernen.
- CNNs Architektur: Input-Conv-ReLU-Pool-FC-Output.
- RNNs: Haben den Vanishing Gradient Problem, gelöst durch LSTM oder GRU.
- Formel CNN: \[ (I \times K)_{i,j} = \text{sum}(I[i+m, j+n] \times K[m,n]) \]
- Formel RNN: \[ h_t = \tanh(W_{hh}h_{t-1} + W_{xh}x_t) \]
TensorFlow und PyTorch
Definition:
TensorFlow und PyTorch sind beliebte Open-Source-Bibliotheken für maschinelles Lernen und Deep Learning.
Details:
- Beide unterstützen dynamische und statische Berechnungsgraphen (TensorFlow: Code als Graph oder Eager Execution, PyTorch: nur dynamische Graphen).
- Hauptunterschiede: TensorFlow hat umfangreiche Produktionswerkzeuge und Deployment-Möglichkeiten, PyTorch ist für Forschung geeignet wegen seiner einfacheren und Python-ähnlichen Syntax.
- Beide bieten umfangreiche Bibliotheken für neuronale Netze, Optimierungsmethoden und Tools zur Fehleranalyse.
- Beide beinhalten Funktionen zur Nutzung von GPUs zur Beschleunigung der Berechnungen.
- Keras kann mit TensorFlow als Backend verwendet werden.
- PyTorch bietet mit TorchScript Möglichkeiten zur Optimierung und Serialisierung von Modellen.