Opeta Golemillesi kuinka oppia

Dan Hornen grafiikka Golemille

Ok, joten tässä asia: koneoppiminen valtaa maailman.

Kuten, ei kirjaimellisesti, skynetissä, avaruus-oddysey'ish-matriisilla. Ainakin toistaiseksi.

Miten sitten? No, tavanomaisella, taloudellisella tavalla. Tietoja kaadetaan, algoritmeja koulutetaan, rahaa ansaitaan.

Ja koska Golem on tietotekniikan tulevaisuus, haluamme pystyä suorittamaan ML-tehtäviä sillä.

On kuitenkin olemassa ongelma. Tavalliset koneoppimisalgoritmit eivät ainakaan tällä hetkellä ole triviaalisesti rinnakkaisia. Niitä voidaan ajaa rinnakkain, mutta suurelle osalle niistä se on mahdollista vain korkean kaistanleveyden ja matalan viiveen yhteyksillä.¹

Mutta on olemassa algoritmeja, jotka voidaan helposti yhdenmukaistaa ja jotka ovat ratkaisevan tärkeitä nykyaikaisessa koneoppimisessa, vaikka ne olisivatkin piilossa kulissien takana. Puhun hyperparametrien optimointiasioista.

"Mikä tuo on?", Voit kysyä. Lyhyt vastaus: ne ovat algoritmeja algoritmien optimoimiseksi. Sanotaan, että meillä on leluneuraali verkko, jossa on vain yksi kerros, jolle haluamme asettaa useita piilotettuja neuroneja. Jos asetamme sen liian korkeaksi, verkko sopii liian paljon, jos asetamme sen liian matalaksi - se ei oppi niin paljon kuin mahdollista². Koska verkon koulutusalgoritmi - gradientin laskeutuminen - ei muuta verkon rakennetta, se vain optimoi mallin parametreja (painot), meidän on löydettävä se jollain muulla tavalla. Miten sitten?

Voimme arvata. Jos olet kokenut koneoppimisinsinööri tai tutkija, arvaamme todennäköisesti melko hyvälle. Mutta se ei selvästikään ole paras tapa tehdä se.

Toinen tapa on vain tarkistaa kaikki mahdolliset kokoonpanot (joillakin alueilla, koska niitä on rajaton määrä). Tämä tuottaa parhaan mahdollisen vastauksen, mutta vie liian kauan ollakseen käytännöllinen.

Voimme yhdistää nämä kaksi lähestymistapaa arvaamalla joukon konfiguraatioita intuitioomme perusteella, ja kokeilla niitä kaikkia ja valita parhaat.

Joten miten arvaamme heidät? Voimme perustaa sen intuitioihimme, voimme valita ne satunnaisesti… tai voimme käyttää yhtä monista olemassa olevista hyperparametrien optimointialgoritmeista tehdäksemme tämän työn meille.³

Koska jokaisen kokoonpanon kokeileminen käytännössä tarkoittaa koko verkon kouluttamista tällä parametrilla ja tuloksen tarkistamista, koko toimenpide voidaan helposti yhdenmukaistaa.

Joten, tämä on ensimmäinen, todiste konseptin koneoppimisalgoritmistani, joka työskentelee Golemilla. Toteutimme sen kesän aikana, joten voit nähdä miten se toimii täällä. Ja tässä⁴ on täydellinen kuvaus ML-tehtävästä kokeiluilla, joilla perustellaan erilaisia ​​toteutusvaihtoehtoja.

Jos sinulla on kommentteja tai epäilyksiä, lähetä ne osoitteeseen contact@golem.network ja otamme mielellämme yhteyttä heihin.

[1] Parempia algoritmeja kehitetään jatkuvasti, mutta todellista hajaantunutta gradientin laskeutumista ei ole vielä löydettävä. Näkymät näyttävät kuitenkin hyvältä, katso esimerkiksi Lian et al.

[2] Kyllä, hallitsemme tällä hetkellä ylimääräistä asennusta muilla tekniikoilla, mutta tämä on vain leluesimerkki.

[3] Itse asiassa nämä algoritmit toimivat yleensä paremmin kuin satunnainen haku tai jopa ihmisen asiantuntijat. Katso Bergstra et ai. tai Snoek et ai.

[4] Se on yksi monista tutkimusresursseista, jotka olemme julkistaneet saataville varmistaaksemme, että yritys ja Golemin kehittämisprosessimme ovat avoimempia kuin koskaan. Kuvasimme sitä täällä.