Hyperparameteroptimering

Hyperparameteroptimering är en  maskininlärningsuppgift för att välja en uppsättning optimala hyperparametrar för en inlärningsalgoritm.

Samma typer av maskininlärningsmodeller kan kräva olika antaganden, vikter eller inlärningshastigheter för olika typer av data. Dessa parametrar kallas hyperparametrar och bör trimmas så att modellen optimalt kan lösa inlärningsproblemet. För detta hittas en hyperparametertuppel , som ger den optimala modellen som optimerar den givna förlustfunktionen på den givna oberoende data [1] . Objektivfunktionen tar en tupel av hyperparametrar och returnerar den associerade förlusten [1] . Korsvalidering används ofta för att utvärdera denna generaliserande förmåga [2] .

Tillvägagångssätt

Rutnätssökning

Den traditionella metoden för att utföra hyperparameteroptimering är gittersökning (eller parametervariation ), som helt enkelt gör en uttömmande sökning över en manuellt specificerad delmängd av träningsalgoritmens hyperparameterutrymme. Gittersökning måste åtföljas av något mått på prestation, vanligtvis mätt genom korsvalidering på träningssetet [3] , eller genom att köra algoritmen på ett väletablerat testset [4] .

Eftersom parameterutrymmet för en maskininlärningsalgoritm för vissa parametrar kan inkludera utrymmen med verkliga eller obegränsade värden, kan manuell inställning av gränsen och diskretisering vara nödvändig innan du tillämpar gittersökningen.

Till exempel har en typisk SVM- klassificerare ( soft-gap support vector machine) utrustad med en kärna radiell basfunktion minst två hyperparametrar som måste ställas in för bra prestanda på otillgänglig data - regulariseringskonstanten C och kärnhyperparametern γ. Båda parametrarna är kontinuerliga, så en ändlig uppsättning "acceptabla" värden väljs för gittersökningen, t.ex.

Gittersökning kör sedan SVM för varje par ( C , γ) i den kartesiska produkten av de två uppsättningarna och testar prestandan under de valda parametrarna på den etablerade testuppsättningen (eller genom intern korsvalidering på träningsuppsättningen, i vilket fall flera SVM körs i par). Slutligen producerar gittersökningsalgoritmen som ett resultat det högsta resultatet som uppnåtts i verifieringsproceduren.

Gittersökning lider av dimensionalitetens förbannelse , men är ofta lätt parallelliserbar , eftersom vanligtvis de hyperparametriska storheterna som algoritmen arbetar med är oberoende av varandra [2] .

Slumpmässig sökning

Slumpmässig sökning ersätter den uttömmande sökningen av alla kombinationer med ett urval av dem slumpmässigt. Detta kan enkelt tillämpas på de diskreta inställningarna ovan, men metoden kan också generaliseras till kontinuerliga och blandade utrymmen. Slumpmässig sökning kan överträffa gittersökning, särskilt om endast ett litet antal hyperparametrar påverkar prestandan hos maskininlärningsalgoritmen [2] . I detta fall sägs optimeringsproblemet ha en låg inneboende dimension [5] . Slumpmässiga sökningar är också lätta att parallellisera och tillåter dessutom användning av preliminära data genom att specificera en fördelning för urval av slumpmässiga parametrar.

Bayesiansk optimering

Bayesiansk optimering är en global optimeringsmetod för en okänd funktion (svart låda) med brus. Bayesiansk optimering tillämpad på hyperparametrisk optimering bygger en stokastisk modell av mappningsfunktionen från hyperparametervärden till en objektiv funktion som tillämpas på testsetet. Genom att iterativt tillämpa en perspektivhyperparameterkonfiguration baserad på den nuvarande modellen och sedan uppdatera den, försöker Bayesiansk optimering samla in så mycket information som möjligt om den funktionen och i synnerhet platsen för det optimala. Metoden försöker balansera sondering (hyperparametrar för vilka förändring är minst tillförlitligt känd) och användning (hyperparametrar som förväntas vara närmast det optimala). I praktiken har Bayesiansk optimering visat [6] [7] [8] [9] bättre resultat med mindre beräkning jämfört med rutnätssökning och slumpmässig sökning på grund av möjligheten att bedöma kvaliteten på experiment redan innan de utförs.

