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 grid pada nilai yang berbeda dari dua hyperparameter. Untuk setiap hyperparameter, 10 nilai berbeda dipertimbangkan, sehingga total 100 kombinasi berbeda dievaluasi dan dibandingkan. Kontur berwarna biru menunjukkan wilayah dengan hasil yang kuat, sedangkan kontur berwarna merah menunjukkan wilayah dengan hasil yang buruk.
### 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:

{\displaystyle C\in \{10,100,1000\}}
{\displaystyle \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 di berbagai kombinasi nilai untuk dua hyperparameter. Dalam contoh ini, 100 pilihan acak berbeda dievaluasi. Bilah hijau menunjukkan bahwa lebih banyak nilai individual untuk setiap hyperparameter yang dipertimbangkan dibandingkan dengan penelusuran kisi.
### 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.

 Metode seperti optimasi Bayesian secara cerdas mengeksplorasi ruang pilihan hiperparameter potensial dengan memutuskan kombinasi mana yang akan dieksplorasi selanjutnya berdasarkan pengamatan sebelumnya.
### Optimasi Bayesian

Artikel utama: 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

Artikel utama: Algoritma 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:

1. Membentuk populasi awal dari solusi acak, yaitu menghasilkan tupel hiperparameter secara acak, biasanya lebih dari 100
2. Evaluasi tupel hiperparameter dan peroleh fungsi kecocokannya (*fitness function*), misalnya, akurasi validasi silang 10 kali lipat dari algoritma pemelajaran mesin dengan hiperparameter tersebut
3. Beri peringkat tupel hiperparameter berdasarkan hasil nilai fungsi kecocokannya.
4. Ganti tupel hiperparameter yang berkinerja terburuk dengan tupel hiperparameter baru yang dihasilkan melalui persilangan dan mutasi
5. 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

 Pengurangan berturut-turut untuk delapan konfigurasi hiperparameter arbitrer. Pendekatan ini dimulai dengan delapan model dengan konfigurasi yang berbeda dan secara berurutan menerapkan pengurangan berturut-turut hingga hanya satu model yang tersisa.
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
---------

1. ↑  Matthias Feurer and Frank Hutter. Hyperparameter optimization. In: *AutoML: Methods, Systems, Challenges*, pages 3–38.
2. ↑
3. 1 2 3  Bergstra, James; Bengio, Yoshua (2012). "Random Search for Hyper-Parameter Optimization" (PDF). *Journal of Machine Learning Research*. **13**: 281–305.
4. ↑  Chin-Wei Hsu, Chih-Chung Chang and Chih-Jen Lin (2010). A practical guide to support vector classification. Technical Report, National Taiwan University.
5. ↑  Chicco D (December 2017). "Ten quick tips for machine learning in computational biology". *BioData Mining*. **10** (35): 35. doi:10.1186/s13040-017-0155-3. PMC 5721660 alt=Dapat diakses gratis. PMID 29234465.
6. ↑  Ziyu, Wang; Frank, Hutter; Masrour, Zoghi; David, Matheson; Nando, de Feitas (2016). "Bayesian Optimization in a Billion Dimensions via Random Embeddings". *Journal of Artificial Intelligence Research* (dalam bahasa Inggris). **55**: 361–387. arXiv:1301.1942 alt=Dapat diakses gratis. doi:10.1613/jair.4806.
7. ↑  Hutter, Frank; Hoos, Holger; Leyton-Brown, Kevin (2011), "Sequential Model-Based Optimization for General Algorithm Configuration", *Learning and Intelligent Optimization* (PDF), Lecture Notes in Computer Science, **6683**, hlm. 507–523, doi:10.1007/978-3-642-25566-3\_40, ISBN 978-3-642-25565-6
8. 1 2 3  Bergstra, James; Bardenet, Remi; Bengio, Yoshua; Kegl, Balazs (2011), "Algorithms for hyper-parameter optimization" (PDF), *Advances in Neural Information Processing Systems*
9. ↑  Snoek, Jasper; Larochelle, Hugo; Adams, Ryan (2012). "Practical Bayesian Optimization of Machine Learning Algorithms" (PDF). *Advances in Neural Information Processing Systems*. arXiv:1206.2944 alt=Dapat diakses gratis. Bibcode:2012arXiv1206.2944S.
10. ↑  Thornton, Chris; Hutter, Frank; Hoos, Holger; Leyton-Brown, Kevin (2013). "Auto-WEKA: Combined selection and hyperparameter optimization of classification algorithms" (PDF). *Knowledge Discovery and Data Mining*. arXiv:1208.3719 alt=Dapat diakses gratis. Bibcode:2012arXiv1208.3719T.
11. ↑  Larsen, Jan; Hansen, Lars Kai; Svarer, Claus; Ohlsson, M (1996). "Design and regularization of neural networks: The optimal use of a validation set" (PDF). *Neural Networks for Signal Processing VI. Proceedings of the 1996 IEEE Signal Processing Society Workshop*. hlm. 62–71. CiteSeerX 10.1.1.415.3266 alt=Dapat diakses gratis. doi:10.1109/NNSP.1996.548336. ISBN 0-7803-3550-3.
12. ↑  Olivier Chapelle; Vladimir Vapnik; Olivier Bousquet; Sayan Mukherjee (2002). "Choosing multiple parameters for support vector machines" (PDF). *Machine Learning*. **46**: 131–159. doi:10.1023/a:1012450327387.
13. ↑  Chuong B; Chuan-Sheng Foo; Andrew Y Ng (2008). "Efficient multiple hyperparameter learning for log-linear models" (PDF). *Advances in Neural Information Processing Systems*. **20**.
14. ↑  Domke, Justin (2012). "Generic Methods for Optimization-Based Modeling" (PDF). *Aistats*. **22**. Diarsipkan dari versi asli (PDF) tanggal 2014-01-24. Diakses tanggal 2017-12-09.  Parameter `|url-status=` yang tidak diketahui akan diabaikan (bantuan)
15. ↑  Franceschi, Luca; Donini, Michele; Frasconi, Paolo; Pontil, Massimiliano (2017). "Forward and Reverse Gradient-Based Hyperparameter Optimization" (PDF). *Proceedings of the 34th International Conference on Machine Learning*. arXiv:1703.01785 alt=Dapat diakses gratis. Bibcode:2017arXiv170301785F.
16. ↑  Shaban, A. Cheng, C. A. Hatch, N. & Boots, B. (2019, April). Truncated back-propagation for bilevel optimization. In *The 22nd International Conference on Artificial Intelligence and Statistics* (pp. 1723-1732). PMLR.
17. ↑  Lorraine, J. Vicol, P. & Duvenaud, D. (2018). Optimizing Millions of Hyperparameters by Implicit Differentiation. *arXiv preprint arXiv:1911.02590*.
18. ↑  Lorraine, J. & Duvenaud, D. (2018). Stochastic hyperparameter optimization through hypernetworks. *arXiv preprint arXiv:1802.09419*.
19. ↑  MacKay, M. Vicol, P. Lorraine, J. Duvenaud, D. & Grosse, R. (2019). Self-tuning networks: Bilevel optimization of hyperparameters using structured best-response functions. *arXiv preprint arXiv:1903.03088*.
20. ↑  Bae, J. & Grosse, R. B. (2020). Delta-stn: Efficient bilevel optimization for neural networks using structured response jacobians. *Advances in Neural Information Processing Systems*, *33*, 21725-21737.
21. ↑  Liu, H. Simonyan, K. & Yang, Y. (2018). Darts: Differentiable architecture search. *arXiv preprint arXiv:1806.09055*.
22. ↑  Kousiouris G, Cuccinotta T, Varvarigou T (2011). "The effects of scheduling, workload type and consolidation scenarios on virtual machine performance and their prediction through optimized artificial neural networks". *Journal of Systems and Software*. **84** (8): 1270–1291. doi:10.1016/j.jss.2011.04.013.
23. ↑  Li, Ang; Spyra, Ola; Perel, Sagi; Dalibard, Valentin; Jaderberg, Max; Gu, Chenjie; Budden, David; Harley, Tim et al. (2019-02-05). "A Generalized Framework for Population Based Training".  *arΧiv:1902.01894* [cs.AI].
24. ↑  López-Ibáñez, Manuel; Dubois-Lacoste, Jérémie; Pérez Cáceres, Leslie; Stützle, Thomas; Birattari, Mauro (2016). "The irace package: Iterated Racing for Automatic Algorithm Configuration". *Operations Research Perspective*. **3** (3): 43–58. doi:10.1016/j.orp.2016.09.002.
25. ↑  Birattari, Mauro; Stützle, Thomas; Paquete, Luis; Varrentrapp, Klaus (2002). "A Racing Algorithm for Configuring Metaheuristics". *Gecco 2002*: 11–18.
26. ↑  Jamieson, Kevin; Talwalkar, Ameet (2015-02-27). "Non-stochastic Best Arm Identification and Hyperparameter Optimization".  *arΧiv:1502.07943* [cs.LG].
27. ↑  Li, Liam; Jamieson, Kevin; Rostamizadeh, Afshin; Gonina, Ekaterina; Hardt, Moritz; Recht, Benjamin; Talwalkar, Ameet (2020-03-16). "A System for Massively Parallel Hyperparameter Tuning".  *arΧiv:1810.05934v5* [cs.LG].
28. ↑  Li, Lisha; Jamieson, Kevin; DeSalvo, Giulia; Rostamizadeh, Afshin; Talwalkar, Ameet (2020-03-16). "Hyperband: A Novel Bandit-Based Approach to Hyperparameter Optimization". *Journal of Machine Learning Research*. **18**: 1–52. arXiv:1603.06560 alt=Dapat diakses gratis.
29. ↑  Diaz, Gonzalo; Fokoue, Achille; Nannicini, Giacomo; Samulowitz, Horst (2017). "An effective algorithm for hyperparameter optimization of neural networks".  *arΧiv:1705.08520* [cs.AI].
30. ↑  Hazan, Elad; Klivans, Adam; Yuan, Yang (2017). "Hyperparameter Optimization: A Spectral Approach".  *arΧiv:1706.00764* [cs.LG].
Templat:Differentiable computing