• No results found

Verktyg för hyperparameteroptimering

N/A
N/A
Protected

Academic year: 2021

Share "Verktyg för hyperparameteroptimering"

Copied!
8
0
0

Loading.... (view fulltext now)

Full text

(1)

Linköpings universitet SE–581 83 Linköping 013-28 10 00 , www.liu.se

Linköpings universitet | Institutionen för datavetenskap Examensarbete på grundnivå, 16hp | Datateknik 21 | LIU-IDA/LITH-EX-G--21/042--SE

Verktyg för

hyperparameter-optimering

Hyperparameter Tuning Tools

an analysis of tools for optimization of hyperparameters

Patrick Lundberg

Handledare : Rita Kovordanyi Examinator : Jalal Maleki

(2)

Upphovsrätt

Detta dokument hålls tillgängligt på Internet - eller dess framtida ersättare - under 25 år från publice-ringsdatum under förutsättning att inga extraordinära omständigheter uppstår.

Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner, skriva ut enstaka kopi-or för enskilt bruk och att använda det oförändrat för ickekommersiell fkopi-orskning och för undervisning. Överföring av upphovsrätten vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan använd-ning av dokumentet kräver upphovsmannens medgivande. För att garantera äktheten, säkerheten och tillgängligheten finns lösningar av teknisk och administrativ art.

Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsman i den omfattning som god sed kräver vid användning av dokumentet på ovan beskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan form eller i sådant sammanhang som är kränkande för upphovsman-nens litterära eller konstnärliga anseende eller egenart.

För ytterligare information om Linköping University Electronic Press se förlagets hemsida http://www.ep.liu.se/.

Copyright

The publishers will keep this document online on the Internet - or its possible replacement - for a period of 25 years starting from the date of publication barring exceptional circumstances.

The online availability of the document implies permanent permission for anyone to read, to down-load, or to print out single copies for his/hers own use and to use it unchanged for non-commercial research and educational purpose. Subsequent transfers of copyright cannot revoke this permission. All other uses of the document are conditional upon the consent of the copyright owner. The publisher has taken technical and administrative measures to assure authenticity, security and accessibility.

According to intellectual property law the author has the right to be mentioned when his/her work is accessed as described above and to be protected against infringement.

For additional information about the Linköping University Electronic Press and its procedu-res for publication and for assurance of document integrity, please refer to its www home page: http://www.ep.liu.se/.

(3)

SAMMANFATTNING

Hyperparameteroptimering är ett viktigt uppdrag för att ef-fektivt kunna använda en modell för maskininlärning. Att utföra detta manuellt kan vara tidskrävande, utan garanti för god kvalitet på resulterande hyperparametrar. Att använda verktyg för detta ändamål är att föredra, men det finns ett stort antal verktyg som använder olika algoritmer. Hur effektiva dessa olika verktyg är relativt varandra är ett mindre utforskat område. Denna studie bidrar med en enkel analys av hur två verktyg för sökning av hyperparametrar, Scikit och Ray Tune, fungerar i jämförelse med varandra.

INTRODUKTION

Maskininlärning är en del av ämnet artificiell intelligens. Ar-betet med maskininlärning kan kort definieras som att en dator med olika uträkningsmetoder använder ”erfarenhetsdata” för att förbättra förmågan för ett program eller utföra diverse förut-sägelser [17].

Det användningsområde många kanske skulle komma att tänka på när de hör talas om maskininlärning, eller artificiell intelli-gens, är den artificiell intelligens som vi kan stöta på i olika sorters datorspel, där mycket arbete pågår för att skapa figurer som beter sig på ett så intelligent vis som möjligt. Men det finns även mindre självklara och mer praktiska situationer där maskininlärning kan användas till stor nytta. Några exempel på detta kan vara att använda maskininlärning för att förutsäga skador i vattenrör, olika vädersituationer och personalisering av reklam [20].

Maskininlärning utgår från olika modeller och parametrar som används tillsammans med modellerna. Dessa parame-trar kan delas upp i två grupper; ”vanliga” parameparame-trar och hyperparametrar. Hyperparametrar kan beskrivas som förutbestämda värden vilka modellen kan använda sig av för att bestämma värdet på resterande parametrar. Att hitta rätt hy-perparametrar är viktigt inom maskininlärning för att effektivt använda en modell.

