Programavimas

Automatinis mašininis mokymasis arba „AutoML“ paaiškinimas

Dvi didžiausios mašininio mokymosi kliūtys (klasikinis mašininis mokymasis ir gilus mokymasis) yra įgūdžiai ir skaičiavimo ištekliai. Antrąją problemą galite išspręsti mėtydami pinigus, jei norite įsigyti pagreitintą techninę įrangą (pvz., Kompiuterius su aukščiausios klasės GPU) arba išsinuomoti skaičiavimo išteklius debesyje (pvz., Egzempliorius su prijungtais GPU, TPU ir kt.). FPGA).

Kita vertus, spręsti įgūdžių problemą yra sunkiau. Duomenų mokslininkai dažnai vadovauja nemažiems atlyginimams ir juos vis dar gali būti sunku įdarbinti. „Google“ sugebėjo apmokyti daugelį savo darbuotojų naudodama savo „TensorFlow“ sistemą, tačiau dauguma įmonių vos turi pakankamai kvalifikuotų žmonių, kad patys galėtų kurti mašininio mokymosi ir giluminio mokymosi modelius, o dar mažiau - mokyti kitus.

Kas yra „AutoML“?

Automatizuoto mašininio mokymosi arba „AutoML“ tikslas yra sumažinti arba pašalinti kvalifikuotų duomenų mokslininkų poreikį kurti mašininio mokymosi ir giluminio mokymosi modelius. Vietoj to, „AutoML“ sistema leidžia pateikti paženklintus treniruotės duomenis kaip įvestį ir gauti optimizuotą modelį kaip išvestį.

Yra keli būdai, kaip tai padaryti. Vienas iš būdų yra tai, kad programinė įranga paprasčiausiai moko visų tipų duomenis ir išsirenka geriausiai tinkantį modelį. Tai patobulintų, jei būtų sukurtas vienas ar keli ansamblio modeliai, kurie sujungtų kitus modelius, o tai kartais (bet ne visada) duoda geresnius rezultatus.

Antroji metodika yra geriausio modelio ar modelių hiperparametrų (paaiškintų toliau) optimizavimas, norint išmokyti dar geresnį modelį. Funkcijų inžinerija (taip pat paaiškinta toliau) yra vertingas bet kokio modelio mokymo papildymas. Vienas iš gilaus mokymosi įgūdžių mažinimo būdų yra mokymasis perkėlimu, iš esmės pritaikant gerai apmokytą bendrą modelį konkretiems duomenims.

Kas yra hiperparametrų optimizavimas?

Visi mašininio mokymosi modeliai turi parametrus, reiškiančius kiekvieno modelio kintamojo ar ypatybės svorį. Dažniausiai tai nustatoma pagal klaidų plitimą atgal, pridėjus iteraciją, kurią kontroliuoja optimizatorius, pvz., Stochastinis gradiento nusileidimas.

Daugumoje mašininio mokymosi modelių taip pat yra hiperparametrų, kurie nustatomi ne mokymo cikle. Tai dažnai apima mokymosi greitį, nebaigusiųjų skaičių ir modeliui būdingus parametrus, tokius kaip medžių skaičius atsitiktiniame miške.

Hiperparametrų derinimas arba hiperparametrų optimizavimas (HPO) yra automatinis būdas nušluoti arba ieškoti vieno ar daugiau modelio hiperparametrų, kad būtų galima rasti rinkinį, kurio rezultatas yra geriausiai apmokytas modelis. Tai gali užimti daug laiko, nes jums reikia dar kartą mokyti modelį (vidinę kilpą) kiekvienam hiperparametrų verčių rinkiniui (išorinė kilpa). Jei mokote daugybę modelių lygiagrečiai, galite sutrumpinti laiką, reikalingą daugiau aparatūros naudojimo sąskaita.

Kas yra funkcijų inžinerija?

A funkcija yra individuali išmatuojama stebimo reiškinio savybė ar charakteristika. „Ypatybės“ sąvoka yra susijusi su aiškinamojo kintamojo sąvoka, kuri naudojama statistikos metoduose, pavyzdžiui, tiesinėje regresijoje. A ypatybių vektorius sujungia visas vienos eilutės savybes į skaitinį vektorių. Funkcijų inžinerija yra geriausių kintamųjų rinkinio ir geriausio duomenų kodavimo ir normalizavimo procesas, skirtas įvesties modelio mokymo procese.

Dalis meno pasirinkimo funkcijų yra pasirinkti minimalų rinkinį nepriklausomas kintamieji, paaiškinantys problemą. Jei du kintamieji yra labai susiję, juos reikia arba sujungti į vieną požymį, arba vieną atsisakyti. Kartais žmonės atlieka pagrindinio komponento analizę (PKS), kad koreliuojančius kintamuosius paverstų tiesiškai nekoreliuojamų kintamųjų rinkiniu.

Norėdami klasikinius duomenis naudoti mašinų klasifikacijai, turite užkoduoti teksto etiketes į kitą formą. Yra du įprasti kodavimai.

