Hiperparaméter optimalizálás

A hiperparaméter- optimalizálás egy gépi tanulási  feladat az optimális hiperparaméterek készletének kiválasztására egy tanulási algoritmushoz.

Az azonos típusú gépi tanulási modellek eltérő feltételezéseket, súlyokat vagy tanulási arányokat igényelhetnek a különböző típusú adatokhoz. Ezeket a paramétereket hiperparamétereknek nevezzük, és úgy kell hangolni, hogy a modell optimálisan tudja megoldani a tanulási problémát. Ehhez találunk egy hiperparaméter tuple -t, amely megadja azt az optimális modellt, amely az adott független adaton optimalizálja az adott veszteségfüggvényt [1] . A célfüggvény egy sor hiperparamétert vesz fel, és visszaadja a kapcsolódó veszteséget [1] . A keresztellenőrzést gyakran használják ennek az általánosító képességnek a kiértékelésére [2] .

Megközelítések

Rács keresés

A hiperparaméter-optimalizálás hagyományos módszere a rácskeresés ( vagy paramétervariáció ), amely egyszerűen kimerítő keresést végez a tanító algoritmus hiperparaméterterének manuálisan megadott részhalmazában. A rácskeresést valamilyen teljesítménymértéknek kell kísérnie, amelyet általában keresztellenőrzéssel mérnek a tanító halmazon [3] , vagy az algoritmusnak egy jól bevált tesztkészleten való futtatásával [4] .

Mivel a gépi tanulási algoritmusok paramétertere egyes paraméterekhez tartalmazhat valós vagy korlátlan értékű tereket, a rácskeresés alkalmazása előtt szükség lehet a határ manuális beállítására és diszkretizálására.

Például egy tipikus soft-gap support vector machine (SVM) osztályozó , amely egy kernel radiális bázisfüggvénnyel van felszerelve, legalább két hiperparaméterrel rendelkezik, amelyeket be kell hangolni a nem elérhető adatokon való jó teljesítmény érdekében – a C regularizációs állandót és a kernel hiperparamétert. γ. Mindkét paraméter folytonos, így a rácskereséshez az "elfogadható" értékek véges halmazát választjuk, mondjuk

A rácskeresés ezután lefuttatja az SVM-et minden párra ( C , γ) a két halmaz derékszögű szorzatában , és teszteli a teljesítményt a kiválasztott paraméterek mellett a létrehozott tesztkészleten (vagy belső keresztellenőrzéssel a tanító halmazon, ebben az esetben több SVM párban fut). Végül a rácskereső algoritmus az ellenőrzési eljárás során elért legmagasabb eredményt adja.

A rácsos keresés szenved a dimenzionalitás átkától , de gyakran könnyen párhuzamosítható , mivel általában azok a hiperparametrikus mennyiségek, amelyekkel az algoritmus dolgozik, függetlenek egymástól [2] .

Véletlenszerű keresés

A véletlenszerű keresés az összes kombináció kimerítő keresését felváltja azok véletlenszerű kiválasztásával. Ez könnyen alkalmazható a fenti diszkrét beállításokra, de a módszer általánosítható folytonos és vegyes terekre is. A véletlenszerű keresés felülmúlhatja a rácsos keresést, különösen akkor, ha csak kis számú hiperparaméter befolyásolja a gépi tanulási algoritmus teljesítményét [2] . Ebben az esetben azt mondják, hogy az optimalizálási probléma alacsony belső dimenzióval rendelkezik [5] . A véletlenszerű keresések is könnyen párhuzamosíthatók , és emellett lehetővé teszik az előzetes adatok felhasználását a véletlenszerű paraméterek mintavételi eloszlásának megadásával.

Bayesi optimalizálás