För att söka efter de bästa hyperparametrarna går det antingen att göra det manuellt eller automatiskt med hjälp av olika algo-ritmer. Manuell sökning är ett möjligt val, men blir snabbt ett opraktiskt val när antalet parametrar ökar. Det vanliga är alltså att använda sig av en av de många algoritmer som finns. De tre mer grundläggande kallas ”grid search”, ”random search” och ”bayesian optimization”, med en del andra algoritmer som utgår ifrån dessa.

För att hjälpa till med att söka efter optimala hyperparametrar för en modell finns det en stor mängd av program för detta, baserade på de olika algoritmerna. Bara för att nämna några av dessa program: • Scikit-learn • Scikit-optimize • HpBandster • Ray Tune • Talos • Keras Tuner Syfte

Det finns alltså en stor mängd olika program som kan användas för sökningen av hyperparametrar, med olika funktioner och implementationer. Detta medför en utmaning: vilket av alla dessa verktyg är bäst att använda?

Denna studie går ut på att ge stöd för de som arbetar med maskininlärning och kan ha en fråga av denna sort. Eftersom detta är en enskild studie går det inte att ge ett fullständigt svar för denna fråga, utan snarare ett svar för en del av dessa verktyg, vilket kan användas med andra potentiella studier för att ge det fulla svaret.

Eftersom syftet är att utvärdera verktyg spelar det ingen större roll vad för sorts modell det är som testas, även om det bidrar till styrkan av en studie av detta slag att testa på modeller av olika storlekar. Huvudidéen är alltså att testa olika verktyg på en modell med typiska hyperparametrar. Modellen ska vara relativt enkel och identisk mellan verktygen som testas, förutom eventuella nödvändiga anpassningar.

Frågeställning

Utifrån testmodellerna och valda verktyg, vilka fördelar har verktygen gentemot varandra med fokus på:

• Körningstid • Precision

• Bredd i användningsområde • Enkel kod (att skriva och följa)

Avgränsning

För att inte göra studien för stor har de verktyg som studeras begränsats till ett fåtal av alla kända program. De verktyg som har valts att testas är Scikit-optimize och Ray Tune. Dessa täcker de olika algoritmerna för parameteroptimering, är två av de mer populära verktygen och med en av dem skapad med stöd för användning med Keras och TensorFlow, vilka är moderna och populära bibliotek för maskininlärning.

TEORI

Mycket studier har gjorts inom området maskininlärning och hyperparametersökning. För att sammanfatta relevant kunskap ifrån dessa kan det delas upp i teori bakom hyperparameter-sökning, data om mjukvara och utvärdering av verktyg för hyperparametersökning.

Studier inom hyperparametersökning

Många olika metoder för hyperparametersökning har det tes-tats och teoriserats om. Dessa kan sammanfattas till manual search, grid search, random search, Bayesian Optimization (BO) [1] och HyperBand [23, 22].

Babysitting, eller manual search, är den första algoritmen och har använts mycket av studenter och forskare i början. Denna metod handlar om helt manuell inställning av hyperparametrar och beror mycket på personlig erfarenhet och kunskap för att fungera effektivt [22]. Detta medför att denna metod inte är relevant när det gäller studie av verktyg.

(4)

Grid searchär en metod där alla möjliga kombinationer av inställningar av hyperparametrar undersöks, inom ett speci-fierat område. Har visats spendera för mycket tid på mindre viktiga parametrar, eftersom det oftast är så att alla hyper-parametrar inte är lika viktiga för resultatet [19, 8, 4]. Enkel, men oeffektiv.

Random searchär en metod där möjliga inställningar väljs slumpmässigt för alla hyperparametrar utifrån begränsningar av användaren. Har visats vara mer praktisk och effektiv än grid search [19, 8, 11], men kan inte lova att vara lika precis. En av anledningarna för detta är att random search spenderar mindre tid på oviktiga parametrar [4].

Hyperbandär en metod som utgår från random search, med extra analyser under sökningens gång för att undvika onödiga spår och på så vis effektivisera processen [13, 23, 22]. Vissa versioner av HyperBand kan utgå ifrån grid search [8], men är inte vanliga.

