Optimizarea hiperparametrului

Optimizarea hiperparametrilor este o  sarcină de învățare automată care constă în alegerea unui set de hiperparametri optimi pentru un algoritm de învățare.

Aceleași tipuri de modele de învățare automată pot necesita ipoteze, ponderi sau rate de învățare diferite pentru diferite tipuri de date. Acești parametri se numesc hiperparametri și ar trebui ajustați astfel încât modelul să poată rezolva în mod optim problema de învățare. Pentru aceasta, se găsește un tuplu hiperparametru , care oferă modelul optim care optimizează funcția de pierdere dată pe datele independente date [1] . Funcția obiectiv ia un tuplu de hiperparametri și returnează pierderea asociată [1] . Validarea încrucișată este adesea folosită pentru a evalua această capacitate de generalizare [2] .

Abordări

Căutare în grilă

Metoda tradițională de realizare a optimizării hiperparametrilor este căutarea în rețea (sau variația parametrilor ), care pur și simplu efectuează o căutare exhaustivă peste un subset specificat manual al spațiului hiperparametric al algoritmului de antrenament. Căutarea în zăbrele trebuie să fie însoțită de o anumită măsură a performanței, măsurată de obicei prin validare încrucișată pe setul de antrenament [3] , sau prin rularea algoritmului pe un set de teste bine stabilit [4] .

Deoarece spațiul de parametri al unui algoritm de învățare automată pentru anumiți parametri poate include spații cu valori reale sau nemărginite, setarea manuală a limitei și discretizarea poate fi necesară înainte de a aplica căutarea în rețea.

De exemplu, un clasificator tipic de mașină vectorială de suport soft-gap (SVM) echipat cu o funcție de bază radială a nucleului are cel puțin doi hiperparametri care trebuie reglați pentru o performanță bună pe date indisponibile - constanta de regularizare C și hiperparametrul nucleului γ. Ambii parametri sunt continui, astfel încât se alege un set finit de valori „acceptabile” pentru căutarea în zăbrele, să zicem

Căutarea în zăbrele rulează apoi SVM-ul pentru fiecare pereche ( C , γ) în produsul cartezian al celor două seturi și testează performanța sub parametrii aleși pe setul de testare stabilit (sau prin validare încrucișată internă pe setul de antrenament, caz în care mai multe SVM-uri sunt rulate în perechi). În cele din urmă, algoritmul de căutare în rețea produce ca rezultat cel mai înalt rezultat obținut în procedura de verificare.

Căutarea în zăbrele suferă de blestemul dimensionalității , dar este adesea ușor paralelizabilă , deoarece de obicei mărimile hiperparametrice cu care lucrează algoritmul sunt independente unele de altele [2] .

Căutare aleatorie

Căutarea aleatorie înlocuiește căutarea exhaustivă a tuturor combinațiilor cu o selecție aleatorie a acestora. Acest lucru poate fi aplicat cu ușurință setărilor discrete de mai sus, dar metoda poate fi generalizată și la spații continue și mixte. Căutarea aleatorie poate depăși căutarea în zăbrele, mai ales dacă doar un număr mic de hiperparametri afectează performanța algoritmului de învățare automată [2] . În acest caz, se spune că problema de optimizare are o dimensiune intrinsecă scăzută [5] . Căutările aleatoare sunt, de asemenea, ușor paralelizabile și, în plus, permit utilizarea datelor preliminare prin specificarea unei distribuții pentru eșantionarea parametrilor aleatori.

Optimizare bayesiană

Optimizarea bayesiană este o metodă globală de optimizare pentru o funcție necunoscută (cutie neagră) cu zgomot. Optimizarea bayesiană aplicată optimizării hiperparametrice construiește un model stocastic al funcției de mapare de la valorile hiperparametrului la o funcție obiectiv aplicată pe setul de testare. Prin aplicarea iterativă a unei configurații de hiperparametru de perspectivă bazată pe modelul actual și apoi actualizarea acesteia, optimizarea bayesiană urmărește să adune cât mai multe informații despre acea funcție și, în special, despre locația optimului. Metoda încearcă să echilibreze sondarea (hiper-parametrii pentru care modificarea este cel mai puțin cunoscută) și utilizarea (hiper-parametrii care se așteaptă să fie cel mai aproape de optim). În practică, optimizarea bayesiană a arătat [6] [7] [8] [9] rezultate mai bune cu mai puține calcule în comparație cu căutarea în grilă și căutarea aleatorie, datorită posibilității de a evalua calitatea experimentelor chiar înainte de a fi efectuate.

Optimizare bazată pe gradient

Pentru algoritmi de învățare specifici, se poate calcula gradientul hiperparametrilor și îi poate optimiza folosind coborârea gradientului. Prima utilizare a acestor tehnici s-a concentrat pe rețelele neuronale [10] . Aceste metode au fost apoi extinse la alte modele, cum ar fi mașinile vector suport [11] sau regresia logistică [12] .

O altă abordare a utilizării gradienților de hiperparametri este diferențierea pașilor algoritmului de optimizare iterativă folosind diferențierea automată [13] [14] .

Optimizare evolutivă

