Programavimas

14 atvirojo kodo įrankių, kad maksimaliai išnaudotumėte mašininį mokymąsi

Šlamšto filtravimas, veido atpažinimas, rekomendacijų varikliai - kai turite didelį duomenų rinkinį, kuriame norėtumėte atlikti nuspėjamąją analizę ar atpažinti modelį, mašininis mokymasis yra kelias. Daugėjant nemokamos atvirojo kodo programinės įrangos, mašininis mokymasis tapo lengviau įgyvendinamas tiek atskirose mašinose, tiek mastelyje ir populiariausiose programavimo kalbose. Šie atvirojo kodo įrankiai apima bibliotekas, pvz., „Python“, „R“, „C ++“, „Java“, „Scala“, „Clojure“, „JavaScript“ ir „Go“.

Apache Mahoutas

„Apache Mahout“ suteikia galimybę sukurti mašininio mokymosi programų talpinimo aplinką, kurią galima greitai ir efektyviai keisti, kad būtų patenkinta paklausa. Mahoutas daugiausia dirba su kitu gerai žinomu „Apache“ projektu „Spark“ ir iš pradžių buvo sukurtas bendradarbiauti su „Hadoop“ siekiant paleisti paskirstytas programas, tačiau buvo išplėstas, kad galėtų dirbti su kitais paskirstytais galiniais galais, tokiais kaip „Flink“ ir „H2O“.

Mahoutas „Scala“ kalba naudoja domenui būdingą kalbą. Versija 0.14 yra pagrindinis vidinis projekto refaktorius, kurio numatytasis pagrindas yra „Apache Spark 2.4.3“.

Sukurti

„Innovation Labs“ sukurta bendra mašininio mokymosi modelių problema: neapdorotų duomenų žymėjimas, kuris gali būti lėtas ir varginantis procesas, bet be kurio mašininio mokymosi modelis negali duoti naudingų rezultatų. „Compose“ leidžia „Python“ parašyti duomenų žymėjimo funkcijų rinkinį, todėl žymėti galima kuo programiškiau. Norėdami palengvinti ženklinimo procesą, galite nustatyti įvairias duomenų transformacijas ir slenksčius, pvz., Įdėti duomenis į šiukšliadėžes, remiantis atskiromis reikšmėmis ar kvantiliais.

Pagrindiniai ML įrankiai

„Apple“ „Core ML“ sistema leidžia integruoti mašininio mokymosi modelius į programas, tačiau naudoja savo atskirą mokymosi modelio formatą. Geros naujienos yra tai, kad jums nereikia iš anksto paruošti modelių „Core ML“ formatu, kad juos galėtumėte naudoti; Galite konvertuoti beveik visų įprastų mašininio mokymosi programų modelius į „Core ML“ naudodami „Core ML Tools“.

„Core ML Tools“ veikia kaip „Python“ paketas, todėl jis integruojamas su daugybe „Python“ mašininio mokymosi bibliotekų ir įrankių. Visi „TensorFlow“, „PyTorch“, „Keras“, „Caffe“, ONNX, „Scikit-learn“, „LibSVM“ ir „XGBoost“ modeliai gali būti konvertuojami. Neuroninių tinklų modelius taip pat galima optimizuoti pagal dydį, naudojant kvantavimą po treniruotės (pvz., Iki mažo, vis dar tikslaus gylio).

Žievė

„Cortex“ yra patogus būdas pateikti mašininio mokymosi modelių prognozes naudojant „Python“ ir „TensorFlow“, „PyTorch“, „Scikit-learn“ ir kitus modelius. Daugumą „Cortex“ paketų sudaro tik keli failai - pagrindinė „Python“ logika, „cortex.yaml“ failas, kuriame aprašoma, kokius modelius naudoti ir kokius skaičiavimo išteklius paskirstyti, ir failas „nõuds.txt“, kad būtų įdiegti visi reikalingi „Python“ reikalavimai. Visas paketas yra išdėstytas kaip „Docker“ konteineris AWS ar kitoje „Docker“ suderinamoje prieglobos sistemoje. Apskaičiuoti ištekliai paskirstomi taip, kad atitiktų „Kubernetes“ naudojamus apibrėžimus, ir jūs galite naudoti GPU arba „Amazon Inferentia ASIC“, kad pagreitintumėte aptarnavimą.