BOutgår från statistiska metoder och funktioner som föreslår nya parametervärden baserade på tidigare resultat [10]. Det finns olika metoder baserade på BO, till exempel Sequential Model-based Algorithm Configuration, Tree-structured Parzen Estimator och Gaussian Process [19, 8], alla med olika mått på effektivitet och användningsområden.

De två sistnämnda algoritmerna är de två mest använda för effektiv hyperparameteroptimering inom forskning [19, 7]. En stor anledning till varför dessa två algoritmer är mer populära och effektiva än tidigare metoder som manual search, random search och grid search är att HyperBand och BO använder sig av tidigare resultat under sökningen [22, 6]. Det forskas ständigt på nyare metoder för att försöka optimera ytterligare, ett exempel på en sådan är Bayesian optimized HyperBand (BOHB) [22, 9], en kombination av de två populära algorit-merna. Idén bakom BOHB är en metod med styrkorna från både BO och HyperBand.

Flera studier utvärderar dessa metoder, det alla kommer fram till är att random search ger bättre resultat än grid search [4] och att HyperBand/BO är bättre än tidigare metoder [3, 22]. Förutom detta skiljer sig resultaten åt, ofta på grund av olika arbetsmetoder och versioner av algoritmerna som testas. Vissa tycker att HyperBand är bäst [13, 23], andra visar att bäst resultat kommer från användande av BO [12, 22, 8]. Detta är såklart baserat på generella resultat, eftersom både HyperBand och BO har vissa styrkor och svagheter. Ett exempel är att BO inte klarar av parallellisering, vilket HyperBand gör, men Hy-perBand passar inte lika bra för vissa typer av hyperparametrar [22]. Av denna anledning skapades BOHB, som har visats av studier att ofta kunna ge liknande eller bättre effektivitet än HyperBand och BO-baserade metoder [22, 9].

Data om mjukvara

För forskning och maskininlärning är Python med stor marginal det populäraste språket, bland annat för att koden är lätt att skriva, läsa [19], felsöka och integrera med andra pro-gramspråk [16]. Några av de mest populära Pythonbiblioteken för maskininlärningsforskning är NumPy, Scikit-learn och Keras [21].

Relaterat till NumPy finns SciPy, och både NumPy och SciPy används av maskininlärningsbibliotek som till exempel Scikit-learn [19]. Samma gäller för Tensorflow, som är ett populärt bibliotek som hör ihop med Keras [16]. Detta kan styrka idéen att Scikit-learn och Keras är värda att studera närmare. Scikit-learn har blivit ett standardverktyg för maskininlärning, i alla fall för mindre datamängder, till den grad att andra bibliotek är baserade på dess struktur. Scikit-learn är fokuserad på standardiserade metoder [19], vilket kan medföra nackdelen att nya, effektivare algoritmer inte finns med.

En styrka för Scikit-learn är att det finns många tillägg, till exempel Scikit-optimize som huvudsakligen bidrar med BO baserade metoder. Talos nämns även som ett större verktyg skapat för Keras och Tensorflow [22], med stöd för olika metoder.

Utvärdering av verktyg

Olika studier finns för att introducera eller utvärdera verktyg för hyperparametersökning. Ett exempel är HyperOpt, som tas upp som ett bibliotek som bidrar med moderna BO baserade metoder, samt visar på hur effektiva dessa metoder är [5, 18]. Två andra, som även jämförs med liknande verktyg, är studier på Ray Tune och Optuna. För Ray Tune hävdar författarna att Tune har bättre flexibilitet än andra verktyg, bland annat i hur deras kod skrivs och i den mängd av algoritmer Tune ger stöd för [14]. I utvärderingen av Optuna tar författarna upp att Optuna är lättare att använda än andra liknande verktyg. Som ett exempel visar de kod för Optuna och kod för HyperOpt med samma funktionalitet, och poängterar att deras kod för Optuna är kortare samt lättare att förstå [2].

