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 :
- Vi skapar en initial population av slumpmässiga lösningar (dvs en slumpmässigt genererad hyperparametertuppel, vanligtvis 100+)
- 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)
- Rangordna hyperparametertuplar efter deras relativa kondition
- Ersätt hyperparametertupler med sämre prestanda med nya hyperparametertupler som bildas genom korsning av och mutation
- 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 2 Claesen, Marc & Bart De Moor (2015), Hyperparameter Search in Machine Learning, arΧiv : 1502.02127 [cs.LG].
- ↑ 1 2 3 Bergstra, Bengio, 2012 , sid. 281–305.
- ↑ 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 .
- ↑ Chicco, 2017 , sid. 1–17.
- ↑ Ziyu, Frank, Masrour, David, de Feitas, 2016 .
- ↑ Hutter, Hoos, Leyton-Brown, 2011 .
- ↑ 1 2 3 Bergstra, Bardenet, Bengio, Kegl, 2011 .
- ↑ Snoek, Larochelle, Adams, 2012 .
- ↑ Thornton, Hutter, Hoos, Leyton-Brown, 2013 .
- ↑ Larsen, Hansen, Svarer, Ohlsson, 1996 .
- ↑ Chapelle, Vapnik, Bousquet, Mukherjee, 2002 , sid. 131–159.
- ↑ Chuong, Foo, Ng, 2008 .
- ↑ Domke, 2012 .
- ↑ 1 2 Maclaurin, Douglas; Duvenaud, David & Adams, Ryan P. (2015), Gradientbaserad hyperparameteroptimering genom reversibelt lärande, arΧiv : 1502.03492 [stat.ML].
- ↑ 1 2 Olson, Urbanowicz, Andrews, Lavender, Kidd, Moore, 2016 , sid. 123–137.
- ↑ 1 2 Olson, Bartley, Urbanowicz, Moore, 2016 , sid. 485–492.
- ↑ 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] .
- ↑ 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].
- ↑ 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].
- ↑ 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].
- ↑ 1 2 Hazan, Elad; Klivans, Adam & Yuan, Yang (2017), Hyperparameter Optimization: A Spectral Approach, arΧiv : 1706.00764 [cs.LG].
- ↑ Martinez-Cantin, 2014 , sid. 3915−3919.
- ↑ Kotthoff, Thornton, Hoos, Hutter, Leyton-Brown, 2017 , sid. 1–5.
- ↑ Feurer, Klein, Eggensperger, Springenberg, Blum, Hutter, 2015 , sid. 2962–2970.
- ↑ Baptista, Ricardo & Poloczek, Matthias (2018), Bayesian Optimization of Combinatorial Structures, arΧiv : 1806.08838 [stat.ML].
- ↑ Hutter, Hoos, Leyton-Brown, 2011 , sid. 507-523.
- ↑ Nikitin, Vychuzhanin, Sarafanov, Polonskaia, Revin, Barabanova, Maximov, Kalyuzhnaya, Boukhanovsky, 2022 , sid. 109–125.
- ↑ Gorissen, Crombecq, Couckuyt, Demeester, Dhaene, 2010 , sid. 2051–2055
Litteratur
- James Bergstra, Yoshua Bengio. Slumpmässig sökning efter hyperparameteroptimering // J. Machine Learning Research. - 2012. - T. 13 .
- Chicco D. Tio snabba tips för maskininlärning i beräkningsbiologi // BioData Mining. - 2017. - December ( vol. 10 ). — S. 1–17. - doi : 10.1186/s13040-017-0155-3 . — PMID 29234465 .
- Wang Ziyu, Hutter Frank, Zoghi Masrour, Matheson David, Nando de Feitas. Bayesiansk optimering i en miljard dimensioner via slumpmässiga inbäddningar // Journal of Artificial Intelligence Research. - 2016. - Vol. 55 . - doi : 10.1613/jair.4806 . Arkiverad från originalet den 23 april 2018.
- James Bergstra, Remi Bardenet, Yoshua Bengio, Balazs Kegl. Algoritmer för hyperparameteroptimering // Framsteg inom neurala informationsbehandlingssystem. — 2011.
- Jasper Snoek, Hugo Larochelle, Ryan Adams. Praktisk Bayesiansk optimering av maskininlärningsalgoritmer // Framsteg inom neurala informationsbehandlingssystem. - 2012. - . - arXiv : 1206.2944 .
- Chris Thornton, Frank Hutter, Holger Hoos, Kevin Leyton-Brown. Auto-WEKA: Kombinerat urval och hyperparameteroptimering av klassificeringsalgoritmer // Knowledge Discovery and Data Mining. - 2013. - . - arXiv : 1208.3719 .
- Jan Larsen, Lars Kai Hansen, Claus Svarer, M Ohlsson. Design och regularisering av neurala nätverk: optimal användning av en valideringsuppsättning // Proceedings of the 1996 IEEE Signal Processing Society Workshop. — 1996.
- Olivier Chapelle, Vladimir Vapnik, Olivier Bousquet, Sayan Mukherjee. Välja flera parametrar för att stödja vektormaskiner // Machine Learning. - 2002. - Vol. 46.- doi : 10.1023/a:1012450327387 .
- Chuong B., Chuan-Sheng Foo, Andrew Y Ng. Effektiv multipel hyperparameterinlärning för loglinjära modeller // Advances in Neural Information Processing Systems 20. - 2008.
- Justin Domke. Generiska metoder för optimeringsbaserad modellering // AISTATS. - 2012. - T. 22 .
- Ruben Martinez Cantin. BayesOpt: Ett Bayesianskt optimeringsbibliotek för icke-linjär optimering, experimentell design och banditer // Journal of Machine Learning Research. - 2014. - T. 15 . — S. 3915−3919 . - . - arXiv : 1405.7430 .
- Kotthoff L., Thornton C., Hoos HH, Hutter F., Leyton-Brown K. Auto-WEKA 2.0: Automatiskt modellval och hyperparameteroptimering i WEKA // Journal of Machine Learning Research. — 2017.
- Feurer M., Klein A., Eggensperger K., Springenberg J., Blum M., Hutter F. Effektiv och robust automatiserad maskininlärning // Advances in Neural Information Processing Systems 28 (NIPS 2015). — 2015.
- Hutter F., Hoos HH, Leyton-Brown K. Sekventiell modellbaserad optimering för allmän algoritmkonfiguration // Proceedings of the conference on Learning and Intelligent Optimization (LION 5) . — Rom, Italien: Springer-Verlag, 2011.
- Olson RS, Urbanowicz RJ, Andrews PC, Lavender NA, Kidd L., Moore JH Automatisera biomedicinsk datavetenskap genom trädbaserad pipelineoptimering // Proceedings of EvoStar 2016 . - 2016. - T. 9597. - (Lecture Notes in Computer Science). — ISBN 978-3-319-31203-3 . - doi : 10.1007/978-3-319-31204-0_9 .
- Olson RS, Bartley N., Urbanowicz RJ, Moore JH Utvärdering av ett trädbaserat pipelineoptimeringsverktyg för automatisering av datavetenskap . - 2016. - C. Proceedings of EvoBIO 2016 . — ISBN 9781450342063 . - doi : 10.1145/2908812.2908918 . - arXiv : 1603.06212 .
- Dirk Gorissen, Karel Crombecq, Ivo Couckuyt, Piet Demeester, Tom Dhaene. En surrogatmodellerings- och adaptiv samplingsverktygslåda för datorbaserad design // J. Machine Learning Research. - 2010. - T. 11 . — S. 2051–2055 .
- Nikolay O. Nikitin, Pavel Vychuzhanin, Mikhail Sarafanov, Iana S. Polonskaia, Ilia Revin, Irina V. Barabanova, Gleb Maximov, Anna V. Kalyuzhnaya, Alexander Boukhanovsky. Automatiserat evolutionärt tillvägagångssätt för design av sammansatta pipelines för maskininlärning // Future Generation Computer Systems. - 2022. - T. 127 . - S. 109-125 .