Objašnjeno automatizirano strojno učenje ili AutoML

Dvije najveće prepreke korištenju strojnog učenja (i klasično strojno učenje i duboko učenje) su vještine i računalni resursi. Drugi problem možete riješiti bacanjem novca na njega, bilo za kupnju ubrzanog hardvera (poput računala s vrhunskim GPU-ima) ili za najam računalnih resursa u oblaku (kao primjerci s priključenim GPU-ima, TPU-ovima i FPGA).

S druge strane, rješavanje problema s vještinama je teže. Znanstvenici podataka često zapovijedaju pozamašnim plaćama i možda ih je još uvijek teško zaposliti. Google je uspio obučiti mnoge svoje zaposlenike na vlastitom okviru TensorFlowa, ali većina tvrtki jedva ima dovoljno stručnih ljudi da sami izrađuju modele strojnog učenja i dubokog učenja, a još manje uče druge kako.

Što je AutoML?

Automatizirano strojno učenje ili AutoML ima za cilj smanjiti ili eliminirati potrebu za vještim znanstvenicima koji rade na podacima za izradom modela strojnog učenja i dubokog učenja. Umjesto toga, sustav AutoML omogućuje vam da kao ulaz unesete označene podatke o treningu i kao izlaz dobijete optimizirani model.

Postoji nekoliko načina da se to učini. Jedan je pristup da softver jednostavno obuči svaku vrstu modela na podacima i odabere onaj koji najbolje odgovara. To bi se poboljšalo za izgradnju jednog ili više cjelovitih modela koji kombiniraju ostale modele, što ponekad (ali ne uvijek) daje bolje rezultate.

Druga tehnika je optimizacija hiperparametara (objašnjeno u nastavku) najboljeg modela ili modela kako bi se istrenirao još bolji model. Inženjering značajki (također objašnjen u nastavku) dragocjen je dodatak svakom treningu modela. Jedan od načina uklanjanja vještina dubokog učenja je korištenje transfernog učenja, u osnovi prilagođavajući dobro obučeni opći model za određene podatke.

Što je optimizacija hiperparametara?

Svi modeli strojnog učenja imaju parametre, što znači težine za svaku varijablu ili značajku u modelu. One se obično određuju povratnim širenjem pogrešaka, plus ponavljanjem pod kontrolom optimizatora, poput stohastičkog gradijentnog spuštanja.

Većina modela strojnog učenja također ima hiperparametre koji se postavljaju izvan kruga treninga. Oni često uključuju stopu učenja, stopu napuštanja i parametre specifične za model poput broja stabala u slučajnoj šumi.

Ugađanje hiperparametara ili optimizacija hiperparametara (HPO) automatski je način brisanja ili pretraživanja jednog ili više hiperparametara modela kako bi se pronašao skup koji rezultira najbolje obučenim modelom. To može potrajati, jer trebate ponovno uvježbati model (unutarnja petlja) za svaki skup vrijednosti hiperparametara u zamahu (vanjska petlja). Ako paralelno trenirate mnoge modele, možete smanjiti vrijeme potrebno na štetu upotrebe više hardvera.

Što je inženjering značajki?

Značajka je pojedinac mjerljivo svojstvo ili obilježje fenomena koji se promatra. Koncept "značajke" povezan je s konceptom objašnjenja koja se koristi u statističkim tehnikama poput linearne regresije. Značajka vektor kombinira sve značajke za jedan redak u brojčanom vektor. Inženjering značajki postupak je pronalaženja najboljeg skupa varijabli i najboljeg kodiranja i normalizacije podataka za ulaz u proces obuke modela.

Dio umijeća odabira značajki je odabrati minimalni skup neovisnih varijabli koje objašnjavaju problem. Ako su dvije varijable u velikoj korelaciji, ili ih treba kombinirati u jednu značajku, ili jednu treba ispustiti. Ponekad ljudi provode analizu glavnih komponenata (PCA) kako bi pretvorili korelirane varijable u skup linearno nekoreliranih varijabli.

Da biste koristili kategoričke podatke za klasifikaciju stroja, morate kodirati tekstne naljepnice u drugi oblik. Postoje dva uobičajena kodiranja.