Slutsatsen som kan dras av alla dessa studier är att olika ver-sioner av algoritmer, och därmed olika verktyg, kan ge olika resultat. Olika typer av hyperparametrar och testdata spelar också en stor roll. Det finns många studier för att bidra med nya verktyg eller algoritmer, men inte många som fokuserar specifikt på hur olika verktyg fungerar relativt varandra. De studier som har hittats med störst relevans för detta var de som utvärderade Ray Tune [14] och Optuna [2].

Det som denna studie kan bidra med utöver existerande är alltså ett relativt mått av funktionaliteten av olika verktyg för hyperparametersökning, i detta fall för Scikit-optimize och Ray Tune. Något som har visats är hur viktigt det är med olika typer av testdata, vilket är bra att ha i åtanke när olika algoritmer studeras och jämförs.

Utifrån introduktionen och teorin kan valet av verktyg mo-tiveras utifrån att de fokuserar på Scikit, Tensorflow och Keras, vilka har beskrivits som populära verktyg för maskininlärning. SciKits är olika bibliotek som bygger på SciPy. Av dessa är det Scikit-learn och Scikit-optimize som är kända för att användas för maskininlärning. Scikit-optimize utgår från Scikit-learn och bidrar med mer moderna och effektiva algoritmer, som Hyperband och BO. Från detta är Scikit-optimize ett självklart verktyg att testa i detta område.

Tensorflow och tillägget Keras är populära bibliotek för mask-ininlärning. De kända verktyg för hyperparameteroptimering

(5)

som hävdar att stödja Keras verkar främst vara Talos, Keras Tuner och Ray Tune. Talos verkar vara ett äldre verktyg med osäkra metoder, så det kan uteslutas. Keras Tuner är ett verk-tyg väldigt nära Keras med stöd för moderna metoder som Hyperband. Ray Tune är en del av Ray-paketet, med stöd för moderna metoder som Hyperband, BO och BOHB. Som en del av Ray-paketet har Ray Tune tillgång till en mängd andra verktyg. Ray Tune hävdar stöd för Keras och guider för att använda Ray Tune med Keras finns.

Från denna jämförelse verkar Ray Tune intressant att studera närmare. Till synes finns det vissa nackdelar med att analysera Ray Tune över Keras Tuner, till exempel att Ray Tune verkar var mer komplicerad och lite mindre populär för användning med Keras. En anmärkning på Ray Tune är att den använder andra bibliotek för många algoritmer, till exempel HpBandster för att använda BOHB. Från dessa punkter kan det vara värt att jämföra Ray Tune med verktygen den använder sig av, som HpBandster, samt Keras Tuner, men detta ligger utanför avgränsningen för denna studie.

Metodteori inom maskininlärning

Viktig grund för arbete inom maskininlärning är vilken datamängd som används och hur modeller för datamäng-den tränas. MNIST och CIFAR-10 är två populära, enklare datamängder vilka har använts i många studier. Ett exempel är Klein et al [12] som använder en Support Vector Machine (SVM) för MNIST och ett Neural Network (NN) med Adam Optimizer som träningsalgoritm för CIFAR-10.

Hur enkel koden är som använts för att skriva och träna en modell är en av frågeställningarna för denna studie och även en av de minst tydliga i hur de kan besvaras. Akiba et al [2] tar upp hur kod skriven i Optuna är kortare och lättare att förstå än deras exempel från andra verktyg, så detta kan vara en metod. Men längd på kod kan vara svårt att mäta, eftersom det beror på andra faktorer som vilken standard som används. Ett mer stabilt och välbeprövat koncept är de mått på kodkomplexitet definierade av McCabe [15].

METOD

Först behövs det att specifiera vad som testas med verktygen. Baserat på metodteorin används CIFAR-10 som datamängd med en NN-modell. Utifrån detta testas hyperparameteropti-mering för olika antal hyperparametrar genom matchning av bilder från CIFAR-10. NN-modellen skapas med Tensorflow och Keras som bibliotek, med "transfer learning" med VGG19 och imagenet som en basmodell till NN-modellen. VGG19 valdes för att den verkar vara en effektiv basmodell som passar bra till CIFAR-101.

