Modeli strojnega učenja (ML) osvajajo svet. Njihovo delovanje je odvisno od uporabe pravih podatkov o usposabljanju ter izbire pravega modela in algoritma. Vendar se tukaj ne konča. Običajno algoritmi preložijo nekatere načrtovalske odločitve strokovnjaku za strojno upravljanje, da jih sprejme za svoje specifične podatke in nalogo. Te odložene oblikovalske odločitve se kažejo kot hiperparametrov.
Kaj pomeni to ime? Rezultat usposabljanja ML, model, je mogoče v veliki meri videti kot zbirko parametrov, ki se jih naučimo med usposabljanjem. Zato se parametri, ki se uporabljajo za konfiguracijo procesa usposabljanja ML, imenujejo hiperparametri – parametri, ki opisujejo ustvarjanje parametrov. Vsekakor so zelo praktične uporabe, na primer število epoh za usposabljanje, stopnja učenja, največja globina odločitvenega drevesa in tako naprej. In posvečamo jim veliko pozornosti, ker imajo velik vpliv na končno zmogljivost vašega modela.
Tako kot vrtenje gumba na radijskem sprejemniku, da bi našli pravo frekvenco, je treba vsak hiperparameter skrbno nastaviti, da optimizirate delovanje. Iskanje optimalnih vrednosti v prostoru hiperparametrov se imenuje uglaševanje hiperparametrov or optimizacija hiperparametrov (HPO), rezultat pa bi moral biti model, ki daje natančne napovedi.
V tej objavi bomo postavili in zagnali naše prvo opravilo HPO z uporabo Samodejno prilagajanje modela Amazon SageMaker (AMT). Spoznamo metode, ki so na voljo za raziskovanje rezultatov, in ustvarimo nekaj pronicljivih vizualizacij naših poskusov HPO in raziskovanja prostora hiperparametrov!
Samodejno prilagajanje modela Amazon SageMaker
Kot praktik ML uporablja SageMaker AMT, se lahko osredotočite na naslednje:
- Zagotavljanje delovnega mesta za usposabljanje
- Določanje prave ciljne metrike, ki ustreza vaši nalogi
- Obseg iskalnega prostora hiperparametrov
SageMaker AMT poskrbi za ostalo in ni vam treba razmišljati o infrastrukturi, orkestriranju izobraževalnih del in izboljšanju izbire hiperparametrov.
Začnimo z uporabo SageMaker AMT za naše prvo preprosto opravilo HPO, za usposabljanje in nastavitev algoritma XGBoost. Želimo, da je vaše potovanje AMT praktično in praktično, zato smo primer delili v nadaljevanju GitHub repozitorij. Ta objava pokriva 1_tuning_of_builtin_xgboost.ipynb
zvezek.
V prihajajoči objavi bomo razširili pojem samo iskanja najboljših hiperparametrov in vključili učenje o iskalnem prostoru in na katere obsege hiperparametrov je model občutljiv. Pokazali bomo tudi, kako enkratno uglaševanje spremeniti v večstopenjski pogovor s strokovnjakom za strojno učenje, da se skupaj učita. Ostanite z nami (igra beseda)!
Predpogoji
Ta objava je namenjena vsem, ki jih zanima HPO in ne zahteva predznanja o temi. Osnovno poznavanje konceptov ML in programiranja Python je vseeno koristno. Za najboljšo učno izkušnjo toplo priporočamo, da sledite teče vsak korak v zvezku vzporedno z branjem te objave. Na koncu zvezka lahko preizkusite tudi interaktivno vizualizacijo, ki oživi rezultate uglaševanja.
Pregled rešitev
Zgradili bomo nastavitev od konca do konca za izvajanje našega prvega opravila HPO z uporabo SageMaker AMT. Ko je naše uglaševanje končano, si ogledamo nekatere razpoložljive metode za raziskovanje rezultatov, tako prek Konzola za upravljanje AWS in programsko prek SDK-jev in API-jev AWS.
Najprej se seznanimo z okoljem in usposabljanjem SageMaker tako, da izvajamo samostojno usposabljanje, zaenkrat brez kakršnega koli prilagajanja. Uporabljamo algoritem XGBoost, enega od mnogih algoritmov, ki so na voljo kot a Vgrajeni algoritem SageMaker (skripta za usposabljanje ni potrebna!).
Vidimo, kako SageMaker Training deluje na naslednje načine:
- Zažene in ustavi primerek
- Priskrbi potrebno posodo
- Kopira podatke o usposabljanju in validaciji v primerek
- Vodi usposabljanje
- Zbira metrike in dnevnike
- Zbere in shrani izurjen model
Nato se premaknemo na AMT in izvedemo opravilo HPO:
- Postavimo in zaženemo našo nastavitev z AMT
- Poglobili smo se v razpoložljive metode za pridobivanje podrobnih meritev uspešnosti in metapodatkov za vsako delovno mesto usposabljanja, kar nam omogoča, da izvemo več o optimalnih vrednostih v našem prostoru hiperparametrov
- Pokažemo vam, kako si ogledate rezultate poskusov
- Ponujamo vam orodja za vizualizacijo podatkov v nizu grafikonov, ki razkrivajo dragocene vpoglede v naš prostor hiperparametrov
Usposobite algoritem XGBoost, vgrajen v SageMaker
Vse se začne z usposabljanjem modela. Pri tem dobimo občutek, kako deluje SageMaker Training.
Želimo izkoristiti hitrost in enostavnost uporabe, ki ju ponuja SageMaker vgrajeni algoritmi. Vse, kar potrebujemo, je nekaj korakov, da začnemo z usposabljanjem:
- Pripravite in naložite podatke – Prenesemo in pripravimo naš nabor podatkov kot vhod za XGBoost in ga naložimo v našo Preprosta storitev shranjevanja Amazon (Amazon S3) vedro.
- Izberite URI slike našega vgrajenega algoritma – SageMaker uporablja ta URI za pridobivanje našega vsebnika za usposabljanje, ki v našem primeru vsebuje že pripravljen skript za usposabljanje XGBoost. Podprtih je več različic algoritmov.
- Določite hiperparametre – SageMaker nudi vmesnik za definiranje hiperparametrov za naš vgrajeni algoritem. To so isti hiperparametri, kot jih uporablja odprtokodna različica.
- Konstruirajte cenilec – Določimo parametre usposabljanja, kot sta vrsta instance in število instanc.
- Pokličite funkcijo fit(). – Začenjamo z našim usposabljanjem.
Naslednji diagram prikazuje, kako ti koraki delujejo skupaj.
Navedite podatke
Za izvedbo usposabljanja ML moramo zagotoviti podatke. Svoje podatke o usposabljanju in validaciji posredujemo podjetju SageMaker prek Amazona S3.
V našem primeru zaradi enostavnosti uporabljamo privzeto vedro SageMaker za shranjevanje naših podatkov. Vendar lahko naslednje vrednosti prilagodite svojim željam:
V zvezku uporabljamo javni nabor podatkov in podatke shranjujemo lokalno v data
imenik. Nato svoje podatke o usposabljanju in validaciji naložimo v Amazon S3. Kasneje določimo tudi kazalce na te lokacije, da jih posredujemo SageMaker Training.
V tej objavi se osredotočamo na uvedbo HPO. Za ponazoritev uporabimo določen nabor podatkov in nalogo, da lahko pridobimo meritve objektivnih metrik, ki jih nato uporabimo za optimizacijo izbire hiperparametrov. Vendar za celotno objavo niso pomembni niti podatki niti naloga. Da bi vam predstavili celotno sliko, naj na kratko opišemo, kaj počnemo: usposabljamo model XGBoost, ki naj razvrsti ročno napisane številke iz
Nabor podatkov o optičnem prepoznavanju ročno napisanih številk [1] prek Scikit-learn. XGBoost je odličen algoritem za strukturirane podatke in ga je mogoče uporabiti celo za nabor podatkov Digits. Vrednosti so slike 8×8, kot v naslednjem primeru, ki prikazuje a
0
a
5
in
4
.
Izberite URI slike XGBoost
Ko izberemo naš vgrajeni algoritem (XGBoost), moramo pridobiti URI slike in ga posredovati SageMakerju, da se naloži v naš primerek za usposabljanje. Za ta korak pregledamo razpoložljive različice. Tukaj smo se odločili za različico 1.5.1, ki ponuja najnovejšo različico algoritma. Odvisno od naloge lahko praktiki ML napišejo svoj skript za usposabljanje, ki na primer vključuje korake za pripravo podatkov. Vendar v našem primeru to ni potrebno.
Če želite napisati svoj scenarij za usposabljanje, potem ostanite z nami, pokrivali smo vas v naši naslednji objavi! Pokazali vam bomo, kako izvajati izobraževalna opravila SageMaker z lastnimi skripti za usposabljanje po meri.
Za zdaj potrebujemo pravilen URI slike z navedbo algoritma, regije AWS in številke različice:
To je vse. Zdaj imamo sklicevanje na algoritem XGBoost.
Določite hiperparametre
Zdaj definiramo naše hiperparametre. Te vrednosti konfigurirajo, kako bo naš model usposobljen, in sčasoma vplivajo na to, kako se model obnese glede na objektivno metriko, s katero merimo, kot je natančnost v našem primeru. Upoštevajte, da nič o naslednjem bloku kode ni specifično za SageMaker. Pravzaprav uporabljamo odprtokodna različica XGBoost, ki ga pravkar zagotavlja in optimizira SageMaker.
Čeprav je vsakega od teh hiperparametrov mogoče konfigurirati in prilagoditi, je objektivna metrika multi:softmax
določa naš nabor podatkov in vrsta problema, ki ga rešujemo. V našem primeru podatkovni niz Digits vsebuje več oznak (opazovanje ročno napisane številke je lahko 0
or 1,2,3,4,5,6,7,8,9
), kar pomeni, da gre za problem večrazredne klasifikacije.
Za več informacij o drugih hiperparametrih glejte XGBoost hiperparametri.
Konstruirajte cenilec
Usposabljanje konfiguriramo na objektu ocenjevalca, ki je vmesnik na visoki ravni za SageMaker Training.
Nato določimo število instanc za usposabljanje, vrsto instance (na osnovi CPU ali GPU) in velikost priloženega pomnilnika:
Zdaj imamo konfiguracijo infrastrukture, ki jo potrebujemo za začetek. SageMaker Training bo poskrbel za ostalo.
Pokličite funkcijo fit().
Se spomnite podatkov, ki smo jih prej naložili v Amazon S3? Zdaj ustvarjamo reference na to:
Klic na fit()
začenja naše usposabljanje. Posredujemo sklice na podatke o usposabljanju, ki smo jih pravkar ustvarili, da usmerimo SageMaker Training na naše podatke o usposabljanju in validaciji:
Upoštevajte, da nam za kasnejši zagon HPO dejansko ni treba klicati fit()
tukaj Kasneje potrebujemo samo objekt ocenjevalca za HPO in lahko preprosto preidemo na ustvarjanje našega opravila HPO. Ker pa želimo izvedeti več o SageMaker Training in videti, kako izvajati posamezno usposabljanje, ga pokličemo tukaj in pregledamo rezultat.
Ko se usposabljanje začne, začnemo videti rezultat pod celicami, kot je prikazano na naslednjem posnetku zaslona. Izhod je na voljo v amazoncloudwatch kot tudi v tem zvezku.
Črno besedilo je izpis dnevnika samega SageMakerja, ki prikazuje korake, vključene v orkestracijo usposabljanja, kot sta zagon instance in nalaganje slike usposabljanja. Modro besedilo se izpiše neposredno iz samega učnega primerka. Opazujemo lahko proces nalaganja in razčlenjevanja podatkov o usposabljanju ter vizualno vidimo napredek usposabljanja in izboljšanje objektivne metrike neposredno iz skripta za usposabljanje, ki se izvaja na instanci.
Upoštevajte tudi, da je na koncu izhodnega opravila prikazano trajanje usposabljanja v sekundah in obračunane sekunde.
Na koncu vidimo, da SageMaker naloži naš model usposabljanja na izhodno pot S3, definirano na objektu ocenjevalca. Model je pripravljen za uporabo za sklepanje.
V prihodnji objavi bomo ustvarili svoj lasten vsebnik za usposabljanje in določili meritve za oddajanje. Videli boste, kako je SageMaker neodvisen od vsebnika, ki mu ga posredujete za usposabljanje. To je zelo priročno, ko želite hitro začeti z vgrajenim algoritmom, vendar se pozneje odločite, da boste posredovali svoj skript za usposabljanje po meri!
Preglejte trenutna in prejšnja delovna mesta za usposabljanje
Doslej smo delali iz svojega zvezka z našo kodo in SageMakerju pošiljali naloge za usposabljanje. Zamenjajmo perspektivo in za trenutek pustimo prenosni računalnik, da preverimo, kako je to videti na konzoli SageMaker.
SageMaker vodi zgodovinsko evidenco izobraževalnih nalog, ki jih je izvajal, njihove konfiguracije, kot so hiperparametri, algoritmi, vnos podatkov, zaračunani čas in rezultati. Na seznamu na prejšnjem posnetku zaslona vidite najnovejša izobraževalna opravila, filtrirana za XGBoost. Označeno usposabljanje je opravilo, ki smo ga pravkar usposabljali v zvezku, katerega rezultat ste videli prej. Poglobimo se v to individualno usposabljanje, da dobimo več informacij.
Naslednji posnetek zaslona prikazuje pogled konzole našega opravila usposabljanja.
Informacije, ki smo jih prejeli kot rezultat celice, lahko pregledamo v našo fit()
funkcijo v posameznem izobraževalnem opravilu znotraj konzole SageMaker, skupaj s parametri in metapodatki, ki smo jih definirali v našem ocenjevalcu.
Prikličite izpis dnevnika iz primerka usposabljanja, ki smo ga videli prej. Tudi tukaj lahko dostopamo do dnevnikov našega usposabljanja, tako da se pomaknemo na monitor razdelek in izbiranje Oglejte si dnevnike.
To nam pokaže dnevnike primerkov znotraj CloudWatch.
Zapomnite si tudi hiperparametre, ki smo jih določili v našem zvezku za nalogo usposabljanja. Vidimo jih tudi tukaj v istem uporabniškem vmesniku delovnega mesta za usposabljanje.
Pravzaprav lahko podrobnosti in metapodatke, ki smo jih prej določili za naše usposabljanje in ocenjevalec, najdete na tej strani na konzoli SageMaker. Imamo koristen zapis o nastavitvah, uporabljenih za usposabljanje, na primer, kateri vsebnik za usposabljanje je bil uporabljen in lokacije naborov podatkov za usposabljanje in validacijo.
Morda se na tej točki sprašujete, zakaj točno je to pomembno za optimizacijo hiperparametrov? To je zato, ker lahko iščete, pregledate in se poglobite v tiste poskuse HPO, ki nas zanimajo. Morda tiste z najboljšimi rezultati ali tiste, ki kažejo zanimivo vedenje. Prepustili vam bomo, kaj sami definirate kot »zanimivo«. Omogoča nam skupni vmesnik za pregledovanje naših delovnih mest za usposabljanje in lahko ga uporabljate z iskalnikom SageMaker.
Čeprav SageMaker AMT usklajuje opravila HPO, se vsi preizkusi HPO zaženejo kot posamezna opravila usposabljanja SageMaker in je do njih mogoče dostopati kot takim.
S pokritim usposabljanjem se lotimo uglaševanja!
Usposobite in prilagodite algoritem XGBoost, vgrajen v SageMaker
Za prilagoditev našega modela XGBoost bomo ponovno uporabili obstoječe hiperparametre in definirali obsege vrednosti, ki jih želimo raziskati zanje. Zamislite si to kot razširitev meja raziskovanja v našem iskalnem prostoru hiperparametrov. Naše uglaševanje bo vzorčilo iz iskalnega prostora in izvajalo usposabljanje za nove kombinacije vrednosti. Naslednja koda prikazuje, kako določiti obsege hiperparametrov, iz katerih naj vzorči SageMaker AMT:
Območja za posamezne hiperparametre so podana glede na njihovo vrsto, npr ContinuousParameter. Za več informacij in nasvetov o izbiri teh obsegov parametrov glejte Nastavite model XGBoost.
Izvedli še nismo nobenega poskusa, zato ne poznamo razponov dobrih vrednosti za naše hiperparametre. Zato začnemo z utemeljenim ugibanjem, pri čemer uporabimo naše znanje o algoritmih in našo dokumentacijo o hiperparametrih za vgrajene algoritme. To definira izhodišče za določitev iskalnega prostora.
Nato zaženemo vzorčenje opravila uglaševanja iz hiperparametrov v definiranih obsegih. Posledično lahko vidimo, kateri obsegi hiperparametrov dajejo dobre rezultate. S tem znanjem lahko izboljšamo meje iskalnega prostora tako, da zožimo ali razširimo, katere obsege hiperparametrov naj uporabimo. V naslednjem in zadnjem razdelku, kjer raziskujemo in vizualiziramo rezultate, pokažemo, kako se učiti iz poskusov.
V naši naslednji objavi bomo nadaljevali naše potovanje in se potopili globlje. Poleg tega se bomo naučili, da obstaja več strategij, ki jih lahko uporabimo za raziskovanje našega iskalnega prostora. Izvedli bomo naslednja opravila HPO, da bi našli še bolj zmogljive vrednosti za naše hiperparametre, medtem ko bomo primerjali te različne strategije. Videli bomo tudi, kako zagnati topel začetek s SageMaker AMT, da uporabimo znanje, pridobljeno iz predhodno raziskanih iskalnih prostorov, v našem raziskovanju onkraj teh začetnih meja.
V tej objavi se osredotočamo na to, kako analizirati in vizualizirati rezultate enega samega opravila HPO z uporabo Bayesove strategije iskanja, ki bo verjetno dobro izhodišče.
Če sledite v povezanem zvezku, upoštevajte, da podajamo isti ocenjevalec, kot smo ga uporabili za eno samo, vgrajeno usposabljanje XGBoost. Ta ocenjevalni objekt deluje kot predloga za nova delovna mesta za usposabljanje, ki jih ustvari AMT. AMT bo nato spreminjal hiperparametre znotraj obsegov, ki smo jih definirali.
Z navedbo, da želimo maksimirati našo objektivno metriko, validation:accuracy
, sporočamo SageMaker AMT, naj poišče te metrike v dnevnikih primerkov usposabljanja in izbere vrednosti hiperparametrov, za katere meni, da bodo maksimizirale metriko natančnosti naših validacijskih podatkov. Izbrali smo primernega objektivna metrika za XGBoost iz naše dokumentacije.
Poleg tega lahko izkoristimo vzporednost z max_parallel_jobs
. To je lahko močno orodje, zlasti za strategije, katerih poskusi so izbrani neodvisno, brez upoštevanja (učenja) izidov prejšnjih poskusov. Te druge strategije in parametre bomo podrobneje raziskali v naši naslednji objavi. Za to objavo uporabljamo Bayesian, ki je odlična privzeta strategija.
Prav tako definiramo max_jobs
da določite, koliko poskusov naj se izvedejo skupaj. Odstopite od našega primera in uporabite manjšo številko, da prihranite denar.
Še enkrat kličemo fit()
, na enak način kot takrat, ko smo v prejšnji objavi uvedli eno samo usposabljanje. Toda tokrat na objektu sprejemnika, ne na objektu ocenjevalca. S tem se začne uglaševanje, AMT pa začne z usposabljanjem.
Naslednji diagram razširja našo prejšnjo arhitekturo z vključitvijo HPO s SageMaker AMT.
Vidimo, da je bilo naše delo za HPO oddano. Odvisno od števila poskusov, ki jih definira n_jobs
in raven paralelizacije, lahko to traja nekaj časa. Za naš primer lahko traja do 30 minut za 50 poskusov s samo stopnjo paralelizacije 3.
Ko je to uglaševanje končano, raziščimo informacije, ki so nam na voljo na konzoli SageMaker.
Raziščite opravila AMT na konzoli
Poiščimo svoje uglaševanje na konzoli SageMaker z izbiro usposabljanje v navigacijskem podoknu in nato Hiperparametrska nastavitev. Tako dobimo seznam naših opravil AMT, kot je prikazano na naslednjem posnetku zaslona. Tukaj najdemo naše bayesian-221102-2053
in ugotovite, da je končano.
Oglejmo si podrobneje rezultate tega dela HPO.
Raziskali smo programsko pridobivanje rezultatov v prenosnik. Najprej prek SDK SageMaker Python, ki je odprtokodna knjižnica Python višje ravni, ki SageMakerju zagotavlja namenski API. Potem skozi Boto3, ki nam ponuja API-je nižje ravni za SageMaker in druge storitve AWS.
Z uporabo SDK-ja SageMaker Python lahko pridobimo rezultate našega opravila HPO:
To nam je omogočilo analizo rezultatov vsakega od naših poskusov v Pandas DataFrame, kot je prikazano na naslednjem posnetku zaslona.
Zdaj pa spet zamenjajmo perspektivo in poglejmo, kako so videti rezultati na konzoli SageMaker. Nato si bomo ogledali naše vizualizacije po meri.
Na isti strani z izbiro našega bayesian-221102-2053
tuning job nam ponuja seznam poskusov, ki so bili izvedeni za naše tuning job. Vsak preizkus HPO tukaj je naloga usposabljanja SageMaker. Spomnimo se prejšnjega, ko smo usposabljali naš en sam model XGBoost in raziskovali delo usposabljanja v konzoli SageMaker. Enako lahko storimo za naše poskuse tukaj.
Ko raziskujemo svoje poskuse, to vidimo bayesian-221102-2053-048-b59ec7b4
ustvaril najuspešnejši model z natančnostjo validacije približno 89.815 %. Raziščimo, kateri hiperparametri so privedli do te uspešnosti z izbiro Najboljše usposabljanje tab.
Ogledamo si lahko podroben prikaz najboljših ocenjenih hiperparametrov.
Takoj lahko vidimo, katere vrednosti hiperparametrov so privedle do te vrhunske zmogljivosti. Vendar želimo izvedeti več. Ali lahko uganete kaj? To vidimo alpha
prevzame približno vrednost 0.052456 in prav tako eta
je nastavljen na 0.433495. To nam pove, da so te vrednosti dobro delovale, vendar nam pove le malo o samem prostoru hiperparametrov. Na primer, lahko se vprašamo, ali je 0.433495 za eta
je bila preizkušena najvišja vrednost ali ali obstaja prostor za rast in izboljšave modela z izbiro višjih vrednosti.
Za to moramo pomanjšati in zajeti veliko širši pogled, da vidimo, kako delujejo druge vrednosti za naše hiperparametre. Eden od načinov, da si ogledamo veliko podatkov hkrati, je, da vrednosti naših hiperparametrov iz naših poskusov HPO narišemo na grafikonu. Tako vidimo, kako so te vrednosti relativno uspešne. V naslednjem razdelku potegnemo te podatke iz SageMakerja in jih vizualiziramo.
Vizualizirajte naše preizkušnje
SDK SageMaker nam nudi podatke za naše raziskovanje, zvezki pa vam omogočajo vpogled v to. Vendar obstaja veliko načinov, kako to uporabiti in vizualizirati. V tej objavi delimo vzorec z uporabo Altair statistično vizualizacijsko knjižnico, ki jo uporabljamo za izdelavo bolj vizualnega pregleda naših poskusov. Te najdemo v amtviz
paket, ki ga posredujemo v sklopu vzorca:
Moč teh vizualizacij postane takoj očitna pri izrisu natančnosti potrjevanja naših poskusov (os y) skozi čas (os x). Naslednja tabela na levi prikazuje natančnost preverjanja skozi čas. Jasno lahko vidimo, da se učinkovitost modela izboljšuje, ko sčasoma izvedemo več poskusov. To je neposreden in pričakovan rezultat vodenja HPO z Bayesovo strategijo. V naši naslednji objavi bomo videli, kako se to primerja z drugimi strategijami, in ugotovili, da ni nujno, da to velja za vse strategije.
Po pregledu splošnega napredka skozi čas si zdaj poglejmo naš prostor hiperparametrov.
Naslednji grafikoni prikazujejo natančnost preverjanja na osi y, pri čemer je prikazan vsak grafikon max_depth
, alpha
, eta
in min_child_weight
na osi x oz. Naše celotno delo HPO smo vnesli v vsako tabelo. Vsaka točka je en sam poskus in vsak grafikon vsebuje vseh 50 poskusov, vendar ločenih za vsak hiperparameter. To pomeni, da je naš najuspešnejši poskus, št. 48, predstavljen z natanko eno modro piko na vsaki od teh lestvic (ki smo jo za vas označili na naslednji sliki). Njegovo delovanje lahko vizualno primerjamo v kontekstu vseh ostalih 49 poskusov. Torej, poglejmo natančno.
Fascinantno! Takoj vidimo, katera območja naših definiranih razponov v našem prostoru hiperparametrov so najučinkovitejša! Če pomislim nazaj na naše eta
vrednosti, je zdaj jasno, da je vzorčenje vrednosti bližje 0 prineslo slabšo učinkovitost, medtem ko približevanje naši meji, 0.5, prinaša boljše rezultate. Zdi se, da velja obratno za alpha
in max_depth
zdi se, da ima bolj omejen nabor želenih vrednosti. Gledati max_depth
, si lahko tudi ogledate, kako uporaba Bayesove strategije naroči SageMaker AMT, naj pogosteje vzorči vrednosti, za katere se je naučil, da so v preteklosti dobro delovale.
Ob pogledu na naše eta
vrednosti, se lahko vprašamo, ali je vredno raziskovati bolj desno, morda nad 0.45? Ali je še vedno nižja natančnost ali potrebujemo več podatkov? To spraševanje je del namena vodenja našega prvega delovnega mesta HPO. Zagotavlja nam vpogled v to, katera področja prostora hiperparametrov bi morali nadalje raziskati.
Če želite izvedeti več in ste nad tem uvodom v temo navdušeni tako kot mi, potem spremljajte našo naslednjo objavo, kjer bomo več govorili o različnih strategijah HPO, jih primerjali med seboj in vadite usposabljanje z našo lastno skripto Python.
Čiščenje
Da bi se izognili neželenim stroškom, ko končate eksperimentiranje s HPO, morate odstraniti vse datoteke v vedru S3 s predpono amt-visualize-demo
in tudi zaprite vire Studia.
Zaženite naslednjo kodo v svojem zvezku, da odstranite vse datoteke S3 iz te objave.
Če želite obdržati nabore podatkov ali modelne artefakte, lahko spremenite predpono v kodi na amt-visualize-demo/data
da samo izbriše podatke oz amt-visualize-demo/output
da izbrišete samo artefakte modela.
zaključek
V tej objavi smo usposobili in prilagodili model z uporabo vgrajene različice algoritma XGBoost SageMaker. Z uporabo HPO s SageMaker AMT smo izvedeli o hiperparametrih, ki dobro delujejo za ta določen algoritem in nabor podatkov.
Videli smo več načinov za pregled rezultatov našega opravila prilagajanja hiperparametrov. Začenši z ekstrakcijo hiperparametrov najboljšega preskušanja, smo se naučili tudi, kako pridobiti globlje razumevanje tega, kako so naši poskusi napredovali skozi čas in katere vrednosti hiperparametrov so vplivne.
Z uporabo konzole SageMaker smo videli tudi, kako se poglobiti v posamezne treninge in pregledati njihove dnevnike.
Nato smo pomanjšali, da bi si skupaj ogledali vse naše poskuse in pregledali njihovo uspešnost v primerjavi z drugimi poskusi in hiperparametri.
Izvedeli smo, da smo lahko na podlagi opazovanj iz vsakega preskušanja krmarili po prostoru hiperparametrov in videli, da lahko majhne spremembe vrednosti naših hiperparametrov močno vplivajo na učinkovitost našega modela. S SageMaker AMT lahko izvajamo optimizacijo hiperparametrov, da učinkovito najdemo dobre vrednosti hiperparametrov in povečamo zmogljivost modela.
V prihodnosti bomo preučili različne HPO strategije, ki jih ponuja SageMaker AMT, in kako uporabiti našo kodo za usposabljanje po meri. Sporočite nam v komentarjih, če imate vprašanje ali želite predlagati področje, ki bi ga morali obravnavati v prihodnjih objavah.
Do takrat pa vam in vašim modelom želimo srečno učenje in uglaševanje!
Reference
Navedbe:
[1] Dua, D. in Graff, C. (2019). Repozitorij strojnega učenja UCI [http://archive.ics.uci.edu/ml]. Irvine, CA: Univerza v Kaliforniji, Šola za informatiko in računalništvo.
O avtorjih
Andrew Ellul je arhitekt rešitev pri Amazon Web Services. V Nemčiji sodeluje z malimi in srednje velikimi podjetji. Zunaj službe Andrew uživa v raziskovanju narave peš ali s kolesom.
Elina Lesik je arhitekt rešitev s sedežem v Münchnu. Osredotoča se na poslovne stranke iz industrije finančnih storitev. V prostem času se Elina rada uči teorije kitare v španščini za navzkrižno učenje in gre teč.
Mariano Kamp je glavni arhitekt rešitev pri Amazon Web Services. S strankami finančnih storitev v Nemčiji sodeluje na področju strojnega učenja. V prostem času Mariano s svojo ženo uživa v pohodništvu.
- AI
- ai art
- ai art generator
- imajo robota
- Amazon SageMaker
- Umetna inteligenca
- certificiranje umetne inteligence
- umetna inteligenca v bančništvu
- robot z umetno inteligenco
- roboti z umetno inteligenco
- programska oprema za umetno inteligenco
- Strojno učenje AWS
- Bajezijski
- blockchain
- blockchain konferenca ai
- vgrajeni algoritmi SageMaker
- coingenius
- pogovorna umetna inteligenca
- kripto konferenca ai
- dall's
- globoko učenje
- Optimizacija hiperparametra
- Uglaševanje hiperparametrov
- Srednje (200)
- strojno učenje
- platon
- platon ai
- Platonova podatkovna inteligenca
- Igra Platon
- PlatoData
- platogaming
- Samodejno prilagajanje modela SageMaker
- lestvica ai
- sintaksa
- Tehnična navodila
- XGBoost
- zefirnet