Programiranje

Razloženo avtomatizirano strojno učenje ali AutoML

Dve največji oviri za uporabo strojnega učenja (tako klasično strojno učenje kot globoko učenje) so spretnosti in računalniški viri. Drugi problem lahko rešite tako, da vanj vržete denar bodisi za nakup pospešene strojne opreme (na primer računalniki z vrhunskimi grafičnimi procesorji) bodisi za najem računalniških virov v oblaku (na primer primerki s priloženimi grafičnimi procesorji, TPU-ji in FPGA).

Po drugi strani pa je reševanje problema veščin težje. Podatkovni znanstveniki pogosto zapovedujejo zajetne plače in jih je še vedno težko zaposliti. Google je lahko usposobil veliko svojih zaposlenih na lastnem ogrodju TensorFlow, toda večina podjetij ima komaj dovolj ljudi, ki bi lahko sami izdelali modele strojnega učenja in globokega učenja, še manj pa druge naučili, kako.

Kaj je AutoML?

Cilj avtomatiziranega strojnega učenja ali AutoML je zmanjšati ali odpraviti potrebo po usposobljenih znanstvenikih za podatkovno tehnologijo po izdelavi modelov strojnega učenja in globokega učenja. Namesto tega sistem AutoML omogoča, da kot vhod zagotovite označene podatke o vadbi in kot izhod prejmete optimiziran model.

To lahko storimo na več načinov. Eden od pristopov je, da programska oprema preprosto usposobi vsak model na podlagi podatkov in izbere tistega, ki najbolje deluje. To bi izboljšalo, če bi zgradil enega ali več ansambelnih modelov, ki bi kombinirali druge modele, kar včasih (vendar ne vedno) daje boljše rezultate.

Druga tehnika je optimizacija hiperparametrov (razloženih spodaj) najboljšega modela ali modelov, da se usposobi še boljši model. Funkcijski inženiring (tudi razložen spodaj) je dragocen dodatek k vsakemu modelu. Eden od načinov odstranjevanja veščin globokega učenja je uporaba transfernega učenja, ki v bistvu prilagodi dobro usposobljen splošni model za določene podatke.

Kaj je optimizacija hiperparametrov?

Vsi modeli strojnega učenja imajo parametre, kar pomeni uteži za vsako spremenljivko ali element v modelu. Te se običajno določijo s povratnim širjenjem napak in ponovitvijo pod nadzorom optimizatorja, kot je stohastični gradientni spust.

Večina modelov strojnega učenja ima tudi hiperparametre, ki so nastavljeni zunaj vadbene zanke. Ti pogosto vključujejo stopnjo učenja, stopnjo osipa in parametre, značilne za model, kot je število dreves v naključnem gozdu.

Uglaševanje hiperparametrov ali optimizacija hiperparametrov (HPO) je samodejni način pometanja ali iskanja po enem ali več hiperparametrih modela, da bi našli niz, ki ima za posledico najbolje usposobljen model. To je lahko dolgotrajno, saj morate model znova usposobiti (notranja zanka) za vsak niz vrednosti hiperparametrov v pometanju (zunanja zanka). Če vzporedno trenirate veliko modelov, lahko zmanjšate potreben čas na račun uporabe več strojne opreme.

Kaj je funkcijski inženiring?

A funkcija je posamezna merljiva lastnost ali značilnost opaženega pojava. Pojem "značilnost" je povezan s konceptom razlagalne spremenljivke, ki se uporablja v statističnih tehnikah, kot je linearna regresija. A funkcijski vektor združuje vse funkcije za eno vrstico v številčni vektor. Feature inženiring je postopek iskanja najboljšega nabora spremenljivk ter najboljšega kodiranja in normalizacije podatkov za vhod v proces usposabljanja modela.

Del umetnosti izbiranja lastnosti je, da izberemo najmanjši nabor neodvisen spremenljivke, ki pojasnjujejo težavo. Če sta dve spremenljivki močno povezani, jih je treba združiti v eno samo funkcijo ali pa eno izpustiti. Včasih ljudje izvajajo analizo glavnih komponent (PCA), da pretvorijo korelirane spremenljivke v niz linearno nekoreliranih spremenljivk.

Če želite uporabiti kategorične podatke za razvrščanje strojev, morate besedilne nalepke kodirati v drug obrazec. Obstajata dve pogosti kodiranji.

Eno je kodiranje nalepk, kar pomeni, da se vsaka vrednost besedilne nalepke nadomesti s številko. Drugi pa je enodelno kodiranje, kar pomeni, da se vsaka vrednost besedilne nalepke spremeni v stolpec z binarno vrednostjo (1 ali 0). Večina okvirov strojnega učenja ima funkcije, ki opravijo pretvorbo namesto vas. Na splošno je prednostno kodiranje z enim vročim pogojem, saj lahko kodiranje nalepk včasih zmede algoritem strojnega učenja pri razmišljanju, da je kodiran stolpec razvrščen.