För enklare testning används en mindre delmängd, 1/1000 av hela CIFAR-10. Tre typiska hyperparametrar för NN har valts ut att optimeras, vilka är learning rate, decay och dropout. Typiska värden för learning rates är mellan 0.1 och 10ˆ-62, från detta testas learning rates mellan 0.1 och 10ˆ-3. För decay

1https://www.kaggle.com/adi160/

cifar-10-keras-transfer-learning

2https://machinelearningmastery.com/

learning-rate-for-deep-learning-neural-networks/

verkar det vara vanligt att sätta värden mindre än learning rate, i denna studie testas värden för decay mellan 10ˆ-3 och 10ˆ-5. Vanliga värden på dropout är mellan 0.1 och 0.53, i denna studie testas värden på dropout mellan 0.2 och 0.5.

Antalet iterationer att välja hyperparametervärden är något som behövs bestämmas för alla sökmetoder förutom grid search. I detta fall används 10 iterationer. För att se en större effekt av hyperparametrarna tränas även varje iteration under 10 epoker. Early stopping används under dessa epoker för att avbryta om validation loss inte blir bättre för modellen, vilket både sparar tid och ger bättre precision.

Scikit-optimize (med scikit-learn) har bland annat stöd för metoderna random och BO-search, vilka är relevanta att testa. Ray Tune har stöd för en stor del av de mest kända metoderna, alla dessa blir för mycket att testa utan de mest relevanta för den här studien testas. Dessa kan summeras till random, Hyperband, BO och BOHB-search att testa för Ray Tune. Följande sektioner sammanfattar metodik för att försöka svara på de frågeställningar som har ställts för denna studie.

Körningstid

Både Ray och Scikit har tillgång till verktyg som kan användas för att rapportera den tid iterationerna av hyperparameterop-timering har tagit. I detta fall används dock Pythons tidsbib-liotek för att mäta den totala tiden för en hyperparameterses-sion. I en sådan session i denna studie ingår konstruktionen av modellen, exekvering av hyperparametersökalgoritmen med 10 epokers träning och evalueringen av modellen på valid-eringsdata. För att få mer säker tidsdata upprepas varje test minst ett tiotal gånger för att få ett stabilt medianvärde av tiden för iterationerna.

Precision

Scikit och Keras (för Ray Tune) har funktioner för att träna och validera en modell för att få ut dess precision. Resultaten från dessa noteras i två grafer, en för varje modell. Datamängden som används delas upp enligt 70/30, 70% för träning och 30% för validering, vilket kan fungera bra för mindre datamängder4.

Bredd i användningsområde

En kort teoretisk studie där dokumentationen undersöks för Ray Tune5, Scikit-learn6och Scikit-optimize7för att analysera deras flexibilitet. Syftet med detta är att göra det tydligt exakt vilka algoritmer de två verktygen stödjer, vilka ställs upp i en tabell i stil med tabell 2 från Akiba et al [2].

Enkel kod

Hur enkelt ett verktyg är att använda är svårt att definiera. En faktor kan vara mängden dokumentation, men detta kan inte vara en rättvis faktor att utgå ifrån när bredden i användning-sområde är olika för båda verktyg. Istället undersöks det hur

3https://lavanya.ai/2019/08/10/ training-a-neural-network-start-here/ 4https://www.researchgate.net/post/Is-there-an-ideal-ratio-... 5https://docs.ray.io/en/master/tune/index.html 6https://scikit-learn.org/stable/user_guide.html 7https://scikit-optimize.github.io/stable/user_guide.html 5

(6)

enkel koden blir, specifikt dess kodkomplexitet [15]. Detta kan vara komplicerat att räkna ut manuellt för all kod, därför används Radon8, ett verktyg för att räkna ut kodkomplexiteten av kod skriven i python.

RESULTAT

Nedan presenteras resultaten från testerna på optimisering av hyperparametrar, flexibilitetsundersökningen och analysen av kodkomplexitet. Figurerna visar modellernas precision och körningstid med dess validation accuracy och de sekunder optimiseringen tog vardera. 10 av testerna av varje algoritm visas i figurerna och deras slutresultat bygger upp trenderna.

Data från optimering med Scikit

380 390 400 410 420 430 440 450 10 20 30 40 50 60 Time [Seconds] V alidation accurac y [%] Random Bayes

