Apa itu hyperparameter dalam machine learning?
Hyperparameter adalah pengaturan yang dipilih sebelum training untuk mengendalikan cara model belajar, misalnya learning rate, batch size, jumlah layer, dan kekuatan regularization. Ini berbeda dengan parameter, yaitu weight dan bias yang dipelajari dari data selama training. Training tidak bisa menyesuaikan hyperparameter secara langsung. Satu-satunya cara menilainya adalah melatih model dengan nilai itu, lalu mengukur hasilnya.
Hyperparameter yang tepat bisa menentukan apakah network bisa dilatih atau tidak. Learning rate yang sepuluh kali terlalu tinggi membuat loss divergen, dan regularization yang terlalu sedikit membuat model besar menghafal training set-nya. Praktisi menyetelnya dengan melatih beberapa model, lalu membandingkan skornya pada validation set, memakai grid search, random search, atau Bayesian optimization.
Ide utama
- Parameter dipelajari oleh training; hyperparameter dipilih sebelumnya.
- Learning rate biasanya hyperparameter terpenting untuk disetel.
- Batch size menukar noise pada gradient dengan biaya tiap pembaruan.
- Kedalaman dan lebar menentukan jumlah parameter network.
- Kekuatan regularization menyeimbangkan overfitting dan underfitting.
- Random search biasanya mengalahkan grid search kalau hanya sedikit hyperparameter yang berpengaruh.
Pertanyaan umum
Hyperparameter mana yang sebaiknya disetel lebih dulu?
Mulai dari learning rate, karena efeknya paling besar dan berinteraksi dengan hampir semua hal lain. Lalu setel regularization, seperti weight decay dan dropout, dan batch size. Pilihan arsitektur biasanya diambil dari model yang sudah dikenal dan disesuaikan paling akhir.
Kenapa hyperparameter harus disetel pada validation set?
Setiap perbandingan antarpengaturan memakai data penilaiannya untuk mengambil keputusan. Kalau data itu test set, skor akhir pada test set menjadi terlalu optimistis. Validation set terpisah, atau cross-validation, menjaga test set tetap menjadi perkiraan yang tidak berat sebelah untuk performa pada data baru.
Apa itu Bayesian optimization untuk hyperparameter?
Metode ini mencocokkan model probabilistik, sering kali Gaussian process, ke skor percobaan sebelumnya, lalu memakainya untuk memilih pengaturan berikutnya yang layak dicoba. Metode ini menyeimbangkan pengaturan di dekat hasil terbaik sejauh ini dengan penjelajahan area yang belum pasti bagi model. Biasanya percobaannya lebih sedikit daripada random search ketika setiap training mahal.
Apakah hyperparameter sama untuk setiap dataset?
Tidak. Nilai bawaan yang baik cukup bisa dipakai ulang dalam satu keluarga model, seperti learning rate sekitar 0,001 untuk Adam, tetapi nilai terbaik bergantung pada ukuran dataset, model, dan batch size. Dataset yang lebih besar, misalnya, biasanya butuh regularization lebih sedikit.
Penjelasan terkait
- Gradient Descent · Optimasi dengan mengikuti kemiringan ke bawah
- Learning Rate Scheduling · Step decay, cosine annealing, warmup, dan cyclical LR
- Regularization · Dropout, L1, dan L2 agar model tetap jujur
- Epoch dan Batching · Cara data masuk ke model lewat epoch, batch, dan shuffle
- Cross-Validation · Evaluasi dengan k-fold, stratified, dan leave-one-out
- Training, Validation, dan Test Set · Membagi data untuk mengukur generalization dan menghindari overfitting
Referensi
- Bergstra & Bengio (2012), "Random Search for Hyper-Parameter Optimization", JMLR
- Snoek, Larochelle & Adams (2012), "Practical Bayesian Optimization of Machine Learning Algorithms"
- Li et al. (2016), "Hyperband: A Novel Bandit-Based Approach to Hyperparameter Optimization"
- Goyal et al. (2017), "Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour"
- Loshchilov & Hutter (2017), "Decoupled Weight Decay Regularization"
Terakhir diperbarui