Langkah 5: Sesuaikan Hyperparameter
Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.
Kita harus memilih sejumlah hyperparameter untuk menentukan dan melatih model. Kami mengandalkan intuisi, contoh, dan rekomendasi praktik terbaik. Namun, pilihan pertama parameter hyperparameter mungkin tidak memberikan hasil terbaik. Hal ini hanya memberi kami titik awal yang baik untuk pelatihan. Setiap masalah berbeda dan menyesuaikan hyperparameter ini akan membantu menyaring model kami agar lebih mewakili kekhususan masalah yang dihadapi. Mari kita lihat beberapa hyperparameter yang digunakan dan artinya untuk menyesuaikannya:
Jumlah lapisan dalam model: Jumlah lapisan di jaringan neural adalah indikator kompleksitasnya. Kita harus berhati-hati dalam memilih nilai ini. Terlalu banyak lapisan akan memungkinkan model mempelajari terlalu banyak informasi tentang data pelatihan, yang menyebabkan overfit. Lapisan yang terlalu sedikit dapat membatasi kemampuan pembelajaran model, sehingga menyebabkan underfit. Untuk set data klasifikasi teks, kami bereksperimen dengan MLP satu, dua, dan tiga lapis. Model dengan dua lapisan berperforma baik, dan dalam beberapa kasus lebih baik daripada model tiga lapis. Demikian pula, kami mencoba sepCNN dengan empat dan enam lapisan, dan model empat lapis berperforma baik.
Jumlah unit per lapisan: Unit dalam lapisan harus menyimpan informasi untuk transformasi yang dilakukan lapisan. Untuk lapisan pertama, hal ini didorong oleh jumlah fitur. Di lapisan berikutnya, jumlah unit bergantung pada pilihan dalam memperluas atau mengecilkan representasi dari lapisan sebelumnya. Cobalah untuk meminimalkan hilangnya informasi antar-lapisan. Kami mencoba nilai unit dalam rentang [8, 16, 32, 64]
, dan unit 32/64 berfungsi dengan baik.
Rasio batal: Lapisan putus digunakan dalam model untuk regularisasi. Anotasi ini menentukan fraksi input yang dilepas sebagai tindakan pencegahan untuk overfit. Rentang yang direkomendasikan: 0,2–0,5.
Kecepatan pembelajaran: Ini adalah kecepatan perubahan bobot jaringan neural di antara iterasi. Kecepatan pembelajaran yang besar dapat menyebabkan perubahan ayunan yang besar, dan kita mungkin tidak akan pernah menemukan nilai yang optimal. Kecepatan pembelajaran yang rendah adalah hal yang baik, tetapi model akan membutuhkan lebih banyak iterasi untuk disatukan. Sebaiknya mulai dari yang rendah, misalnya pada 1-4. Jika pelatihan sangat lambat, tingkatkan nilai ini. Jika model Anda tidak belajar, cobalah mengurangi kecepatan pembelajaran.
Ada beberapa hyperparameter tambahan yang telah disesuaikan dengan model sepCNN kita:
Ukuran kernel: Ukuran jendela konvolusi. Nilai yang direkomendasikan: 3 atau 5.
Dimensi penyematan: Jumlah dimensi yang ingin digunakan untuk mewakili penyematan kata—yaitu ukuran setiap vektor kata. Nilai yang direkomendasikan: 50–300. Dalam eksperimen, kami menggunakan penyematan GloVe dengan 200 dimensi dengan lapisan penyematan terlatih.
Cobalah hyperparameter ini dan lihat mana yang paling cocok. Setelah memilih hyperparameter yang berperforma terbaik untuk kasus penggunaan Anda, model Anda siap di-deploy.
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-27 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 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."]]