Figure 1. Resultat från test med Scikit på 1/1000 av CIFAR-10 Resulterande data från testerna med Scikit på CIFAR-10 kan hittas i figur 1. Medelvärdet av varje punkts data i trenderna ger 398.07 sekunder för 32.67% precision från random search och 418.172 sekunder för 31.332% från bayesian optimization.

Data från optimering med Ray Tune

Resulterande data från testerna med Ray Tune på CIFAR-10 kan hittas i figur 2. Medelvärdet av varje punkts data från trendena ger 111.527 sekunder för 35.334% precision från random search, 110.909 sekunder för 43.334% precision från bayesian optimization, 107.131 sekunder för 42% precision från hyperband och 112.263 sekunder för 37.332% precision från BOHB.

Översikt över funktionalitet

En översikt över de algoritmer vilka finns tillgängliga för de verktyg som använts i denna studie kan hittas i tabell 1. Något som kan noteras är att alla algoritmer i Ray Tune, föru-tom den första, kommer från andra bibliotek med liknande namn som algoritmen. Till exempel så är AxSearch från Ax, DragonflySearch från Dragonfly och SkoptSearch från Skopt (Scikit-optimize). 8https://pypi.org/project/radon/ 100 105 110 115 120 20 30 40 50 60 70 Time [Seconds] V alidation accurac y [%] NN tests, 1/1000 of CIFAR-10 Random Bayes Hyper BOHB

Figure 2. Resultat från test med Ray Tune på 1/1000 av CIFAR-10 Table 1. Översikt över de sökalgoritmer verktygen har tillgång till Sökalgoritmer, RayTune Sökalgoritmer, Scikit (learn+opt)

Random/grid search GridSearchCV

AxSearch HalvingGridSearchCV DragonflySearch RandomizedSearchCV SkoptSearch HalvingRandomSearchCV HyperOptSearch BayesSearchCV BayesOptSearch -TuneBOHB -NevergradSearch -OptunaSearch -ZOOptSearch -SigOptSearch -HEBOSearch -Analys av kodkomplexitet

Att köra radon med cc-kommandot räknar ut kodkomplexitet. Detta gav värdet 1.0 för scikit-koden och 1.125 för ray tune-koden. Högre värde är högre komplexitet på tune-koden.

DISKUSSION Resultat

Från de tester som har gjorts verkar Ray Tune vara effektivare än Scikit, både tids- och precisionsmässigt. Detta var något förväntat, eftersom det är ett nyare verktyg.

När sökalgoritmerna jämförs med varandra så är resultatet för random search nära de andra algoritmerna, vilket var ovän-tat, utifrån den studerade teorin om algoritmerna verkade det som att random search ger tydligt sämre resultat än de mer avancerade algoritmerna. Tidigare studier som undersökts inför denna studie har både kommit fram till att Hyperband fungerar bäst[13] eller att BO fungerar bäst[22].

Från dokumentation för Scikit och Ray Tune går det att hitta ett flertal av algoritmer som inte har testats i denna studie. Noterbart är att Scikit har en nyare algoritm, halving random

(7)

search, och att algoritmerna i Ray Tune kommer från andra verktyg. Tydligast är SkoptSearch, som kommer från Scikit-opt och OptunaSearch, från Optuna. Dessa är två verktyg som tidigare har nämnts och diskuterats i studien.

Kodkomplexiteten blev lite högre för Ray Tune-koden än för Scikit-koden. Detta kan förklaras av att Scikit inte behöver någon komplicerad struktur, medans Ray Tune behöver ett "Trainable" klassobjekt för deras analys, som har en bestämd struktur av funktioner. Det ökar inte kodkomplexiteten med en stor grad, men det visar att Ray Tune kan tyckas var svårare att använda än Scikit.

Metod

Det första som saknas är tester på fler datamängder eller stor-lekar, så vissa samband som kan finnas syns inte i studien. Om slutlagret av modellen som testades hade tränats mer, är det möjligt att precisionen hade förbättrats. Det är även möjligt att om fler än 10 iterationer användes under testerna kunde vissa algoritmer visa högre precision. Antalet sekunder testerna tog kan ha blivit högre av att testerna inte kördes på ett system där det hade kontrollerats att alla onödiga processer var avstängda.

