Lensa ML

Hyperparameter

Langkah 1 dari 6: Parameter vs Hyperparameter

Yang dipelajari model vs yang kamu pilih

x1x2x3h1h2h3h4y1y2InputHidden (4)OutputDipelajari (weight)Kamu atur (hyperparam)
Hidden neuron4
Parameter
26
Hyperparam
3
Hidden size
4

Parameter (weight, bias) dipelajari saat training. Hyperparameter (learning rate, ukuran layer, batch size) kamu tentukan sebelum training dimulai. Dengan 4 hidden neuron, network ini punya 26 parameter yang bisa dipelajari (weight + bias).

Geser Hidden neuron dari 2 ke 10 dan lihat jumlah parameternya. Dengan 3 input, h hidden neuron, dan 2 output, network ini punya (3h + h) + (2h + 2) = 6h + 2 parameter: 26 pada h = 4 dan 62 pada h = 10. Ada tes sederhana untuk membedakan keduanya: kalau diperbarui oleh gradient descent, berarti itu parameter. Optimizer, jumlah epoch, dropout rate, dan activation function juga termasuk hyperparameter. Semuanya dipilih pada validation set, tidak pernah pada test set.

Langkah 2 dari 6: Learning Rate

Hyperparameter terpenting dalam deep learning

EpochLossLR = 0.0707
Atur learning rate (skala log)0.071
Learning rate
0.071
Loss akhir
1.083
Status
Konvergen

Learning rate yang baik membuat loss turun terus sampai nilai rendah. Di simulasi ini rentangnya 0,01 sampai 2; di network sungguhan, rentang itu bergantung pada model dan optimizer.

Geser slider learning rate, yang memakai skala log dari 0,001 sampai 5. Skala log cocok karena nilai yang berguna membentang beberapa orde besaran, dan perubahan dari 0,001 ke 0,002 sama berartinya dengan perubahan dari 0,1 ke 0,2. Kurva loss di sini hasil simulasi: statusnya Terlalu lambat di bawah 0,01 dan Divergen di atas 2. Training sungguhan jarang memakai satu learning rate sampai selesai; warmup yang diikuti decay schedule sudah umum. Saat batch size naik k kali lipat, linear scaling rule mengalikan learning rate dengan k juga.

Langkah 3 dari 6: Batch Size

Berapa sampel untuk tiap pembaruan gradient

EpochLoss32Batch = 32
Batch size32
Batch size
32
Grad noise
Sedang
Langkah/epoch
32

Batch size 32 termasuk mini-batch. Ukuran ini menyeimbangkan noise pada gradient dengan kestabilan, sehingga paling umum dipakai dalam praktik.

Geser slider Batch size melewati 1, 8, 32, 128, dan 512. Dengan 1.024 sampel training, hasilnya 1.024, 128, 32, 8, atau 2 pembaruan per epoch. Noise pada gradient turun sebesar 1/√B, jadi naik dari 32 ke 128 membuatnya tinggal separuh. Dalam praktik, memori GPU membatasi batch size, dan pangkat 2 hanya kebiasaan, bukan aturan. Batch yang sangat besar bisa membuat generalisasi lebih buruk, efek yang dikaitkan dengan sharp minima. Batch yang lebih besar biasanya butuh learning rate lebih besar untuk mencapai kemajuan yang sama per epoch.

Langkah 4 dari 6: Kedalaman dan Lebar Network

Berapa layer, dan seberapa lebar tiap layer

x1x2x3y1y2In (3)H1 (6)H2 (6)Out (2)
Hidden layer2
Neuron per hidden layer6
Total parameter
80
Layer
2
Lebar
6

Dengan 2 hidden layer yang masing-masing berisi 6 neuron, network ini punya 80 parameter. Setiap layer membangun feature di atas hasil hitungan layer sebelumnya.

Atur Hidden layer dari 1 sampai 5 dan Neuron per hidden layer dari 2 sampai 16. Bawaannya, 2 layer berisi 6 neuron, punya 80 parameter, sedangkan 5 layer berisi 16 punya 1.186. Setiap layer dari hidden ke hidden menambah w² + w parameter, jadi menggandakan lebar membuatnya kira-kira empat kali lipat, sedangkan menambah layer menambahkannya secara linear. Arsitektur sungguhan jauh lebih besar: ResNet-50 punya sekitar 25 juta parameter di 50 layer. Kedalaman dan lebar biasanya disalin dari arsitektur yang sudah terbukti lalu diskalakan, bukan dicari dari nol.

Langkah 5 dari 6: Kekuatan Regularization

Menyeimbangkan underfitting dan overfitting dengan lambda

EpochLossTrainValOverfit
Kekuatan regularization L2 (lambda)0.00
Lambda
0.00
Train loss
0.090
Val loss
1.140
Selisih
1.050

Dengan lambda mendekati 0, nyaris tidak ada regularization. Model mengalami overfitting: training loss tetap rendah, sedangkan validation loss naik karena model menghafal noise.

Geser Kekuatan regularization L2 (lambda) dari 0 ke 1. Labelnya Overfit di bawah 0,05, Baik sampai 0,6, dan Underfit di atasnya. Regularization L2 menambahkan λΣw² ke loss, sehingga setiap langkah gradient juga mengecilkan semua weight dengan faktor (1 − 2αλ). Itu sebabnya disebut weight decay. Kurva ini disimulasikan untuk menunjukkan ketiga kondisi tersebut. Nilai λ sungguhan biasanya jauh lebih kecil, sekitar 0,0001 sampai 0,01, dan dicari pada skala log. AdamW menerapkan weight decay secara terpisah dari pembaruan Adam.

Langkah 6 dari 6: Pencarian

Grid search vs random search untuk menyetel hyperparameter

Learning RateBatch SizeterbaikRandom SearchRendahTinggiloss
Jumlah percobaan20
Loss terbaik
0.077
Percobaan
20
Metode
Random

Random search mengambil hyperparameter secara acak dan merata, jadi setiap percobaan mencoba nilai baru di tiap sumbu. Loss di sini terutama bergantung pada learning rate, jadi tambahan nilai learning rate itu terbayar. Dengan 20 percobaan, loss terbaik yang ditemukan adalah 0.077.

Ubah Jumlah percobaan dari 5 ke 50 dan beralih antara Grid Search dan Random Search. Sumbunya adalah learning rate dan batch size, diskalakan ke 0–1. Dengan 20 percobaan, grid mengisi empat baris dari susunan 5×5, jadi hanya menguji 5 learning rate, sedangkan random search menguji 20. Kalau hanya learning rate yang berpengaruh, cakupan random search empat kali lebih luas. Loss di sini hampir sepenuhnya bergantung pada learning rate, lewat lembah sempit di dekat 0,275, dan nyaris tidak bergantung pada batch size. Pada 20 percobaan, loss terbaik grid adalah 0,212 dan random search mencapai 0,077, dan random search menemukan loss lebih rendah di setiap anggaran dari 5 sampai 50 percobaan. Bayesian optimization dan Hyperband memakai anggaran itu dengan lebih efisien lagi.

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

Referensi

  1. Bergstra & Bengio (2012), "Random Search for Hyper-Parameter Optimization", JMLR
  2. Snoek, Larochelle & Adams (2012), "Practical Bayesian Optimization of Machine Learning Algorithms"
  3. Li et al. (2016), "Hyperband: A Novel Bandit-Based Approach to Hyperparameter Optimization"
  4. Goyal et al. (2017), "Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour"
  5. Loshchilov & Hutter (2017), "Decoupled Weight Decay Regularization"

Terakhir diperbarui