Ohjelmointi

Automaattinen koneoppiminen tai AutoML selitetty

Kaksi suurinta estettä koneoppimisen käytölle (sekä klassinen koneoppiminen että syvällinen oppiminen) ovat taidot ja laskentaresurssit. Voit ratkaista toisen ongelman heittämällä siihen rahaa joko nopeutettujen laitteistojen (kuten tietokoneiden, joissa on huippuluokan GPU) ostamiseen tai laskentaresurssien vuokraamiseen pilvessä (kuten instanssit, joihin on liitetty GPU: t, TPU: t ja FPGA).

Toisaalta osaamisongelman ratkaiseminen on vaikeampi. Datatieteilijät määräävät usein mittavia palkkoja, ja niitä voi silti olla vaikea värvätä. Google pystyi kouluttamaan monia työntekijöitään omalla TensorFlow-kehyksellään, mutta useimmilla yrityksillä on tuskin riittävästi taitoja rakentaa itse koneoppimista ja syvällisiä oppimismalleja, vielä vähemmän opettaa muille.

Mikä on AutoML?

Automatisoitu koneoppiminen eli AutoML pyrkii vähentämään tai poistamaan ammattitaitoisten datatieteilijöiden tarpeen rakentaa koneoppimista ja syvällisiä oppimismalleja. Sen sijaan AutoML-järjestelmän avulla voit antaa merkittyjä harjoitustietoja syötteenä ja vastaanottaa optimoidun mallin tuotoksena.

Tähän on useita tapoja. Yksi lähestymistapa on, että ohjelmisto yksinkertaisesti kouluttaa kaikenlaisen mallin tietoihin ja valitsee parhaiten toimivan mallin. Tämän hienosäätö merkitsisi sitä, että se rakensi yhden tai useamman kokonaisuusmallin, joka yhdistää muut mallit, mikä joskus (mutta ei aina) antaa parempia tuloksia.

Toinen tekniikka on parhaiden mallien tai parempien mallien hyperparametrien optimointi vielä paremman mallin kouluttamiseksi. Ominaisuustekniikka (selitetään myös alla) on arvokas lisäys mihin tahansa mallikoulutukseen. Yksi tapa syvällisen oppimisen taitojen poistamiseen on käyttää siirto-oppimista, lähinnä räätälöimällä hyvin koulutettua yleismallia erityistiedoille.

Mikä on hyperparametrien optimointi?

Kaikissa koneoppimismalleissa on parametreja, jotka tarkoittavat mallin kunkin muuttujan tai ominaisuuden painoja. Nämä määritetään yleensä virheiden etenemisellä taaksepäin, plus iterointi optimoijan ohjaamana, kuten stokastinen gradientin lasku.

Useimmissa koneoppimismalleissa on myös hyperparametreja, jotka on asetettu harjoituspiirin ulkopuolelle. Nämä sisältävät usein oppimisnopeuden, keskeyttämisnopeuden ja mallikohtaiset parametrit, kuten satunnaisten metsien puiden lukumäärän.

Hyperparametrien viritys tai hyperparametrien optimointi (HPO) on automaattinen tapa pyyhkäistä tai etsiä yhden tai useamman mallin hyperparametrin joukosta löytää joukko, joka johtaa parhaiten koulutettuun malliin. Tämä voi olla aikaa vievää, koska joudut kouluttamaan mallin uudelleen (sisempi silmukka) jokaiselle pyyhkäisyn (ulkosilmukan) hyperparametri-arvojoukolle. Jos harjoittelet useita malleja rinnakkain, voit lyhentää aikaa kuluttamalla enemmän laitteita.

Mikä on ominaisuuksien suunnittelu?

A ominaisuus on havaittavan ilmiön yksilöllinen mitattava ominaisuus tai ominaisuus. "Ominaisuuden" käsite liittyy selittävän muuttujan käsitteeseen, jota käytetään tilastollisissa tekniikoissa, kuten lineaarisessa regressiossa. A ominaisuusvektori yhdistää kaikki yhden rivin ominaisuudet numeeriseksi vektoriksi. Ominaisuuksien suunnittelu on prosessi, jossa löydetään paras muuttujasarja ja paras tietojen koodaus ja normalisointi malliharjoitteluprosessia varten.

Osa ominaisuuksien valitsemisesta on valita vähimmäisjoukko riippumaton muuttujat, jotka selittävät ongelman. Jos kaksi muuttujaa korreloi voimakkaasti, ne on joko yhdistettävä yhdeksi ominaisuudeksi tai yksi on hylättävä. Joskus ihmiset suorittavat pääkomponenttianalyysin (PCA) muuntamaan korreloivat muuttujat joukoksi lineaarisesti korreloimattomia muuttujia.

Jos haluat käyttää kategorisia tietoja koneiden luokittelussa, sinun on koodattava tekstitarrat toiseen muotoon. Koodauksia on kaksi.

Yksi on tarran koodaus, mikä tarkoittaa, että jokainen tekstitarran arvo korvataan numerolla. Toinen on yksi kuuma koodaus, mikä tarkoittaa, että jokainen tekstitarra-arvo muutetaan sarakkeeksi, jossa on binääriarvo (1 tai 0). Useimmissa koneoppimisen puitteissa on toimintoja, jotka tekevät muunnoksen puolestasi. Yleensä yksi kuuma koodaus on edullinen, koska tarrojen koodaus voi joskus sekoittaa koneoppimisalgoritmin ajattelemaan, että koodattu sarake on järjestetty.

