Optimasi hiperparameter

Dalam pemelajaran mesin, **optimasi atau penyetelan hyperparameter**  (bahasa Inggris: *hyperparameter optimization* atau *tuning hyperparameter*)  adalah masalah pemilihan sekumpulan hiperparameter yang paling efektif (atau optimal) untuk suatu algoritma pemelajaran. Hiperparameter adalah parameter yang nilainya digunakan untuk mengontrol proses pemelajaran.

Optimasi hiperparameter merupakan sebuah proses dalam pemelajaran mesin yang bertujuan untuk menemukan tupel hiperparameter yang menghasilkan model optimal yang meminimalkan fungsi kerugian yang telah ditentukan sebelumnya pada data independen. Fungsi objektif berperan sebagai panduan dalam proses optimasi. Fungsi ini menerima tupel hiperparameter sebagai input dan menghasilkan nilai kerugian terkait. Semakin rendah nilai kerugian, semakin baik kinerja model. Validasi silang sering kali digunakan untuk memperkirakan performa generalisasi ini. Oleh karena itu, kumpulan nilai untuk hiperparameter dipilih yang dapat memaksimalkannya.

## Pendekatan

### Pencarian kisi
Cara tradisional untuk melakukan optimasi hiperparameter adalah **pencarian kisi** (*grid search*) atau **sapuan parameter** (*parameter sweep*). ni adalah proses pencarian menyeluruh dalam sub-bagian ruang hiperparameter yang ditentukan secara manual, untuk algoritma pembelajaran yang digunakan. Algoritma pencarian kisi memerlukan panduan beberapa metrik performa, biasanya diukur dengan validasi silang pada set pelatihan atau evaluasi pada set validasi terpisah.

Karena ruang parameter dari sebuah pemelajar mesin dapat mencakup ruang nilai bernilai riil atau tidak terbatas untuk parameter tertentu, pembatas yang ditetapkan secara manual dan diskritisasi mungkin diperlukan sebelum menerapkan pencarian kisi.

Misalnya, pengklasifikasi SVM "*soft margin*" yang dilengkapi dengan kernel RBF memiliki setidaknya dua hiperparameter yang perlu disetel untuk mendapatkan performa yang baik pada data yang tidak terlihat, yaitu konstanta regularisasi *C* dan hiperparameter kernel γ. Kedua parameter tersebut **kontinu** dan **tidak terbatas**. Sehingga untuk melakukan pencarian kisi, kumpulan nilai "masuk akal"  yang terbatas harus dipilih untuk masing-masing hiperparameter tersebut, misalnya:

: C \in \{10, 100, 1000\}
: \gamma \in \{0.1, 0.2, 0.5, 1.0\}

Pencarian grid kemudian melatih SVM dengan masing-masing pasangan (*C*, γ) dalam produk Cartesius dari kedua himpunan tersebut dan mengevaluasi kinerjanya pada set validasi yang terpisah (atau dengan validasi silang internal pada set pelatihan dan dalam hal ini beberapa SVM dilatih per-pasangan). Terakhir, algoritma pencarian kisi mengeluarkan pengaturan atau penyetelan hiperparameter yang mampu mencapai skor tertinggi dalam prosedur validasi.

Pencarian grid memang mengalami kutukan dimensionalitas. Akan tetapi, metode ini sering kali sangat paralel, karena pengaturan hiperparameter yang dievaluasinya biasanya independen satu sama lain.

### Pencarian acak
Pencarian Acak (*random search*) menawarkan alternatif dari enumerasi lengkap yang dilakukan pada pencarian kisi semua kombinasi hiperparameter melalui pemilihan secara acak. Metode ini tidak hanya berlaku untuk pengaturan diskrit, tetapi juga dapat digeneralisasi ke ruang kontinu dan campuran. Dibandingkan dengan pencarian grid, pencarian acak memungkinkan eksplorasi nilai yang jauh lebih luas, terutama untuk hiperparameter kontinu. Keunggulan ini membuatnya berpotensi mengungguli pencarian kisi, khususnya ketika hanya sedikit hiperparameter yang berpengaruh signifikan terhadap kinerja akhir algoritma pembelajaran mesin. Dalam hal ini, masalah optimasi dikatakan mempunyai dimensi intrinsik yang rendah. Lebih lanjut, pencarian acak memiliki sifat sangat paralel dan fleksibel untuk mengakomodasi pengetahuan sebelumnya melalui penentuan distribusi sampel. Meskipun tergolong sederhana, pencarian acak tetap menjadi garis acuan (*baseline*) penting untuk evaluasi kinerja berbagai metode optimasi hiperparameter terbaru.