Funkcijos įrankiai

Funkcijų inžinerija arba funkcijų kūrimas apima duomenų, naudojamų mokant mašininio mokymosi modelio, paėmimą ir paprastai rankomis sukuriant transformuotą ir suvestinę duomenų versiją, kuri yra naudingesnė modelio mokymui. „Featuretools“ suteikia jums funkcijas, kaip tai padaryti naudojant aukšto lygio „Python“ objektus, sukurtus sintetinant duomenis duomenų kadruose, ir tai gali padaryti duomenys, išgaunami iš vieno ar kelių duomenų kadrų. „Featuretools“ taip pat pateikia įprastus sintezės operacijų pradmenis (pvz., time_since_previous, kad būtų pateiktas laikas, praėjęs tarp laiko žymėtų duomenų egzempliorių), todėl jums nereikės jų valgyti atskirai.

„GoLearn“

Pasak kūrėjo Stepheno Whitwortho, „GoLearn“ - mašininio mokymosi biblioteka, skirta „Google's Go“ kalbai, buvo sukurta siekiant dviejų paprastumo ir pritaikomumo tikslų. Paprastumas yra duomenų įkėlimo ir tvarkymo bibliotekoje būdas, kuris sukurtas pagal „SciPy“ ir „R.“. Tinkinamumas slypi tame, kaip kai kurias duomenų struktūras galima lengvai išplėsti programoje. Whitworthas taip pat sukūrė „Go wrapper“ „Vowpal Wabbit“ bibliotekai, vienai iš bibliotekų, esančių „Shogun“ įrankių dėžutėje.

„Gradio“

Kuriant mašininio mokymosi programas, vienas iš bendrų iššūkių yra sukurti tvirtą ir lengvai pritaikomą vartotojo sąsają, skirtą modelio mokymui ir numatymo mechanizmams. „Gradio“ pateikia žiniatinklio vartotojo sąsajų kūrimo įrankius, leidžiančius realiuoju laiku bendrauti su savo modeliais. Keli įtraukti pavyzdiniai projektai, pvz., „Inception V3“ vaizdo klasifikatoriaus įvesties sąsajos arba MNIST rašysenos atpažinimo modelis, suteikia jums idėją, kaip galite naudoti „Gradio“ su savo projektais.

H2O

„H2O“, atliekama jau trečioje pagrindinėje versijoje, suteikia visą mokymosi atmintyje platformą, pradedant mokymu ir baigiant prognozėmis. H2O algoritmai yra pritaikyti verslo procesams - pavyzdžiui, sukčiavimui ar tendencijų prognozavimui, o ne, tarkim, vaizdų analizei. „H2O“ gali savarankiškai sąveikauti su HDFS parduotuvėmis, siūlų viršuje, „MapReduce“ arba tiesiogiai „Amazon EC2“ egzemplioriuose.

„Hadoop mavens“ gali naudoti „Java“ sąveikai su H2O, tačiau sistemoje taip pat pateikiami „Python“, „R“ ir „Scala“ susiejimai, leidžiantys bendrauti su visomis tose platformose esančiomis bibliotekomis. Taip pat galite grįžti prie REST skambučių, kaip būdą integruoti H2O į daugumą bet kokio vamzdyno.

Oryx

„Oryx“, „Cloudera Hadoop“ platintojų sutikimu, naudoja „Apache Spark“ ir „Apache Kafka“, kad vykdytų mašininio mokymosi modelius realiuoju laiku. „Oryx“ suteikia galimybę kurti projektus, kuriems šiuo metu reikia priimti sprendimus, pvz., Rekomendacinius variklius ar tiesioginių anomalijų aptikimą, kurie yra pagrįsti naujais ir istoriniais duomenimis. 2.0 versija yra beveik baigtas projekto pertvarkymas, jo komponentai laisvai susieti su lambda architektūra. Naujus algoritmus ir naujas tų algoritmų abstrakcijas (pvz., Hiperparametrų parinkimui) galima pridėti bet kuriuo metu.

„PyTorch“ žaibas

Kai populiarus galingas projektas, jį dažnai papildo trečiųjų šalių projektai, palengvinantys jo naudojimą. „PyTorch Lightning“ suteikia „PyTorch“ organizacinį paketą, kad galėtumėte sutelkti dėmesį į svarbų kodą, o ne rašyti kiekvieno projekto katilą.