Gradientbaserad optimering

För specifika inlärningsalgoritmer kan man beräkna gradienten för hyperparametrar och optimera dem med hjälp av gradientnedstigning. Den första användningen av dessa tekniker fokuserade på neurala nätverk [10] . Dessa metoder utökades sedan till andra modeller såsom stödvektormaskiner [11] eller logistisk regression [12] .

Ett annat sätt att använda hyperparametergradienter är att differentiera stegen i den iterativa optimeringsalgoritmen med hjälp av automatisk differentiering [13] [14] .

Evolutionär optimering

Evolutionär optimering är en metodik för global optimering av okända funktioner med brus. I hyperparameteroptimering använder evolutionär optimering evolutionära algoritmer för att hitta hyperparametrar för en given algoritm [7] . Evolutionär hyperparameteroptimering följer en process inspirerad av det biologiska konceptet evolution :

  1. Vi skapar en initial population av slumpmässiga lösningar (dvs en slumpmässigt genererad hyperparametertuppel, vanligtvis 100+)
  2. Utvärdera tupel av hyperparametrar och härleda deras konditionsfunktion (t.ex. genom att använda 10x precisionskorsvalidering av en maskininlärningsalgoritm med dessa hyperparametrar)
  3. Rangordna hyperparametertuplar efter deras relativa kondition
  4. Ersätt hyperparametertupler med sämre prestanda med nya hyperparametertupler som bildas genom korsning av och mutation
  5. Upprepa steg 2-4 tills vi får en tillfredsställande prestanda av algoritmen eller tills prestandan slutar förbättras

Evolutionär optimering används för att optimera hyperparametrar för statistiska maskininlärningsalgoritmer [7] , automatisk maskininlärning [15] [16] , för att hitta arkitekturen för djupa neurala nätverk [17] [18] , samt för att bilda vikter i djupa neurala nätverk nätverk [19] .

Annat

Metoderna för den radiella basfunktionen (RBF) [20] och den spektrala metoden [21] utvecklas också .

Programvara med öppen källkod

Rutnätssökning

Slumpmässig sökning

Bayesiansk optimering

Gradientbaserad

Evolutionära metoder

Annat

Kommersiella tjänster

Se även

Anteckningar

  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 , sid. 281–305.
  3. Chin-Wei Hsu, Chih-Chung Chang och Chih-Jen Lin (2010). En praktisk guide för att stödja vektorklassificering Arkiverad 25 juni 2013 på Wayback Machine . Teknisk rapport, National Taiwan University .
  4. Chicco, 2017 , sid. 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 , sid. 131–159.
  12. Chuong, Foo, Ng, 2008 .
  13. Domke, 2012 .
  14. 1 2 Maclaurin, Douglas; Duvenaud, David & Adams, Ryan P. (2015), Gradientbaserad hyperparameteroptimering genom reversibelt lärande, arΧiv : 1502.03492 [stat.ML]. 
  15. 1 2 Olson, Urbanowicz, Andrews, Lavender, Kidd, Moore, 2016 , sid. 123–137.
  16. 1 2 Olson, Bartley, Urbanowicz, Moore, 2016 , sid. 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 : 198461. [cs.LG]. 
  19. Sådan 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), En effektiv algoritm för hyperparameteroptimering av neurala nätverk, 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 , sid. 3915−3919.
  23. Kotthoff, Thornton, Hoos, Hutter, Leyton-Brown, 2017 , sid. 1–5.
  24. Feurer, Klein, Eggensperger, Springenberg, Blum, Hutter, 2015 , sid. 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 , sid. 507-523.
  27. Nikitin, Vychuzhanin, Sarafanov, Polonskaia, Revin, Barabanova, Maximov, Kalyuzhnaya, Boukhanovsky, 2022 , sid. 109–125.
  28. Gorissen, Crombecq, Couckuyt, Demeester, Dhaene, 2010 , sid. 2051–2055

Litteratur