Če želite uporabiti numerične podatke za regresijo stroja, morate običajno normalizirati podatke. V nasprotnem primeru bi lahko številke z večjimi območji prevladovale nad evklidsko razdaljo med vektorji značilnosti, njihove učinke bi lahko povečali na račun drugih polj in najstrmejša optimizacija spusta bi lahko imela težave pri konvergenci. Obstaja več načinov za normalizacijo in standardizacijo podatkov za strojno učenje, vključno z min-max normalizacijo, povprečno normalizacijo, standardizacijo in spreminjanjem dolžine enote. Ta postopek se pogosto imenuje skaliranje funkcij.

Nekatere transformacije, ki jih ljudje uporabljajo za konstruiranje novih značilnosti ali zmanjšanje dimenzionalnosti vektorjev lastnosti, so preproste. Na primer, odštej Leto rojstva iz Leto smrti in konstruirate Starost ob smrti, ki je glavna neodvisna spremenljivka za analizo življenjske dobe in smrtnosti. V drugih primerih konstrukcija značilnosti morda ni tako očitno.

Kaj je učenje s prenosom?

Prenosno učenje se včasih imenuje strojno učenje po meri in včasih AutoML (večinoma Google). Google Cloud AutoML namesto da bi začel z nič pri vadbi modelov iz vaših podatkov, izvaja samodejno učenje globokega prenosa (kar pomeni, da se začne z obstoječo globoko nevronsko mrežo, usposobljeno za druge podatke) in iskanje nevronske arhitekture (kar pomeni, da najde pravo kombinacijo dodatnih omrežni sloji) za prevajanje jezikovnih parov, klasifikacijo naravnega jezika in klasifikacijo slik.

To je drugačen postopek, kot ga običajno pomeni AutoML, in ne zajema toliko primerov uporabe. Po drugi strani pa, če potrebujete prilagojen model globokega učenja na podprtem področju, bo učenje s prenosom pogosto ustvarilo boljši model.

Izvedbe AutoML

Obstaja veliko izvedb programa AutoML, ki jih lahko preizkusite. Nekatere so plačljive storitve, nekatere pa brezplačne izvorne kode. Spodnji seznami nikakor niso popolni ali dokončni.

Storitve AutoML

Vse tri velike storitve v oblaku imajo nekakšen AutoML. Amazon SageMaker izvaja uglaševanje hiperparametrov, vendar samodejno ne preizkuša več modelov ali izvaja funkcijskega inženiringa. Azure Machine Learning ima tako AutoML, ki pregleduje funkcije in algoritme, kot tudi uglaševanje hiperparametrov, ki ga običajno izvajate z najboljšim algoritmom, ki ga izbere AutoML. Google Cloud AutoML, kot sem že omenil, je poglobljeno učenje prevajanja za prevajanje jezikovnih parov, klasifikacijo naravnega jezika in klasifikacijo slik.

Številna manjša podjetja ponujajo tudi storitve AutoML. Na primer, DataRobot, ki trdi, da je izumil AutoML, ima na trgu velik ugled. Čeprav ima dotData majhen tržni delež in povprečen uporabniški vmesnik, ima močne zmogljivosti za inženiring funkcij in zajema številne primere uporabe v podjetju. AI H2O.ai Driverless AI, ki sem ga pregledal leta 2017, lahko pomaga znanstveniku za podatke, da poenoti modele, kot je Kaggle mojster, ki izvaja inženiring funkcij, pometanje algoritmov in optimizacijo hiperparametrov.

Okviri AutoML

AdaNet je lahek okvir na osnovi TensorFlow za samodejno učenje visokokakovostnih modelov z minimalnim posredovanjem strokovnjaka. Auto-Keras je odprtokodna knjižnica programske opreme za avtomatizirano strojno učenje, razvita pri Texas A&M, ki ponuja funkcije za samodejno iskanje arhitekture in hiperparametrov modelov globokega učenja. NNI (Neural Network Intelligence) je Microsoftovo orodje za pomoč uporabnikom pri učinkovitem in samodejnem oblikovanju in uglaševanju modelov strojnega učenja (npr. Hiperparametrov), arhitektur nevronskih omrežij ali zapletenih sistemskih parametrov.

Na GitHubu lahko najdete dodatne projekte AutoML in dokaj popoln in aktualen seznam prispevkov o AutoML.

$config[zx-auto] not found$config[zx-overlay] not found