Apa
Itu Hyperparameter Tuning?
Secara sederhana, hyperparameter
tuning adalah proses
pencarian kombinasi nilai hyperparameter terbaik yang bisa menghasilkan performa
model machine learning paling optimal. Tujuannya adalah untuk
meminimalkan kesalahan prediksi (loss function) dan meningkatkan akurasi hasil
prediksi model.
Contoh Hyperparameter dalam Machine
Learning
Setiap algoritma
machine learning memiliki set hyperparameter tersendiri. Berikut adalah
beberapa contoh:
- Neural Network: jumlah
neuron per lapisan, jumlah lapisan tersembunyi, learning rate, batch size.
- Support Vector Machine (SVM): ukuran
kernel, jenis kernel (linear, RBF, polynomial), regularisasi (C).
- Decision Tree dan Random Forest: kedalaman maksimum trees (max depth), jumlah trees,
minimum sampel per split.
- K-Nearest Neighbors (KNN): jumlah
tetangga (k), metrik jarak yang digunakan (Euclidean, Manhattan).
Masing-masing
hyperparameter tersebut memengaruhi cara model belajar dari data, dan akhirnya
menentukan seberapa baik hasil yang dihasilkan.
Apa
Itu Hyperparameter? Dan Apa Bedanya dengan Parameter Model?
Untuk memahami lebih dalam,
penting untuk membedakan antara hyperparameter dan parameter model.
Aspek |
Hyperparameter |
Parameter Model |
Siapa
yang menentukan |
Ditentukan oleh
manusia sebelum pelatihan |
Dipelajari otomatis
oleh model dari data |
Waktu
penentuan |
Sebelum training
dimulai |
Selama proses
training berlangsung |
Contoh |
Learning rate,
jumlah neuron, max depth |
Bobot (weights) dan
bias pada neural net |
Mengapa Hyperparameter
Tuning Penting?
Hyperparameter tuning bukan sekadar langkah tambahan. Ia memainkan peran vital
dalam:
- Meningkatkan Akurasi ModelKombinasi nilai hyperparameter yang tepat bisa membuat model menghasilkan prediksi yang lebih akurat. Misalnya, learning rate yang terlalu tinggi bisa membuat model "loncat-loncat" dan tidak stabil, sementara yang terlalu kecil membuat proses belajar terlalu lambat.
- Mencegah Overfitting dan UnderfittingDua masalah utama dalam machine learning adalah:
- Overfitting:
Model terlalu menyesuaikan diri dengan data latih dan gagal menghadapi
data baru.
- Underfitting:
Model terlalu sederhana dan tidak mampu menangkap pola dalam data.
- Menghemat Sumber Daya KomputasiModel yang disetel dengan baik akan belajar lebih efisien, tidak membuang-buang waktu, daya komputasi, atau memori. Ini sangat penting dalam proyek-proyek besar, seperti pelatihan model AI generatif atau Large Language Models (LLMs), yang memerlukan infrastruktur kuat dan biaya tinggi.
Contoh teknik regularisasi meliputi:
- L1 dan L2 regularization: Digunakan pada model regresi atau neural network.
- Dropout rate: Digunakan
dalam deep learning untuk menonaktifkan sebagian neuron selama pelatihan.
Pengaturan
regularisasi harus seimbang. Jika terlalu ketat, model akan underfitting. Jika
terlalu longgar, bisa overfitting.
Menyeimbangkan
Bias dan Variance
Tujuan akhir hyperparameter tuning adalah menemukan keseimbangan yang tepat
antara bias dan variance:
Istilah |
Penjelasan |
Bias |
Kesalahan karena
model terlalu sederhana dan gagal memahami pola dalam data. |
Variance |
Kesalahan karena
model terlalu kompleks dan hanya bagus pada data latih saja. |
Model yang ideal
adalah yang memiliki bias rendah dan variance rendah, artinya:
- Hasil prediksi akurat.
- Konsisten saat digunakan pada
data baru.
Proses tuning yang
baik akan membantu mencapai kondisi ini.
Bagaimana
Cara Kerja Hyperparameter Tuning?
Ada berbagai
pendekatan yang dapat digunakan untuk menyetel hyperparameter. Setiap metode memiliki kelebihan dan
kekurangannya sendiri, tergantung pada kebutuhan, waktu, dan sumber daya
komputasi yang tersedia. Berikut ini adalah metode-metode paling umum yang
digunakan oleh para ilmuwan data:
- Grid SearchGrid search adalah metode paling dasar namun menyeluruh dalam hyperparameter tuning. Caranya, ilmuwan data menentukan semua nilai yang mungkin untuk setiap hyperparameter, kemudian mencoba semua kombinasi yang ada satu per satu.
Kelebihan:
- Menjamin semua kombinasi
dicoba.
- Bisa memberikan hasil yang
sangat akurat jika dilakukan dengan baik.
Kekurangan:
- Sangat memakan waktu dan
sumber daya komputasi, terutama jika kombinasi terlalu banyak.
- Tidak efisien untuk ruang
hyperparameter yang besar.
- Random SearchBerbeda dari grid search, random search tidak mencoba semua kemungkinan. Ilmuwan data hanya menentukan rentang atau distribusi nilai dari hyperparameter, lalu sistem memilih nilai-nilai secara acak dari rentang tersebut.
Model
akan dibangun berdasarkan kombinasi acak yang dipilih, dan hasilnya dievaluasi.
Proses ini diulang berkali-kali hingga didapat hasil terbaik.
Kelebihan:
- Lebih cepat dan ringan
daripada grid search.
- Cocok untuk ruang pencarian
yang sangat besar.
- Bisa mendekati hasil optimal
dengan waktu lebih efisien.
Kekurangan:
- Tidak ada jaminan menemukan
kombinasi terbaik.
- Hasilnya bisa berubah-ubah
tergantung hasil acakan.
- Bayesian OptimizationBayesian optimization adalah metode lanjutan yang cerdas. Ia tidak asal mencoba seperti random atau grid search, melainkan belajar dari hasil sebelumnya. Metode ini termasuk dalam kelompok SMBO (Sequential Model-Based Optimization), yang menggunakan model probabilistik untuk memprediksi kombinasi hyperparameter terbaik berikutnya.
Kelebihan:
- Sangat efisien dalam
penggunaan waktu dan komputasi.
- Belajar dari percobaan
sebelumnya untuk membuat prediksi lebih baik.
Kekurangan:
- Lebih kompleks secara teknis.
- Membutuhkan pemahaman lebih
dalam untuk implementasi dan penyesuaian.
- Hyperband: Menggabungkan Kecepatan dan EfisiensiHyperband adalah metode yang relatif baru dan dikembangkan untuk mempercepat proses tuning tanpa mengorbankan kualitas. Metode ini menggunakan prinsip early stopping—menghentikan lebih awal konfigurasi yang tidak menjanjikan, dan hanya melanjutkan konfigurasi yang menunjukkan hasil baik.
Metode ini bekerja dengan teknik bernama successive
halving:
- Dimulai dengan sejumlah besar
konfigurasi hyperparameter.
- Setelah satu putaran
pelatihan, 50% yang berkinerja terburuk dieliminasi.
- Proses ini diulang hingga
tersisa satu kombinasi terbaik.
Kelebihan:
- Sangat hemat waktu dan sumber
daya.
- Efisien dalam menyaring model
buruk sejak awal.
Kekurangan:
- Risiko mengeliminasi
konfigurasi yang lambat namun menjanjikan terlalu cepat.
Dalam dunia machine learning (ML), keberhasilan sebuah model tidak hanya
bergantung pada data dan algoritma, tetapi juga pada bagaimana kita mengatur
hyperparameter. Berikut ini adalah contoh-contoh hyperparameter dalam berbagai
algoritma populer di machine learning, mulai dari neural networks, SVM (Support Vector Machine),
hingga XGBoost.
- Hyperparameter dalam Neural Network (Jaringan Saraf)Neural network adalah model ML yang terinspirasi dari cara kerja otak manusia. Model ini terdiri dari node atau simpul yang saling terhubung dan saling mengirim sinyal. Di bawah ini adalah beberapa hyperparameter penting yang digunakan dalam pelatihan jaringan saraf.
- Learning Rate (Tingkat Pembelajaran)Learning rate mengatur seberapa cepat model mengubah parameter (misalnya bobot dan bias) selama proses pelatihan. Ini merupakan salah satu hyperparameter paling krusial.
- Learning rate tinggi: model belajar cepat, tetapi bisa menyebabkan
pelatihan menjadi tidak stabil dan berujung pada hasil yang melenceng.
- Learning rate rendah: model belajar lambat, tetapi lebih cenderung mencapai
hasil yang stabil dan akurat.
Contohnya terlihat pada algoritma gradient descent, di mana
nilai learning rate menentukan besar langkah tiap iterasi menuju nilai error
minimum.
- Learning Rate DecayMerupakan penurunan learning rate secara bertahap seiring waktu. Di awal pelatihan, model belajar lebih cepat; menjelang akhir, model menjadi lebih hati-hati. Ini membantu proses konvergensi, yaitu pencapaian titik stabil dalam pelatihan.
- Batch SizeBatch size adalah jumlah data yang diproses sebelum model memperbarui parameternya.
- Batch besar: pelatihan
lebih cepat, tetapi akurasinya bisa turun.
- Batch kecil: lebih
akurat, tetapi memerlukan waktu lebih lama.
Pemilihan batch size yang tepat harus seimbang dengan learning rate agar model tidak terlalu cepat
ataupun terlalu lambat belajar.
- Jumlah Hidden LayerHidden layer adalah lapisan tersembunyi di antara input dan output. Jumlah layer menentukan kedalaman jaringan saraf.
- Sedikit layer: model
lebih cepat dan sederhana.
- Banyak layer: bisa
menangkap pola kompleks (deep learning), tapi memakan waktu dan bisa
overfitting.
- Jumlah Neuron per LayerNeuron di tiap layer menentukan lebar jaringan. Semakin banyak neuron, semakin kompleks representasi yang bisa dipelajari. Tapi, semakin besar risiko overfitting.
- MomentumMomentum mempercepat pembelajaran dengan mempertahankan arah pembaruan parameter dari iterasi sebelumnya. Ini membantu menghindari jebakan lokal minimum. Nilai awalnya biasanya kecil, lalu dinaikkan perlahan untuk menjaga kestabilan pembelajaran.
- EpochEpoch mengacu pada berapa kali seluruh dataset dilalui selama pelatihan.
- Lebih banyak epoch, bisa menghasilkan model lebih akurat.Tapi terlalu banyak epoch juga bisa menyebabkan overfitting.
- Activation FunctionFungsi aktivasi membuat jaringan saraf mampu memodelkan hubungan non-linear. Tanpa ini, jaringan hanya bisa menyelesaikan masalah linear.Beberapa fungsi aktivasi yang umum:
- ReLU: paling
populer dan efisien.
- Sigmoid: cocok
untuk keluaran berbentuk probabilitas.
- Tanh:
digunakan untuk data dengan range negatif dan positif.
- Hyperparameter dalam SVM (Support Vector Machine)SVM adalah algoritma ML yang digunakan untuk klasifikasi, regresi, dan deteksi anomali. SVM mencari garis atau bidang pemisah terbaik antar kelas data.
- C (Regularization Parameter)Parameter C mengontrol toleransi terhadap kesalahan klasifikasi.
- C kecil: lebih
toleran terhadap kesalahan, menghasilkan margin lebar tetapi bisa
mengorbankan akurasi.
- C besar: margin
sempit dan lebih akurat, tapi lebih rawan overfitting.
- KernelKernel adalah fungsi yang mengubah data ke dalam bentuk ruang fitur yang memungkinkan data yang tidak linear bisa dipisahkan.Jenis-jenis kernel:
- Linear: cepat
dan cocok untuk data linear.
- Polynomial dan RBF (Radial Basis Function): bagus untuk data non-linear dan kompleks.
- Sigmoid: mirip fungsi aktivasi neural network.Pemilihan kernel yang tepat sangat penting untuk performa SVM.
- GammaGamma mengatur pengaruh satu data training terhadap garis pemisah.
- Gamma tinggi: setiap
titik data berpengaruh besar → bisa overfitting.
- Gamma rendah: pengaruh
data kecil → model bisa terlalu sederhana.
- Hyperparameter dalam XGBoostXGBoost (Extreme Gradient Boosting) adalah salah satu algoritma ensemble paling kuat dan efisien dalam kompetisi ML. Ia bekerja dengan membangun banyak trees keputusan kecil yang saling memperbaiki kesalahan satu sama lain.
- learning_rateMengontrol seberapa besar model berubah pada tiap iterasi.
- Nilai kecil →
pelatihan lebih lambat, tetapi stabil.
- Nilai besar →
cepat, tapi bisa overfitting.
Biasanya berada di antara 0.01 – 0.3.
- n_estimatorsJumlah total trees yang dibangun selama pelatihan. Di versi asli XGBoost disebut num_boost_rounds, sementara pada scikit-learn disebut n_estimators.
- Nilai besar →
model lebih kompleks.
- Tapi jumlah terlalu banyak
bisa memperbesar waktu pelatihan dan overfitting.
- max_depthMengatur kedalaman maksimum tiap trees.trees lebih dalam → bisa mengklasifikasi data lebih akurat.Tapi semakin dalam, semakin rentan terhadap overfitting.
- min_child_weightJumlah data minimum yang dibutuhkan untuk membuat percabangan baru.
- Nilai kecil →
banyak trees terbentuk, bisa overfitting.
- Nilai besar →
trees tumbuh terbatas, model lebih general.
- subsample dan colsample_bytree
- subsample: fraksi
data training yang dipakai dalam tiap iterasi.
- colsample_bytree:
fraksi fitur yang digunakan per trees.
Ini berfungsi seperti regularisasi, mencegah model menghapal
data.
Kesimpulan
Bagi siapa pun yang
ingin mendalami machine learning, memahami dan menguasai teknik hyperparameter tuning adalah langkah penting menuju keberhasilan. Karena dalam
dunia AI yang kompleks, detail kecil seperti nilai learning rate atau jumlah neuron bisa menjadi penentu
utama performa.