Schritt 5: Hyperparameter abstimmen
Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Wir mussten zum Definieren und Trainieren des Modells eine Reihe von Hyperparametern auswählen. Wir basierten auf Intuition, Beispielen und Best Practice-Empfehlungen. Unsere erste Wahl von Hyperparameter-Werten führt jedoch möglicherweise nicht zu den besten Ergebnissen. Dies ist nur ein guter Ausgangspunkt für das Training. Jedes Problem ist anders und die Abstimmung dieser Hyperparameter wird dazu beitragen, unser Modell zu verfeinern, um die Besonderheiten des vorliegenden Problems besser darzustellen. Sehen wir uns einige der verwendeten Hyperparameter und ihre Bedeutung bei:
Anzahl der Ebenen im Modell: Die Anzahl der Ebenen in einem neuronalen Netzwerk ist ein Indikator für ihre Komplexität. Wir müssen diesen Wert mit Bedacht auswählen. Bei zu vielen Ebenen erhält das Modell zu viele Informationen zu den Trainingsdaten, was zu einer Überanpassung führt. Zu wenige Ebenen können die Lernfähigkeit des Modells beeinträchtigen und zu einer Unteranpassung führen. Für Textklassifizierungs-Datasets haben wir mit ein-, zwei- und dreischichtigen MLPs experimentiert. Modelle mit zwei Ebenen schnitten gut ab und manche sogar besser als dreistufige Modelle. Ebenso haben wir sepCNNs mit vier und sechs Ebenen ausprobiert und die Vier-Schichten-Modelle erzielten eine gute Leistung.
Anzahl der Einheiten pro Ebene: Die Einheiten in einer Ebene müssen die Informationen für die Transformation enthalten, die eine Ebene ausführt. Bei der ersten Ebene hängt dies von der Anzahl der Features ab. In nachfolgenden Ebenen hängt die Anzahl der Einheiten davon ab, ob die Darstellung aus der vorherigen Ebene maximiert oder minimiert werden soll. Versuchen Sie, den Informationsverlust zwischen Ebenen zu minimieren. Wir haben Einheitenwerte im Bereich [8, 16, 32, 64]
ausprobiert und 32/64 Einheiten funktionierten gut.
Ausstiegsrate: Ausstiegsebenen werden im Modell für die Normalisierung verwendet. Sie definieren den Anteil der Eingabe, die als Vorsichtsmaßnahme bei Überanpassung verworfen wird. Empfohlener Bereich: 0,2–0,5.
Lernrate: Dies ist die Geschwindigkeit, mit der sich die Gewichtungen des neuronalen Netzwerks zwischen Iterationen ändern. Eine hohe Lernrate kann zu starken Schwankungen bei den Gewichtungen führen und wir finden möglicherweise nie ihre optimalen Werte. Eine niedrige Lernrate ist gut, aber das Modell benötigt mehr Iterationen, um konvergieren zu können. Es empfiehlt sich, bei 1e-4 zu beginnen. Erhöhen Sie diesen Wert, wenn das Training sehr langsam ist. Wenn Ihr Modell nicht lernt, versuchen Sie, die Lernrate zu senken.
Es gibt einige zusätzliche abgestimmte Hyperparameter, die für unser sepCNN-Modell spezifisch sind:
Kernel-Größe: Die Größe des Faltungsfensters. Empfohlene Werte: 3 oder 5.
Einbettungsdimensionen: Die Anzahl der Dimensionen, die wir für die Darstellung von Worteinbettungen verwenden möchten, d.h. die Größe jedes Wortvektors. Empfohlene Werte: 50–300 In unseren Experimenten haben wir GloVe-Einbettungen mit 200 Dimensionen und einer vortrainierten Einbettungsebene verwendet.
Probieren Sie diese Hyperparameter aus, um herauszufinden, was am besten funktioniert. Nachdem Sie die Hyperparameter mit der besten Leistung für Ihren Anwendungsfall ausgewählt haben, kann Ihr Modell bereitgestellt werden.
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-07-27 (UTC)."],[[["\u003cp\u003eInitial hyperparameter choices provide a starting point for model training, but further tuning is crucial to optimize performance for specific text classification problems.\u003c/p\u003e\n"],["\u003cp\u003eThe number of layers in a neural network impacts its complexity, with two-layer MLPs and four-layer sepCNNs showing promising results in text classification.\u003c/p\u003e\n"],["\u003cp\u003eKey hyperparameters to adjust include the number of units per layer (32 or 64 performed well), dropout rate (0.2-0.5 recommended), and learning rate (start low and adjust based on training progress).\u003c/p\u003e\n"],["\u003cp\u003eFor sepCNN models, optimizing kernel size (3 or 5) and embedding dimensions (50-300) further enhances performance.\u003c/p\u003e\n"],["\u003cp\u003eExperimenting with different hyperparameter combinations is essential to achieve the best model performance for your specific use case before deployment.\u003c/p\u003e\n"]]],[],null,["# Step 5: Tune Hyperparameters\n\nWe had to choose a number of hyperparameters for defining and training the\nmodel. We relied on intuition, examples and best practice recommendations. Our\nfirst choice of hyperparameter values, however, may not yield the best results.\nIt only gives us a good starting point for training. Every problem is different\nand tuning these hyperparameters will help refine our model to better represent\nthe particularities of the problem at hand. Let's take a look at some of the\nhyperparameters we used and what it means to tune them:\n\n- **Number of layers in the model** : The number of layers in a neural network is\n an indicator of its complexity. We must be careful in choosing this value. Too\n many layers will allow the model to learn too much information about the\n training data, causing overfitting. Too few layers can limit the model's\n learning ability, causing underfitting. For text classification datasets, we\n experimented with one, two, and three-layer MLPs. Models with two layers\n performed well, and in some cases better than three-layer models. Similarly, we\n tried [sepCNN](https://developers.google.com/machine-learning/glossary?utm_source=DevSite&utm_campaign=Text-Class-Guide&utm_medium=referral&utm_content=glossary&utm_term=sepCNN#depthwise-separable-convolutional-neural-network-sepcnn)s\n with four and six layers, and the four-layer models performed well.\n\n- **Number of units per layer** : The units in a layer must hold the information\n for the transformation that a layer performs. For the first layer, this is\n driven by the number of features. In subsequent layers, the number of units\n depends on the choice of expanding or contracting the representation from the\n previous layer. Try to minimize the information loss between layers. We tried\n unit values in the range `[8, 16, 32, 64]`, and 32/64 units worked well.\n\n- **Dropout rate** : Dropout layers are used in the model for\n [regularization](https://developers.google.com/machine-learning/glossary/?utm_source=DevSite&utm_campaign=Text-Class-Guide&utm_medium=referral&utm_content=glossary&utm_term=dropout-regularization#dropout_regularization).\n They define the fraction of input to drop as a precaution for overfitting.\n Recommended range: 0.2--0.5.\n\n- **Learning rate**: This is the rate at which the neural network weights change\n between iterations. A large learning rate may cause large swings in the weights,\n and we may never find their optimal values. A low learning rate is good, but the\n model will take more iterations to converge. It is a good idea to start low, say\n at 1e-4. If the training is very slow, increase this value. If your model is not\n learning, try decreasing learning rate.\n\nThere are couple of additional hyperparameters we tuned that are specific to our\nsepCNN model:\n\n1. **Kernel size**: The size of the convolution window. Recommended values: 3 or\n 5.\n\n2. **Embedding dimensions**: The number of dimensions we want to use to represent\n word embeddings---i.e., the size of each word vector. Recommended values: 50--300.\n In our experiments, we used GloVe embeddings with 200 dimensions with a pre-\n trained embedding layer.\n\nPlay around with these hyperparameters and see what works best. Once you have\nchosen the best-performing hyperparameters for your use case, your model is\nready to be deployed."]]