Optimizarea evolutivă este o metodologie pentru optimizarea globală a funcțiilor necunoscute cu zgomot. În optimizarea hiperparametrului, optimizarea evolutivă utilizează algoritmi evolutivi pentru a găsi hiperparametri pentru un algoritm dat [7] . Optimizarea hiperparametrică evolutivă urmează un proces inspirat de conceptul biologic de evoluție :

  1. Creăm o populație inițială de soluții aleatoare (adică un tuplu hiperparametru generat aleatoriu, de obicei 100+)
  2. Evaluați tuplurile de hiperparametri și obțineți funcția de fitness a acestora (de exemplu, utilizând validarea încrucișată cu precizie de 10 ori a unui algoritm de învățare automată cu acești hiperparametri)
  3. Clasați tuplurile hiperparametrice după fitness-ul lor relativ
  4. Înlocuiți tuplurile hiperparametrice cu performanțe mai slabe cu tupluri hiperparametric noi formate prin încrucișare și mutație
  5. Repetați pașii 2-4 până când obținem o performanță satisfăcătoare a algoritmului sau până când performanța încetează să se îmbunătățească

Optimizarea evolutivă este utilizată pentru a optimiza hiperparametrii pentru algoritmii statistici de învățare automată [7] , învățarea automată a mașinilor [15] [16] , pentru a găsi arhitectura rețelelor neuronale profunde [17] [18] , precum și pentru a forma ponderi în neuronale profunde. rețele [19] .

Altele

De asemenea, sunt în curs de dezvoltare metodele funcției de bază radială (RBF) [20] și metoda spectrală [21] .

Software cu sursă deschisă

Căutare în grilă

Căutare aleatorie

Optimizare bayesiană

Bazat pe gradient

Metode evolutive

Altele

Servicii comerciale

Vezi și

Note

  1. 1 2 Claesen, Marc & Bart De Moor (2015), Hyperparameter Search in Machine Learning, arΧiv : 1502.02127 [cs.LG]. 
  2. 1 2 3 Bergstra, Bengio, 2012 , p. 281–305.
  3. Chin-Wei Hsu, Chih-Chung Chang și Chih-Jen Lin (2010). Un ghid practic pentru a sprijini clasificarea vectorilor Arhivat 25 iunie 2013 la Wayback Machine . Raport tehnic, Universitatea Națională din Taiwan .
  4. Chicco, 2017 , p. 1–17.
  5. Ziyu, Frank, Masrour, David, de Feitas, 2016 .
  6. Hutter, Hoos, Leyton-Brown, 2011 .
  7. 1 2 3 Bergstra, Bardenet, Bengio, Kegl, 2011 .
  8. Snoek, Larochelle, Adams, 2012 .
  9. Thornton, Hutter, Hoos, Leyton-Brown, 2013 .
  10. Larsen, Hansen, Svarer, Ohlsson, 1996 .
  11. Chapelle, Vapnik, Bousquet, Mukherjee, 2002 , p. 131–159.
  12. Chuong, Foo, Ng, 2008 .
  13. Domke, 2012 .
  14. 1 2 Maclaurin, Douglas; Duvenaud, David & Adams, Ryan P. (2015), Optimizarea hiperparametrului bazată pe gradient prin învățare reversibilă, arΧiv : 1502.03492 [stat.ML]. 
  15. 1 2 Olson, Urbanowicz, Andrews, Lavender, Kidd, Moore, 2016 , p. 123–137.
  16. 1 2 Olson, Bartley, Urbanowicz, Moore, 2016 , p. 485–492.
  17. Miikkulainen R, Liang J, Meyerson E, Rawal A, Fink D, Francon O, Raju B, Shahrzad H, Navruzyan A, Duffy N, Hodjat B (2017), Evolving Deep Neural Networks, arΧiv : 1703.00548 [cs.NE] . 
  18. Jaderberg M, Dalibard V, Osindero S, Czarnecki WM, Donahue J, Razavi A, Vinyals O, Green T, Dunning I, Simonyan K, Fernando C, Kavukcuoglu K (2017), Population Based Training of Neural Networks, arΧiv : 1711,0946 [cs.LG]. 
  19. Such FP, Madhavan V, Conti E, Lehman J, Stanley KO, Clune J (2017), Deep Neuroevolution: Genetic Algorithms Are a Competitive Alternative for Training Deep Neural Networks for Reinforcement Learning, arΧiv : 1712.06567 [cs.NE]. 
  20. 1 2 Diaz, Gonzalo; Fokoue, Achille; Nannicini, Giacomo & Samulowitz, Horst (2017), An effective algorithm for hyperparameter optimization of neuronal networks, arΧiv : 1705.08520 [cs.AI]. 
  21. 1 2 Hazan, Elad; Klivans, Adam & Yuan, Yang (2017), Hyperparameter Optimization: A Spectral Approach, arΧiv : 1706.00764 [cs.LG]. 
  22. Martinez-Cantin, 2014 , p. 3915−3919.
  23. Kotthoff, Thornton, Hoos, Hutter, Leyton-Brown, 2017 , p. 1–5.
  24. Feurer, Klein, Eggensperger, Springenberg, Blum, Hutter, 2015 , p. 2962–2970.
  25. Baptista, Ricardo & Poloczek, Matthias (2018), Bayesian Optimization of Combinatorial Structures, arΧiv : 1806.08838 [stat.ML]. 
  26. Hutter, Hoos, Leyton-Brown, 2011 , p. 507-523.
  27. Nikitin, Vychuzhanin, Sarafanov, Polonskaia, Revin, Barabanova, Maximov, Kalyuzhnaya, Boukhanovsky, 2022 , p. 109–125.
  28. Gorissen, Crombecq, Couckuyt, Demeester, Dhaene, 2010 , p. 2051–2055

Literatură