A Bayes-optimalizálás egy globális optimalizálási módszer egy ismeretlen, zajos függvény (fekete doboz) számára. A hiperparaméteres optimalizálásra alkalmazott Bayes-féle optimalizálás a leképezési függvény sztochasztikus modelljét építi fel a hiperparaméter értékekből a tesztkészleten alkalmazott célfüggvényig. Az aktuális modellen alapuló perspektivikus hiperparaméter-konfiguráció iteratív alkalmazásával, majd annak frissítésével a Bayes-optimalizálás a lehető legtöbb információt igyekszik összegyűjteni az adott függvényről, és különösen az optimum helyéről. A módszer megpróbálja egyensúlyba hozni a tesztelést (olyan hiperparaméterek, amelyeknél a változás legkevésbé megbízhatóan ismert) és a felhasználást (olyan hiperparaméterek, amelyek várhatóan a legközelebb állnak az optimálishoz). A gyakorlatban a Bayes-féle optimalizálás [6] [7] [8] [9] jobb eredményeket mutatott kevesebb számítás mellett a rácsos kereséshez és a véletlenszerű kereséshez képest, mivel lehetőség van a kísérletek minőségének megítélésére még azok végrehajtása előtt.

Gradiens alapú optimalizálás

Adott tanulási algoritmusok esetén kiszámítható a hiperparaméterek gradiense, és optimalizálható a gradiens süllyedés segítségével. E technikák első alkalmazása a neurális hálózatokra összpontosított [10] . Ezeket a módszereket aztán más modellekre is kiterjesztették, mint például a támogató vektorgépekre [11] vagy a logisztikus regresszióra [12] .

A hiperparaméteres gradiensek használatának másik megközelítése az iteratív optimalizáló algoritmus lépéseinek megkülönböztetése automatikus differenciálással [13] [14] .

Evolúciós optimalizálás

Az evolúciós optimalizálás az ismeretlen függvények zajjal történő globális optimalizálásának módszere. A hiperparaméter-optimalizálás során az evolúciós optimalizálás evolúciós algoritmusokat használ az adott algoritmus hiperparamétereinek megkeresésére [7] . Az evolúciós hiperparaméter-optimalizálás az evolúció biológiai koncepciója által ihletett folyamatot követi :

  1. Véletlenszerű megoldások kezdeti populációját hozzuk létre (azaz egy véletlenszerűen generált hiperparaméter-sort, általában 100+)
  2. Értékelje ki a hiperparaméterek sorait, és származtassa a fittségi függvényüket (például egy gépi tanulási algoritmus 10 -szeres pontosságú keresztellenőrzésével ezekkel a hiperparaméterekkel)
  3. Rangsorolja a hiperparaméter sorokat relatív alkalmasságuk szerint
  4. Cserélje ki a rosszabb teljesítményű hiperparaméter sorokat új hiperparaméter sorokra, amelyeket keresztezése és en] mutációja képez.
  5. Ismételje a 2-4 lépéseket, amíg az algoritmus kielégítő teljesítményt nem kap, vagy amíg a teljesítmény nem javul.

Az evolúciós optimalizálás a statisztikai gépi tanulási algoritmusok hiperparamétereinek optimalizálására [7] , az automatikus gépi tanulásra [15] [16] , a mély neurális hálózatok architektúrájának megtalálására [17] [18] , valamint a mély neurálisban súlyozásra szolgál. hálózatok [19] .

Egyéb

A radiális bázisfüggvény (RBF) [20] és a spektrális módszer [21] módszerei is fejlesztés alatt állnak .

Nyílt forráskódú szoftver

Rács keresés

Véletlenszerű keresés

Bayesi optimalizálás

Gradiens alapú

Evolúciós módszerek

Egyéb

Kereskedelmi szolgáltatások

Lásd még

Jegyzetek

  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 és Chih-Jen Lin (2010). Gyakorlati útmutató a vektorok osztályozásának támogatásához Archiválva : 2013. június 25. a Wayback Machine -nél . Műszaki jelentés, Tajvani Nemzeti Egyetem .
  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, Larocelle, 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), Gradient-based Hyperparameter Optimization through Reversible Learning, 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 : 0918416 . [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 Reforcement Learning, arΧiv : 1712.06567 [cs.NE]. 
  20. 1 2 Diaz, Gonzalo; Fokoue, Achille; Nannicini, Giacomo & Samulowitz, Horst (2017), Egy hatékony algoritmus neurális hálózatok hiperparaméteres optimalizálásához, 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. Nyikityin, Vychuzhanin, Sarafanov, Polonskaia, Revin, Barabanova, Maximov, Kaljuzhnaya, Boukhanovsky, 2022 , p. 109–125.
  28. Gorissen, Crombecq, Couckuyt, Demeester, Dhaene, 2010 , p. 2051–2055

Irodalom