Jos haluat käyttää numeerista dataa koneen regressiossa, sinun on yleensä normalisoitava tiedot. Muussa tapauksessa suurempien alueiden luvut saattavat yleensä hallita euklidista etäisyyttä piirteiden vektorien välillä, niiden vaikutuksia voitaisiin suurentaa muiden kenttien kustannuksella, ja jyrkimmällä laskeutumisoptimoinnilla voi olla vaikeuksia lähentyä. On olemassa useita tapoja normalisoida ja standardoida koneoppimista koskevia tietoja, mukaan lukien min-max-normalisointi, keskimääräinen normalisointi, standardointi ja skaalaus yksikön pituuteen. Tätä prosessia kutsutaan usein ominaisuuksien skaalaus.

Jotkut muunnoksista, joita ihmiset käyttävät uusien ominaisuuksien rakentamiseen tai piirteiden vektorien ulottuvuuden vähentämiseen, ovat yksinkertaisia. Esimerkiksi vähennä Syntymävuosi alkaen Kuoleman vuosi ja sinä rakennat Ikä kuolemassa, joka on tärkein riippumaton muuttuja elinikä- ja kuolleisuusanalyysissä. Muissa tapauksissa ominaisuusrakenne ei ehkä ole niin ilmeinen.

Mikä on siirto-oppiminen?

Siirto-oppimista kutsutaan joskus mukautetuksi koneoppimiseksi ja joskus AutoML-nimeksi (lähinnä Google). Sen sijaan, että aloitettaisiin alusta alkaen, kun harjoitellaan malleja datastasi, Google Cloud AutoML toteuttaa automaattisen syvän siirron oppimisen (tarkoittaen, että se alkaa olemassa olevasta syvästä hermoverkosta, joka on koulutettu muuhun dataan) ja hermoarkkitehtuurihakuun (mikä tarkoittaa, että se löytää oikean yhdistelmän ylimääräistä verkkokerrokset) kieliparien käännökselle, luonnollisen kielen luokittelulle ja kuvaluokitukselle.

Se on erilainen prosessi kuin mitä AutoML yleensä tarkoittaa, eikä se kata niin monta käyttötapausta. Toisaalta, jos tarvitset räätälöityä syvällisen oppimisen mallia tuetulla alueella, siirto-oppiminen tuottaa usein ylivertaisen mallin.

AutoML-toteutukset

Voit kokeilla monia AutoML-toteutuksia. Jotkut ovat maksullisia palveluita, ja jotkut ovat ilmaisia ​​lähdekoodeja. Alla olevat luettelot eivät ole missään nimessä täydellisiä tai lopullisia.

AutoML-palvelut

Kaikissa kolmessa suuressa pilvipalvelussa on jonkinlainen AutoML. Amazon SageMaker säätää hyperparametreja, mutta ei automaattisesti kokeile useita malleja tai suorita ominaisuuksien suunnittelua. Azure Machine Learning sisältää sekä AutoML: n, joka pyyhkäisee läpi ominaisuudet ja algoritmit, että hyperparametrien virityksen, joka suoritetaan tyypillisesti parhaalla AutoML: n valitsemalla algoritmilla. Kuten aiemmin keskustelin, Google Cloud AutoML on syvä siirto-oppiminen kieliparien käännöksille, luonnollisen kielen luokittelulle ja kuvaluokitukselle.

Useat pienemmät yritykset tarjoavat myös AutoML-palveluja. Esimerkiksi DataRobotilla, joka väittää keksineensä AutoML: n, on vahva maine markkinoilla. Ja vaikka dotDatalla on pieni markkinaosuus ja keskinkertainen käyttöliittymä, sillä on vahvat ominaisuuksien suunnitteluominaisuudet ja se kattaa monet yrityksen käyttötapaukset. H2O.ai-ohjaimeton tekoäly, jonka tarkistin vuonna 2017, voi auttaa datatieteilijää tekemään malleja, kuten Kaggle-päällikkö, tekemällä ominaisuuksien suunnittelua, algoritmien pyyhkäisyjä ja hyperparametrien optimointia yhtenäisellä tavalla.

AutoML-kehykset

AdaNet on kevyt TensorFlow-pohjainen kehys korkealaatuisten mallien automaattiseen oppimiseen minimaalisella asiantuntijatoiminnalla. Auto-Keras on Texas A&M: ssä kehitetty avoimen lähdekoodin automaattisen koneoppimisen ohjelmistokirjasto, joka tarjoaa toimintoja automaattisen syvähankintamallien arkkitehtuurin ja hyperparametrien etsimiseen. NNI (Neural Network Intelligence) on Microsoftin työkalupakki, joka auttaa käyttäjiä suunnittelemaan ja virittämään koneoppimismalleja (esim. Hyperparametreja), hermoverkkoarkkitehtuureja tai monimutkaisen järjestelmän parametreja tehokkaalla ja automaattisella tavalla.

Löydät lisää AutoML-projekteja ja melko kattavan ja ajan tasalla olevan luettelon AutoML: stä GitHubista.

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