### Optimasi Bayesian

Optimasi Bayesian merupakan metode optimasi global yang cocok diterapkan pada fungsi *noisy black-box* (kotak hitam bising) dalam konteks optimasi hiperparameter. Inti metode ini adalah membangun model probabilitas yang memetakan nilai hiperparameter terhadap nilai objektif yang dievaluasi pada set validasi.  Melalui evaluasi konfigurasi hiperparameter yang menjanjikan dan dilakukan secara iteratif (berulang)  berdasarkan model terkini, diikuti pembaruan model, optimasi Bayesian berupaya mengumpulkan observasi yang mengungkap informasi sebanyak mungkin tentang fungsi tersebut, khususnya terkait lokasi nilai optimal. Keunikannya terletak pada kemampuan menyeimbangkan eksplorasi (mencoba hiperparameter yang hasilnya belum pasti) dan eksploitasi (fokus pada hiperparameter yang diprediksi mendekati optimal). Dalam praktiknya, optimasi Bayesian terbukti mencapai hasil yang lebih baik dengan evaluasi yang lebih sedikit dibandingkan pencarian kisi dan pencarian acak, berkat kemampuannya "menalar" kualitas eksperimen sebelum dijalankan.

### Optimasi berbasis gradien
Dalam ranah algoritma pembelajaran tertentu, optimasi berbasis gradien memungkinkan penghitungan gradien terhadap hiperparameter. Dengan memanfaatkan gradien tersebut, optimasi hiperparameter dapat dilakukan melalui teknik penurunan gradien. Penerapan awal teknik ini berfokus pada jaringan saraf. Kini, metode ini telah diperluas dan diadaptasi untuk berbagai model lain, seperti support-vector machine dan regresi logistik.

Pendekatan alternatif lainnya untuk memperoleh gradien terhadap hiperparameter adalah diferensiasi langkah-langkah algoritma optimasi iteratif menggunakan diferensiasi otomatis. Penelitian terkini dalam bidang ini memanfaatkan teorema fungsi implisit untuk menghitung hipergradien dan mengusulkan pendekatan hampiran yang stabil untuk matriks Hessian invers. Metode ini mampu menangani jutaan hiperparameter dengan kebutuhan memori yang konstan.

Dalam pendekatan yang berbeda, sebuah *hypernetwork* dilatih untuk memperkirakan fungsi respons terbaik. Salah satu kelebihan metode ini adalah dapat juga menangani hiperparameter diskrit. Jaringan *self-tuning* (penyetelan mandiri) menawarkan versi pendekatan ini yang efisien dalam penggunaan memori dengan memilih representasi hypernetwork yang ringkas. Baru-baru ini, Δ-STN  berhasil menyempurnakan metode ini lebih lanjut melalui reparametrisasi *hypernetwork* secara minimal, sehingga berdampak pada peningkatan kecepatan pelatihan. Δ-STN juga menghasilkan perkiraan yang lebih baik dari respons terbaik *Jacobian* dengan linierisasi jaringan terhadap bobot, sehingga menghilangkan efek nonlinier yang tidak perlu dari perubahan bobot yang besar.

Selain pendekatan *hypernetwork*, metode berbasis gradien juga dapat digunakan untuk mengoptimalkan hiperparameter diskrit melalui relaksasi parameter secara kontinu. Metode ini telah banyak digunakan untuk optimasi hiperparameter arsitektur dalam pencarian arsitektur saraf .

### Optimasi evolusioner

Optimasi evolusioner merupakan metodologi optimasi global untuk fungsi *noisy* *black-box*. Dalam konteks optimasi hiperparameter, optimasi evolusioner memanfaatkan algoritma evolusioner untuk menjelajahi ruang hiperparameter untuk suatu algoritma tertentu. Proses optimasi hiperparameter evolusioner terinspirasi dari konsep evolusi biologis:

# Membentuk populasi awal dari solusi acak, yaitu menghasilkan tupel hiperparameter secara acak, biasanya lebih dari 100
# Evaluasi tupel hiperparameter dan peroleh fungsi kecocokannya (*fitness function*), misalnya, akurasi validasi silang 10 kali lipat dari algoritma pemelajaran mesin dengan hiperparameter tersebut
# Beri peringkat tupel hiperparameter berdasarkan hasil nilai fungsi kecocokannya. 
# Ganti tupel hiperparameter yang berkinerja terburuk dengan tupel hiperparameter baru yang dihasilkan melalui persilangan dan mutasi
# Ulangi langkah 2-4 hingga performa algoritma yang memuaskan tercapai atau performa algoritma tidak lagi meningkat