Jedno je kodiranje naljepnica , što znači da se svaka vrijednost tekstne naljepnice zamjenjuje brojem. Drugi je jednokratno kodiranje , što znači da se svaka vrijednost tekstne oznake pretvara u stupac s binarnom vrijednošću (1 ili 0). Većina okvira za strojno učenje imaju funkcije koje izvršavaju pretvorbu umjesto vas. Općenito je poželjno jedno vruće kodiranje, jer kodiranje naljepnica ponekad može zbuniti algoritam strojnog učenja u razmišljanju da je kodirani stupac uređen.

Da biste koristili numeričke podatke za regresiju stroja, obično trebate podatke normalizirati. Inače, brojevi s većim rasponima mogu dominirati na euklidskoj udaljenosti između vektora obilježja, njihovi učinci mogu se povećati na štetu ostalih polja, a optimizacija najstrmijeg spuštanja može imati poteškoća u konvergenciji. Postoji niz načina za normalizaciju i standardizaciju podataka za strojno učenje, uključujući min-max normalizaciju, srednju normalizaciju, standardizaciju i skaliranje na duljinu jedinice. Taj se postupak često naziva skaliranje značajki .

Neke su transformacije koje ljudi koriste za konstrukciju novih značajki ili smanjenje dimenzionalnosti vektora značajki jednostavne su. Na primjer, oduzimanje Year of Birthod Year of Deathi izgradnju Age at Death, koji je premijer nezavisna varijabla za života i analizu smrtnosti. U drugim slučajevima, konstrukcija značajki možda nije toliko očita.

Što je učenje transfera?

Prijenosno učenje ponekad se naziva prilagođeno strojno učenje, a ponekad naziva AutoML (uglavnom Google). Umjesto da započinje ispočetka kada trenira modele iz vaših podataka, Google Cloud AutoML implementira automatsko učenje dubokog prijenosa (što znači da započinje s postojeće duboke neuronske mreže obučene na drugim podacima) i pretraživanje neuronske arhitekture (što znači da pronalazi pravu kombinaciju dodatnih mrežni slojevi) za prijevod jezičnog para, klasifikaciju prirodnog jezika i klasifikaciju slika.

To je drugačiji postupak od onoga što obično podrazumijeva AutoML i ne obuhvaća toliko slučajeva korištenja. S druge strane, ako vam je potreban prilagođeni model dubokog učenja u podržanom području, učenje transfera često će stvoriti vrhunski model.

Implementacije AutoML-a

Postoje mnoge implementacije AutoML-a koje možete isprobati. Neki su plaćene usluge, a neki besplatni izvorni kod. Popisi u nastavku nikako nisu cjeloviti ili konačni.

Usluge AutoML

Sve tri velike usluge u oblaku imaju neku vrstu AutoML-a. Amazon SageMaker podešava hiperparametar, ali ne iskušava automatski više modela ili izvodi inženjering značajki. Azure strojno učenje ima i AutoML, koji provlači značajke i algoritme, i ugađanje hiperparametara, koje obično radite na najboljem algoritmu koji je odabrao AutoML. Google Cloud AutoML, kao što sam ranije spomenuo, duboko je učenje za prijevod jezičnih parova, klasifikaciju prirodnog jezika i klasifikaciju slika.

Niz manjih tvrtki nudi i usluge AutoML. Na primjer, DataRobot, koji tvrdi da je izumio AutoML, ima snažnu reputaciju na tržištu. I dok dotData ima mali tržišni udio i osrednje korisničko sučelje, ima jake mogućnosti inženjeringa značajki i pokriva mnoge slučajeve korištenja u poduzeću. H2O.ai Driverless AI, koji sam pregledao 2017. godine, može pomoći znanstveniku podataka da na jedinstven način napravi modele poput Kaggle master-a, koji vrši inženjering značajki, prečišćavanje algoritama i optimizaciju hiperparametara.

AutoML okviri

AdaNet je lagani okvir zasnovan na TensorFlowu za automatsko učenje visokokvalitetnih modela uz minimalnu intervenciju stručnjaka. Auto-Keras je softverska knjižnica otvorenog koda za automatizirano strojno učenje, razvijena u Texas A&M, koja pruža funkcije za automatsko traženje arhitekture i hiperparametara modela dubokog učenja. NNI (Neural Network Intelligence) je alatni paket tvrtke Microsoft koji pomaže korisnicima na učinkovit i automatski način dizajnirati i prilagoditi modele strojnog učenja (npr. Hiperparametri), arhitekture neuronskih mreža ili složene sustavne parametre.

Na GitHubu možete pronaći dodatne AutoML projekte i prilično potpun i trenutni popis radova o AutoML-u.