Metodernas resultat skiljde inte mycket från varandra, vilket kan bero på att de inte användes korrekt, eller att deras pre-standa beror på den datamängd eller datamängdsstorlek som testas.

Många sökalgoritmer kan finnas i de två verktygen, vilka kan bidra till ett verktygs användbarhet. Algoritmer som kan vara mest intressanta att testa i relation till denna studie är Skopt-Search i Ray Tune och HalvingRandomSkopt-SearchCV i Scikit. Detta för att SkoptSearch är baserad på bayesian search från Scikit-Opt och att HalvingRandomSearchCV verkar vara en nyare version av den random search (RandomizedSearchCV) som testades i denna studie.

SLUTSATSER

Med anseende på de valda verktygen har det visats att Ray Tune verkar vara lite mer effektiv än Scikit, både i körningstid och precision. Detta utgick dock enbart utifrån de mer kända algoritmerna, där både Ray Tune och Scikit hade stöd för många andra algoritmer vilka kan vara värda att testa. Efter-som de flesta algoritmer Efter-som kan finnas i Ray Tune hör till andra verktyg kunde det vara intressant att kontrollera om det finns prestandaskillnad i att köra den algoritmen med Ray Tune eller med originalverktyget. Förutom tester på andra al-goritmer kan fler tester på andra datamängder, datamängdsstor-lekar eller modeller ge bättre kunskap om prestandaskillnader mellan Ray Tune och Scikit. Förutom dessa ovan nämnda tester kan det förstås vara av värde för framtida studier som analyserar användandet av andra kända verktyg för hyperpa-rameteroptimering, t.ex. Talos och Keras Tuner.

Bredd i användningsområde blev fokuserat på hur många al-goritmer verktygen har stöd för och säger inte mycket annat. Men något som har nämnts men som kan vara svårt att visa är

att Ray Tune fungerar bra med Keras och Tensorflow9. Detta är dock inte en stor fördel för Ray Tune i detta sammanhang, eftersom Keras har introducerat KerasClassifier, vilket ger stöd för att testa en Keras-modell med algoritmer från Scikit. Angående hur enkel koden blir kan det visas med McCabes kodkomplexitet[15] att koden för Ray Tune blir mer komplex, vilket visar att en fördel för Scikit kan vara att den är enklare att använda. Det är möjligt att det finns andra mått eller metoder som bättre kan besvara frågan om hur lätt ett verktyg är att använda sig av i en studie av detta slag.

REFERENCES

[1] Mohamed Osama Ahmed. 2018. Practical optimization for structured machine learning problems. Ph.D. Dissertation. University of British Columbia.

[2] Takuya Akiba, Shotaro Sano, Toshihiko Yanase, Takeru Ohta, and Masanori Koyama. 2019. Optuna: A

next-generation hyperparameter optimization

framework. In Proceedings of the 25th ACM SIGKDD international conference on knowledge discovery & data mining. 2623–2631.

[3] James Bergstra, Rémi Bardenet, Yoshua Bengio, and Balázs Kégl. 2011. Algorithms for hyper-parameter optimization. In 25th annual conference on neural information processing systems (NIPS 2011), Vol. 24. Neural Information Processing Systems Foundation. [4] James Bergstra and Yoshua Bengio. 2012. Random

search for hyper-parameter optimization. Journal of machine learning research13, 2 (2012).

[5] James Bergstra, Brent Komer, Chris Eliasmith, Dan Yamins, and David D Cox. 2015. Hyperopt: a python library for model selection and hyperparameter optimization. Computational Science & Discovery 8, 1 (2015), 014008.

[6] Daniel T Chang. 2019. Bayesian Hyperparameter Optimization with BoTorch, GPyTorch and Ax. arXiv preprint arXiv:1912.05686(2019).

[7] Marc Claesen and Bart De Moor. 2015. Hyperparameter search in machine learning. arXiv preprint

arXiv:1502.02127(2015).

[8] Aitor Palacios Cuesta. 2018. Hyperparameter

Optimization for Large-scale Machine Learning. (2018). [9] Stefan Falkner, Aaron Klein, and Frank Hutter. 2017.

