5. Adım: Hiper parametreleri ayarlayın
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Modeli tanımlamak ve eğitmek için bir dizi hiperparametre seçmek zorunda kaldık. Sezgilerden, örneklerden ve en iyi uygulama önerilerinden yararlandık. Bununla birlikte, ilk hiperparametre değerlerimizi seçmemiz en iyi sonuçları vermeyebilir.
Eğitim için iyi bir başlangıç noktası sağlıyor. Her sorun farklıdır ve bu hiperparametrelerde ince ayar yapmak, modelimizi söz konusu sorunun özelliklerini daha iyi temsil edecek şekilde hassaslaştırmaya yardımcı olur. Kullandığımız hiperparametrelerden bazılarına ve bu parametrelerin nasıl ayarlanmasına göz atalım:
Modeldeki katman sayısı: Bir nöral ağdaki katman sayısı, karmaşıklığın bir göstergesidir. Bu değeri seçerken dikkatli olmalıyız. Çok fazla katman olması, modelin eğitim verileri hakkında çok fazla bilgi edinmesine neden olarak fazla sığdırmaya neden olur. Çok az katman eklemek, modelin öğrenme kabiliyetini sınırlandırabilir ve yetersiz uyuma neden olabilir. Metin sınıflandırma veri kümeleri için bir, iki ve üç katmanlı MLP'lerle denemeler yaptık. İki katmanlı modeller iyi performans gösterdi ve bazı durumlarda üç katmanlı modellerden daha iyiydi. Benzer şekilde, dört ve altı katmanlı sepCNN'leri denedik ve dört katmanlı modellerin performansı iyiydi.
Katman başına birim sayısı: Bir katmandaki birimler, katmanın gerçekleştirdiği dönüşümle ilgili bilgileri içermelidir. İlk katmanda, bu işlem özellik sayısına göre belirlenir. Sonraki katmanlarda, birim sayısı temsilin önceki katmanda genişletilip daraltılmasına bağlı olarak belirlenir. Katmanlar arasındaki bilgi kaybını en aza indirmeye çalışın. [8, 16, 32, 64]
aralığındaki birim değerlerini denedik ve 32/64 birimleri iyi çalıştı.
Çıkma oranı: Modelde, ayrılma katmanları normalleştirme için kullanılır.
Fazladan faydalanmaya yönelik bir önlem olarak, düşülecek giriş oranı tanımlanır.
Önerilen aralık: 0,2–0,5.
Öğrenme hızı: Nöral ağ ağırlıklarının tekrarlar arasında değişme hızıdır. Yüksek bir öğrenme hızı, ağırlıklarda büyük dalgalanmalara neden olabilir ve hiçbir zaman en uygun değerlerini bulamayabiliriz. Düşük bir öğrenim oranı iyi olsa da model, daha fazla iterasyon yapar. Düşük bir tutarla başlamanızı öneririz.
Örneğin, 1-4. Eğitim çok yavaşsa bu değeri artırın. Modeliniz öğrenmiyorsa öğrenme hızını azaltmayı deneyin.
Ayarladığımız, sepCNN modelimize özgü birkaç hiperparametre vardır:
Çekirdek boyutu: Evrişim penceresinin boyutu. Önerilen değerler: 3 veya
5.
Yerleştirme boyutları: Kelime yerleştirmeyi temsil etmek için kullanmak istediğimiz boyutların sayısı (yani her bir vektör vektörünün boyutu). Önerilen değerler: 50-300.
Yaptığımız denemelerde, önceden eğitilmiş bir yerleştirme katmanıyla 200 boyuta sahip GloVe yerleştirmeleri kullandık.
Bu hiper parametrelerle denemeler yapın ve en iyi olanı seçin. Kullanım alanınız için en iyi performans gösteren hiperparametreleri seçtikten sonra modeliniz dağıtılmaya hazır olur.
Aksi belirtilmediği sürece bu sayfanın içeriği Creative Commons Atıf 4.0 Lisansı altında ve kod örnekleri Apache 2.0 Lisansı altında lisanslanmıştır. Ayrıntılı bilgi için Google Developers Site Politikaları'na göz atın. Java, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-07-27 UTC.
[null,null,["Son güncelleme tarihi: 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."]]