Hyperparameter

Hyperparameter spielen eine wesentliche Rolle in der Trainingsphase der Machine Learning Modelle. Unter diesem Begriff versteht man ganz allgemein Parameter, die vor dem Durchlaufen des eigentlichen Trainings festgelegt werden müssen und den modellspezifischen Algorithmus beeinflussen. Die Parameter werden im Gegensatz zu den Modellinternen Parametern (wie bspw. die Koeffizienten bei einer linearen Regression) nicht auf Basis der vorliegenden Daten geschätzt, sondern müssen manuell gesetzt werden.

Falls der Nutzer / die Nutzerin nicht explizit Hyperparameter setzt, werden die Standardwerte der jeweiligen Modelle genutzt. Das Ziel der Trainingsphase besteht meist darin, die Hyperparameter zu optimieren um die bestmöglichen Ergebnisse zu erzielen – daher werden in den seltensten Fällen die Standardparameter beibehalten. Verfahren zur Optimierung der Hyperparameter werden in einem gesonderten Artikel behandelt, darunter GridSearch und RandomSearch. Dieser Beitrag stellt nachfolgend die wichtigsten Hyperparameter der grundlegenden Lernverfahren vor und erläutert grundlegend, welchen Einfluss diese auf das Training der Modelle haben. Eine detaillierte Beschreibung zu den einzelnen Hyperparametern kann zum Beispiel auf der jeweiligen Seite von Sklearn zu den Lernverfahren gefunden werden.

Übersicht Lernverfahren & HP #

LernverfahrenWichtigste Hyperparameter
K-Nearest-Neighboursn_neighbours – Anzahl der Nachbarn, die bei der Bestimmung neuer Datenpunkte betrachtet werden.

metric – Maß zur Berechnung der Distanz zwischen Datenpunkten, um die nächsten Nachbarn bestimmen zu können. Standardwert ist die Minkowski-Distanz, die eine allgemeine Form der euklidischen Distanz darstellt.

p – Parameter für die Minkowski Distanz. Der Standardwert ist 2, was der euklidischen Distanz entspricht (1 wäre z.B. Manhatten Distance).
Decision Treecriterion – Funktion, um bei einem Split die Qualität zu messen und damit ein Attribut auszuwählen.

max_depth – Legt die maximale Tiefe des Baumes und damit fest, wie viele Splits maximal durchgeführt werden dürfen, bis ein Blatt erreicht sein muss.

min_samples_leaf – Minimale Anzahl an Samples bzw. Datenpunkten, die in einem Blatt vorhanden sein muss.

min_samples_split – Minimale Anzahl an Samples bzw. Datenpunkten, die für einen Split eines Knoten innerhalb des Baumes erforderlich sein muss.

max_leaf_nodes – Maximale Anzahl an Blattknoten des Baumes.
Support Vector Machinekernel – Gibt den Kernel Typen an, der innerhalb des Algorithmus zur Transformation der Daten genutzt werden soll. Je nach Kernel können nicht alle Daten gut getrennt werden. Am meisten genutzt wird der rbf-Kernel (“radial basis function”).

C – Parameter zur Regularisierung des Trainings, indem für falsch klassifizierte Punkte eine Strafe eingeführt wird (höheres C bedeutet höhere Strafe).

gamma – Kernel Koeffizient (nicht für alle Kernel erforderlich), der festlegt, wie eng Grenzen um die einzelnen Datenpunkte gelegt werden sollen.
Logistic Regressionpenalty – Parameter zur Regularisierung, der den zu nutzenden Strafterm festlegt.

C – Ähnlich zur Support Vector Machine wird eingestellt, wie stark falsch klassifizierte Datenpunkte bestraft werden.

tol – Toleranz für den Solver, wann die Optimierung nicht weiter fortgesetzt werden soll.
Neural Networkshidden layers – Anzahl an Schichten, die sich zwischen Input- und Output-Layer befinden.

units per layer – Anzahl der Neuronen je Schicht, oder im Falle von Convolution Layers Anzahl der Filter.

activation functionAktivierungsfunktion, die von den Neuronen genutzt werden soll.

learning rate – Faktor für das Gradientenabstiegsverfahren, also die Optimierung der Gewichte der Neuronen. Sowohl zu große als auch zu kleine Werte können Probleme hervorrufen, ein Optimum kann z.B. mit einem LearningRateScheduler herausgefunden werden.

Die hier aufgezählten Hyperparameter der verschiedenen Lernverfahren stellen jeweils nur eine Auswahl dar und sind nicht vollständig. Bei Verwendung eines bestimmten Verfahrens sollte daher überprüft werden, ob es weitere Hyperparameter gibt, die es zu optimieren gilt. 

Weiterführende Links:
Parameter Vs. Hyperparameter: https://machinelearningmastery.com/difference-between-a-parameter-and-a-hyperparameter/
Hyperparameter Definition: https://databraineo.com/data-science/hyperparameter/ 

Schreibe einen Kommentar