Õpetage oma Golemile, kuidas õppida

Dan Horne graafika Golemile

Ok, nii et siin on asi: masinõpe võtab kogu maailma üle.

Nagu mitte, sõna-sõnalt skynetish, space-oddysey'ish ja maatriks. Vähemalt praegu.

Kuidas siis? Noh, tavalisel, säästlikul viisil. Andmeid valatakse, algoritme koolitatakse, raha teenitakse.

Ja kuna Golem on andmetöötluse tulevik, tahaksime, et saaksime sellega ML-i ülesandeid täita.

Probleem on siiski olemas. Tavalised masinõppe algoritmid pole vähemalt praegu triviaalselt paralleelsed. Neid saab käitada paralleelselt, kuid suure osa nende jaoks on see võimalik ainult suure ribalaiusega ja madala latentsusajaga ühendustega.¹

Kuid on olemas algoritme, mida saab hõlpsalt paralleelselt kohandada ja mis on kaasaegses masinõppe töövoogus üliolulised, isegi kui nad on kulisside taga peidetud. Ma räägin hüperparameetri optimeerimise värkidest.

"Mis see on?", Võite küsida. Lühike vastus: need on algoritmid algoritmide optimeerimiseks. Ütleme nii, et meil on ainult ühe kihiga mänguasjaline närvivõrk, mille jaoks tahame seada hulga peidetud neuroneid. Kui seame selle liiga kõrgele, siis võrk sobib üle, kui seame liiga madalale - see ei õpi nii palju kui võiks². Kuna võrgu treenimisalgoritm - gradiendi laskumine - ei muuda võrgu struktuuri, vaid optimeerib mudeli parameetreid (kaalu), peame selle leidma muul viisil. Kuidas siis?

Noh, me võime arvata. Kui olete kogenud masinõppe insener või teadlane, siis arvame arvatavasti, et oleme üsna head. Kuid see pole ilmselt parim viis selleks.

Teine võimalus on lihtsalt kontrollida kõiki võimalikke konfiguratsioone (mõnes vahemikus, kuna neid on lõpmatu hulk). See annab parima võimaliku vastuse, kuid võtab praktilise kasutamisega liiga kaua aega.

Neid kahte lähenemisviisi saame ühendada, aimates intuitsiooni põhjal arvukalt konfiguratsioone, siis proovime neid kõiki ja valime parima.

Niisiis, kuidas me neid ära arvame? Saame selle rajada oma intuitsioonile, valida need juhuslikult ... või kasutada ühte paljudest hüperparameetrite optimeerimise algoritmidest, mis meie jaoks seda tööd teevad.³

Kuna praktikas tähendab iga konfiguratsiooni proovimine kogu võrgu selle parameetriga väljaõppimist ja seejärel tulemuse kontrollimist, saab kogu protseduuri hõlpsalt paralleelselt viia.

Niisiis, see on meie esimene, kontseptsiooni tõestuseks mõeldud masinõppe algoritm, mis töötab Golemil. Rakendasime selle suve jooksul, nii et näete, kuidas see siin töötab. Ja siin⁴ on ML-i ülesande täielik kirjeldus koos katsetega, mis õigustavad erinevaid rakendusvalikuid.

Kui teil on kommentaare või kahtlusi, saatke need aadressile contact@golem.network ja me pöörduksime hea meelega neile.

[1] Pidevalt töötatakse välja paremaid algoritme, kuid tegelikku hajutatud gradiendi laskumist pole meil veel näha. Väljavaated näevad siiski head välja, vt näiteks Lian jt.

[2] Jah, praegu kontrollime ületäitumist muude tehnikatega, kuid see on ainult mänguasja näide.

[3] Tegelikult toimivad need algoritmid tavaliselt paremini kui juhuslik otsing või isegi inimeksperdid. Vt Bergstra jt. või Snoek jt.

[4] See on üks meie paljudest uurimisressurssidest, mille me üldsusele kättesaadavaks tegime, tagamaks, et ettevõte ja meie Golemi arendamise protsess oleksid läbipaistvamad kui kunagi varem. Kirjeldasime seda siin.