Combining hyperband and bayesian optimization. In NIPS 2017 Bayesian Optimization Workshop (Dec 2017).

[10] Peter I Frazier. 2018. A tutorial on Bayesian

optimization. arXiv preprint arXiv:1807.02811 (2018). [11] Xin He, Kaiyong Zhao, and Xiaowen Chu. 2021.

AutoML: A Survey of the State-of-the-Art. Knowledge-Based Systems212 (2021), 106622.

9https://docs.ray.io/en/latest/tune/examples/pbt_tune_

cifar10_with_keras.html

(8)

[12] Aaron Klein, Stefan Falkner, Simon Bartels, Philipp Hennig, and Frank Hutter. 2017. Fast bayesian optimization of machine learning hyperparameters on large datasets. In Artificial Intelligence and Statistics. PMLR, 528–536.

[13] Lisha Li, Kevin G Jamieson, Giulia DeSalvo, Afshin Rostamizadeh, and Ameet Talwalkar. 2017. Hyperband: Bandit-Based Configuration Evaluation for

Hyperparameter Optimization.. In ICLR (Poster). [14] Richard Liaw, Eric Liang, Robert Nishihara, Philipp

Moritz, Joseph E Gonzalez, and Ion Stoica. 2018. Tune: A research platform for distributed model selection and training. arXiv preprint arXiv:1807.05118 (2018). [15] Thomas J McCabe. 1976. A complexity measure. IEEE

Transactions on software Engineering4 (1976), 308–320.

[16] S Mihajlovi´c, A Kupusinac, D Iveti´c, and I Berkovi´c. 2020. The Use of Python in the field of Artifical Intelligence. (2020).

[17] Mehryar Mohri, Afshin Rostamizadeh, and Ameet Talwalkar. 2018. Foundations of machine learning. MIT press.

[18] Sayan Putatunda and Kiran Rama. 2018. A comparative analysis of hyperopt as against other approaches for hyper-parameter optimization of XGBoost. In Proceedings of the 2018 International Conference on Signal Processing and Machine Learning. 6–10. [19] Sebastian Raschka, Joshua Patterson, and Corey Nolet.

2020. Machine learning in python: Main developments and technology trends in data science, machine learning, and artificial intelligence. Information 11, 4 (2020), 193. [20] Cynthia Rudin and Kiri L Wagstaff. 2014. Machine

learning for science and society. (2014).

[21] Aleksei Vilkomir. 2020. An Empirical Exploration of Python Machine Learning API Usage. (2020).

[22] Li Yang and Abdallah Shami. 2020. On hyperparameter optimization of machine learning algorithms: Theory and practice. Neurocomputing 415 (2020), 295–316. [23] Tong Yu and Hong Zhu. 2020. Hyper-parameter

optimization: A review of algorithms and applications. arXiv preprint arXiv:2003.05689(2020).

References

Related documents

Detta kan vi då i nästa led problematisera utifrån dilemmaperspektivet som vi då baserar på dessa utbildningsmässiga problem som enligt Nilholm (2020) inte går att

”Även om de flesta utbildningar för lärare erbjuder kunskap om olika barn i behov av särskilt stöd bör detta givetvis även kompletteras med en kunskap kring olika verktyg för

Hon menar att genom att det finns specialpedagoger så kan läraren/pedagogen anse att ansvaret för barn i svårigheter ligger hos specialpedagogen, det är

Resultat från studier likt dessa är mycket viktiga underlag för beslut om införande av nationella screeningprogram för förmaksflimmer.. I Sverige är det Socialstyrelsen som

Vi försöker ju då att de ska använda datorn som ett verktyg, som kan rätta deras berättelser, så de kan se att här är något som är fel. Sen kan de ju som sagt använda sig

2 AS – Förkortning för Aspergers syndrom (Både AS och Aspergers syndrom kommer att användas för att få flyt i språket).. klass för elever med denna diagnos. Under

Faktorerna som påverkar hur lätt vagnen är att manövrera är vikten, val av hjul och storleken på vagnen. Val av material påverkar vikten i stor utsträckning och då vagnen ska

The results of the experiments with layer-locking presented in this Section are inconclusive but are included in the report since they suggest on improved