Optimasi evolusioner telah diterapkan dalam optimasi hiperparameter untuk algoritma pemelajaran mesin statistik, pemelajaran mesin otomatis, jaringan saraf umum, dan pencarian arsitektur jaringan saraf dalam, serta pelatihan bobot dalam jaringan syaraf tiruan dalam.

### Berbasis populasi
Pelatihan Berbasis Populasi (PBT) mempelajari nilai hiperparameter dan bobot jaringan. Banyak proses pemelajaran beroperasi secara independen, menggunakan hiperparameter yang berbeda. Seperti pada metode evolusi, model dengan kinerja buruk secara iteratif diganti dengan model yang mengadopsi nilai hiperparameter dan bobot yang dimodifikasi berdasarkan performa yang lebih baik. Pemanasan awal model pengganti ini merupakan pembeda utama antara PBT dan metode evolusi lainnya. Oleh karena itu, PBT memungkinkan hiperparameter untuk berevolusi dan menghilangkan kebutuhan penyetelan manual. Proses ini tidak membuat asumsi mengenai arsitektur model, fungsi kerugian, atau prosedur pelatihan.

PBT dan variannya merupakan metode adaptif yang dinamis dalam memperbaharui nilai hyperparameter selama proses pelatihan model. Ini berbeda dengan metode non-adaptif yang menerapkan penetapan nilai hyperparameter secara statis dan suboptimal sepanjang pelatihan.

### Berbasis pemberhentian awal

Suatu kelas algoritma optimasi hiperparameter berbasis penghentian awal dirancang khusus untuk ruang pencarian yang besar dengan hiperparameter kontinyu dan diskrit, terutama ketika biaya komputasi untuk mengevaluasi kinerja kumpulan hiperparameter tinggi. Irace menerapkan algoritma "*iterated racing*" yang memfokuskan pencarian pada konfigurasi paling menjanjikan, menggunakan uji statistik untuk membuang konfigurasi yang berkinerja buruk. Algoritma optimasi hiperparameter berbasis penghentian awal lainnya adalah "*successive halving*" (SHA), yang dimulai sebagai pencarian acak tetapi secara berkala memangkas model berkinerja rendah, sehingga memfokuskan sumber daya komputasi pada model yang lebih menjanjikan. "*Asynchronous successive halving*" (ASHA)lebih lanjut meningkatkan profil pemanfaatan sumber daya SHA dengan menghilangkan kebutuhan untuk mengevaluasi dan memangkas model berkinerja rendah secara sinkron. *Hyperband* adalah algoritma berbasis penghentian awal tingkat tinggi yang menerapkan SHA atau ASHA beberapa kali dengan berbagai tingkat keagresifan pemangkasan, agar lebih dapat diterapkan secara luas dan dengan lebih sedikit input yang diperlukan.

### Lainnya
Pendekatan RBF dan spektral juga telah dikembangkan.

## Masalah dengan optimasi hiperparameter
Setelah optimasi hiperparameter selesai, rangkaian hiperparameter tersebut biasanya dipasangkan dengan set data pelatihan dan dipilih berdasarkan kinerja generalisasi, atau skor, dari set validasi. Namun, prosedur ini rentan mengarah pada **kelebihan penyesuaian** (*overfitting*) hiperparameter terhadap set validasi, sehingga mengaburkan performa generalisasi sebenarnya. Akibatnya, skor kinerja generalisasi pada set validasi (yang dapat berupa beberapa set dalam validasi silang) tidak dapat diandalkan untuk secara bersamaan memperkirakan kinerja generalisasi model akhir. Untuk mencapai estimasi yang lebih akurat, evaluasi kinerja generalisasi harus dilakukan pada set yang independen (tidak memiliki irisan) dari set (atau set) yang digunakan untuk optimasi hiperparameter. Jika tidak, kinerja yang dilaporkan dapat terlalu optimis (terlalu tinggi). Penilaian set independen ini dapat dilakukan dengan menggunakan set pengujian kedua yang terpisah, atau melalui prosedur **validasi silang bertingkat** (*nested cross-validation*). Pendekatan validasi silang bertingkat memungkinkan estimasi kinerja generalisasi model yang lebih tak bias, dengan mempertimbangkan bias yang muncul akibat optimasi hiperparameter.

## Lihat juga

* Pembelajaran mesin otomatis
* Pencarian arsitektur saraf
* Optimasi meta
* Pemilihan model
* Penyetelan sendiri
* XGBoost

## Referensi