Žaibo projektuose naudojama klasių struktūra, todėl kiekvienas bendras „PyTorch“ projekto žingsnis yra įtrauktas į klasės metodą. Mokymo ir patvirtinimo ciklai yra pusiau automatizuoti, todėl jums reikia pateikti tik kiekvieno žingsnio logiką. Taip pat lengviau nustatyti mokymo rezultatus keliuose GPU arba skirtinguose aparatūros deriniuose, nes instrukcijos ir objektų nuorodos tai padaryti yra centralizuotos.

Scikit-mokykis

„Python“ tapo matematikos, gamtos mokslų ir statistikos programavimo kalba, nes ją lengva pritaikyti ir yra daugybė bibliotekų, kurias galima naudoti beveik bet kurioje programoje. „Scikit-learn“ pasitelkia šį plotą, pastatydamas ant kelių esamų „Python“ paketų - „NumPy“, „SciPy“ ir „Matplotlib“ - matematikos ir gamtos mokslų darbams. Gautas bibliotekas galima naudoti interaktyvioms „darbastalio“ programoms arba įterpti į kitą programinę įrangą ir pakartotinai naudoti. Rinkinį galima įsigyti pagal BSD licenciją, todėl jis yra visiškai atidarytas ir daugkartinio naudojimo.

Šogunas

„Shogun“ yra vienas ilgiausiai gyvavusių šios kolekcijos projektų. Jis buvo sukurtas 1999 m. Ir parašytas C ++, tačiau jį galima naudoti su „Java“, „Python“, „C #“, „Ruby“, „R“, „Lua“, „Octave“ ir „Matlab“. Naujausia pagrindinė versija - 6.0.0 - suteikia papildomą „Microsoft Windows“ ir „Scala“ kalbos palaikymą.

Nors Šogunas yra populiarus ir plataus masto, jis konkuruoja. Kita „C ++“ pagrindu sukurta mašininio mokymosi biblioteka „Mlpack“ veikia tik nuo 2011 m., Tačiau tikina, kad su ja dirbti yra greičiau ir lengviau (naudojant vientisesnį API rinkinį) nei konkuruojančiomis bibliotekomis.

„Spark MLlib“

Mašinų mokymosi biblioteka, skirta „Apache Spark“ ir „Apache Hadoop“, „MLlib“, gali pasigirti daugybe įprastų algoritmų ir naudingų duomenų tipų, sukurtų veikti greičiu ir masteliu. Nors „Java“ yra pagrindinė „MLlib“ darbo kalba, „Python“ vartotojai gali prijungti „MLlib“ su „NumPy“ biblioteka, „Scala“ vartotojai gali rašyti kodą prieš „MLlib“, o „R“ vartotojai gali prisijungti prie „Spark“ nuo 1.5 versijos. „MLlib“ 3 versijoje pagrindinis dėmesys skiriamas „Spark“ „DataFrame“ API naudojimui (priešingai nei senesnei „RDD API“) ir suteikiama daug naujų klasifikavimo ir vertinimo funkcijų.

Kitas projektas „MLbase“ remiasi „MLlib“, kad būtų lengviau gauti rezultatus. Užuot rašę kodą, vartotojai teikia užklausas deklaracine kalba iš SQL.

Weka

Weka, kurią sukūrė Waikato universiteto Mašinų mokymosi grupė, yra apmokestinama kaip „mašininis mokymasis be programavimo“. Tai GUI darbastalis, suteikiantis duomenų apgaulininkams galimybę surinkti mašininio mokymosi vamzdynus, traukinių modelius ir vykdyti prognozes nereikalaujant rašyti kodo. „Weka“ dirba tiesiogiai su „R“, „Apache Spark“ ir „Python“, pastaruosius naudodama tiesioginį paketą arba naudodama sąsajas įprastoms skaitinėms bibliotekoms, tokioms kaip „NumPy“, „Pandas“, „SciPy“ ir „Scikit-learn“. Didelis „Weka“ privalumas yra tas, kad jis suteikia naršomas, draugiškas sąsajas kiekvienam jūsų darbo aspektui, įskaitant paketų valdymą, išankstinį apdorojimą, klasifikavimą ir vizualizavimą.