Vienas yra etikečių kodavimas, o tai reiškia, kad kiekviena teksto etiketės vertė yra pakeista skaičiumi. Kitas yra vienkartinis kodavimas, o tai reiškia, kad kiekviena teksto etiketės vertė yra paversta stulpeliu, kuriame yra dvejetainė reikšmė (1 arba 0). Daugelis mašininio mokymosi sistemų turi funkcijas, kurios konversiją atlieka už jus. Paprastai pirmenybė teikiama vienkartiniam kodavimui, nes etikečių kodavimas kartais gali suklaidinti mašininio mokymosi algoritmą galvojant, kad užkoduotas stulpelis yra užsakytas.

Norėdami naudoti skaitinius duomenis mašinos regresijai, paprastai turite normalizuoti duomenis. Priešingu atveju skaičiai, turintys didesnį diapazoną, gali būti linkę dominuoti euklido atstumu tarp požymių vektorių, jų poveikis gali būti padidintas kitų laukų sąskaita, o stačiausiam nusileidimo optimizavimui gali būti sunku suartėti. Yra keletas būdų, kaip normalizuoti ir standartizuoti mašininio mokymosi duomenis, įskaitant min-max normalizavimą, vidutinį normalizavimą, standartizavimą ir mastelio keitimą pagal vieneto ilgį. Šis procesas dažnai vadinamas funkcijų mastelis.

Kai kurios transformacijos, kurias žmonės naudoja kurdami naujas ypatybes arba mažindami ypatybių vektorių matmenis, yra paprasti. Pavyzdžiui, atimkite Gimimo metai nuo Mirties metai ir tu konstruoji Amžius mirties metu, kuris yra pagrindinis nepriklausomas kintamasis viso gyvenimo ir mirtingumo analizei. Kitais atvejais funkcijų konstrukcija gali būti ne taip akivaizdu.

Kas yra mokymasis perkėlimu?

Mokymasis perkėlimu kartais vadinamas pritaikytu mašininiu mokymusi, o kartais vadinamas „AutoML“ (dažniausiai „Google“). Užuot pradėjęs nuo nulio mokydamas modelius iš savo duomenų, „Google Cloud AutoML“ įgyvendina automatinį giluminio perkėlimo mokymą (tai reiškia, kad jis pradedamas nuo esamo gilaus neuroninio tinklo, apmokyto pagal kitus duomenis) ir neuroninės architektūros paiešką (tai reiškia, kad randa tinkamą derinį tinklo sluoksniai) kalbų porų vertimui, natūralių kalbų klasifikavimui ir vaizdų klasifikavimui.

Tai kitoks procesas, nei paprastai reiškia „AutoML“, ir jis neapima tiek daug naudojimo atvejų. Kita vertus, jei jums reikalingas pritaikytas gilaus mokymosi modelis palaikomoje srityje, mokymasis perkėlimu dažnai sukuria pranašesnį modelį.

AutoML diegimas

Yra daugybė „AutoML“ įdiegimų, kuriuos galite išbandyti. Kai kurios yra mokamos paslaugos, o kai kurios yra nemokamas šaltinio kodas. Žemiau pateikti sąrašai anaiptol nėra išsamūs ar galutiniai.

AutoML paslaugos

Visos trys didžiosios debesų paslaugos turi kažkokį „AutoML“. „Amazon SageMaker“ atlieka hiperparametrų derinimą, tačiau automatiškai neišbando kelių modelių ar neatlieka funkcijų inžinerijos. „Azure Machine Learning“ turi ir „AutoML“, apimančią funkcijas ir algoritmus, ir hiperparametrų derinimą, kurį paprastai naudojate geriausiu „AutoML“ pasirinktu algoritmu. „Google Cloud AutoML“, kaip jau aptariau anksčiau, yra gilus perkėlimas mokantis kalbų porų vertimo, natūralių kalbų ir vaizdų klasifikavimo.

Nemažai mažesnių įmonių taip pat siūlo „AutoML“ paslaugas. Pavyzdžiui, „DataRobot“, teigianti, kad išrado „AutoML“, turi stiprią reputaciją rinkoje. Nors „dotData“ turi nedidelę rinkos dalį ir vidutinišką vartotojo sąsają, ji turi stiprių funkcijų inžinerijos galimybių ir apima daugelį įmonės naudojimo atvejų. „H2O.ai“ be vairuotojo dirbtinis intelektas, kurį peržiūrėjau 2017 m., Gali padėti duomenų mokslininkui vieningai atlikti tokius modelius kaip „Kaggle“ meistras, atliekant funkcijų inžineriją, algoritmų valymą ir hiperparametrų optimizavimą.

„AutoML“ sistemos

„AdaNet“ yra lengva „TensorFlow“ pagrindu sukurta sistema, skirta automatiškai mokytis aukštos kokybės modelių su minimalia ekspertų intervencija. „Auto-Keras“ yra „Texas A&M“ sukurta automatinio mašininio mokymosi atvirojo kodo programinės įrangos biblioteka, teikianti funkcijas, leidžiančias automatiškai ieškoti giliųjų mokymosi modelių architektūros ir hiperparametrų. NNI (Neural Network Intelligence) yra „Microsoft“ įrankių rinkinys, padedantis vartotojams efektyviai ir automatiškai suprojektuoti ir suderinti mašininio mokymosi modelius (pvz., Hiperparametrus), neuroninio tinklo architektūras ar sudėtingos sistemos parametrus.

„GitHub“ galite rasti papildomų „AutoML“ projektų ir gana išsamų ir dabartinį dokumentų apie „AutoML“ sąrašą.