Programovanie

14 nástrojov s otvoreným zdrojovým kódom na maximálne využitie strojového učenia

Filtrovanie spamu, rozpoznávanie tváre, nástroje odporúčaní - ak máte veľkú množinu údajov, v ktorých by ste chceli vykonávať prediktívnu analýzu alebo rozpoznávanie vzorov, cestou je strojové učenie. Rozšírenie bezplatného softvéru s otvoreným zdrojovým kódom uľahčilo implementáciu strojového učenia na samostatných strojoch aj v mierke a v najpopulárnejších programovacích jazykoch. Medzi tieto nástroje s otvoreným zdrojom patria knižnice ako Python, R, C ++, Java, Scala, Clojure, JavaScript a Go.

Apache Mahout

Apache Mahout poskytuje spôsob, ako vybudovať prostredie pre hosťovanie aplikácií strojového učenia, ktoré je možné rýchlo a efektívne škálovať tak, aby vyhovovalo dopytu. Mahout pracuje hlavne s ďalším známym projektom Apache, Spark, a bol pôvodne navrhnutý pre spoluprácu s Hadoop kvôli spusteniu distribuovaných aplikácií, bol však rozšírený o prácu s ďalšími distribuovanými koncovými bodmi ako Flink a H2O.

Mahout používa v jazyku Scala jazyk špecifický pre doménu. Verzia 0.14 je hlavným interným refaktorom projektu, ktorý je štandardne založený na Apache Spark 2.4.3.

Zostaviť

Compose, od Innovation Labs, sa zameriava na spoločný problém s modelmi strojového učenia: označovanie nespracovaných údajov, čo môže byť pomalý a zdĺhavý proces, bez ktorého však model strojového učenia nemôže priniesť užitočné výsledky. Funkcia Compose vám umožňuje napísať v Pythone množinu funkcií označovania vašich údajov, takže označovanie je možné vykonať čo najviac programovo. Na uľahčenie procesu označovania je možné pre vaše údaje nastaviť rôzne transformácie a prahové hodnoty, napríklad umiestnenie údajov do košov na základe diskrétnych hodnôt alebo kvantilov.

Základné nástroje ML

Rámec Core ML spoločnosti Apple vám umožňuje integrovať modely strojového učenia do aplikácií, ale používa vlastný odlišný formát modelu učenia. Dobrou správou je, že na ich použitie nemusíte vopred pripravovať modely vo formáte Core ML; pomocou nástroja Core ML Tools môžete prevádzať modely takmer z každého bežne používaného rámca strojového učenia na Core ML.

Core ML Tools beží ako balík Python, takže sa integruje s bohatstvom knižníc a nástrojov strojového učenia Pythonu. Všetky modely z TensorFlow, PyTorch, Keras, Caffe, ONNX, Scikit-learn, LibSVM a XGBoost je možné prevádzať všetky. Modely neurónových sietí možno tiež optimalizovať na veľkosť pomocou kvantizácie po tréningu (napr. Do stále malej presnosti s malou bitovou hĺbkou).

Cortex

Cortex poskytuje pohodlný spôsob poskytovania predpovedí z modelov strojového učenia pomocou modelov Python a TensorFlow, PyTorch, Scikit-learn a ďalších. Väčšina balíkov Cortex pozostáva iba z niekoľkých súborov - vaša základná logika Pythonu, súbor cortex.yaml, ktorý popisuje, ktoré modely sa majú použiť a aké druhy výpočtových prostriedkov je potrebné prideliť, a súbor requirements.txt na inštaláciu potrebných požiadaviek Pythonu. Celý balík je nasadený ako kontajner Docker do AWS alebo do iného hostiteľského systému kompatibilného s Docker. Výpočtové prostriedky sú pridelené takým spôsobom, ktorý odráža definície použité v Kubernetes, a na urýchlenie poskytovania služieb môžete použiť GPU alebo Amazon Inferentia ASIC.

Hlavné nástroje

Inžinierstvo funkcií alebo vytváranie funkcií zahŕňa získavanie údajov použitých na trénovanie modelu strojového učenia a produkciu, zvyčajne ručne, transformovanej a agregovanej verzie údajov, ktorá je užitočnejšia na zaškolenie modelu. Featuretools vám poskytuje funkcie, ako to dosiahnuť pomocou vysokoúrovňových objektov Pythonu vytvorených syntetizáciou údajov v údajových rámcoch, a môže to urobiť pre údaje extrahované z jedného alebo viacerých údajových rámcov. Featuretools tiež poskytuje bežné primitívne látky pre operácie syntézy (napr. time_since_previous, aby ste poskytli čas uplynulý medzi inštanciami časovo označených údajov), takže ich nemusíte rolovať sami.

GoLearn

GoLearn, knižnica strojového učenia pre jazyk Google’s Go, bola podľa vývojára Stephena Whitwortha vytvorená s dvojitým cieľom jednoduchosti a prispôsobiteľnosti. Jednoduchosť spočíva v spôsobe načítania a spracovania údajov v knižnici, ktorá je vzorovaná podľa SciPy a R. Prispôsobiteľnosť spočíva v tom, ako je možné niektoré dátové štruktúry v aplikácii ľahko rozšíriť. Whitworth tiež vytvoril obal Go pre knižnicu Vowpal Wabbit, jednu z knižníc nájdených v súbore nástrojov Shogun.

Gradio

Jednou z bežných výziev pri vytváraní aplikácií strojového učenia je budovanie robustného a ľahko prispôsobiteľného používateľského rozhrania pre mechanizmy školenia a predikcie slúžiace na predpovedanie modelov. Gradio poskytuje nástroje na vytváranie webových používateľských rozhraní, ktoré vám umožňujú komunikovať s vašimi modelmi v reálnom čase. Niekoľko zahrnutých vzorových projektov, ako sú vstupné rozhrania do klasifikátora obrázkov Inception V3 alebo model rozpoznávania rukopisu MNIST, vám poskytne predstavu o tom, ako môžete Gradio používať so svojimi vlastnými projektmi.

H2O

H2O, teraz vo svojej tretej hlavnej revízii, poskytuje celú platformu pre strojové učenie v pamäti, od tréningu až po predpovede obsluhy. Algoritmy H2O sú zamerané skôr na obchodné procesy - napríklad na podvody alebo predpovede trendov - a nie na obrazovú analýzu. H2O môže interagovať samostatným spôsobom s obchodmi HDFS, na vrchole YARN, v MapReduce alebo priamo v inštancii Amazon EC2.

Hadoop mavens môžu používať Javu na interakciu s H2O, ale rámec poskytuje väzby aj pre Python, R a Scala, čo vám umožňuje komunikovať aj so všetkými knižnicami dostupnými na týchto platformách. Môžete sa tiež vrátiť k hovorom REST ako spôsobu integrácie H2O do väčšiny potrubí.

Oryx

Oryx, s láskavým dovolením tvorcov distribúcie Cloudera Hadoop, používa na spustenie modelov strojového učenia na dátach v reálnom čase Apache Spark a Apache Kafka. Oryx poskytuje spôsob, ako budovať projekty, ktoré si vyžadujú okamžité rozhodnutia, ako sú napríklad motory odporúčaní alebo detekcia živých anomálií, ktoré sú informované o nových aj historických údajoch. Verzia 2.0 je takmer úplným prepracovaním projektu a jeho komponenty sú voľne spojené v architektúre lambda. Nové algoritmy a nové abstrakcie pre tieto algoritmy (napr. Výber hyperparametrov) je možné pridať kedykoľvek.

Blesk PyTorch

Keď sa silný projekt stane populárnym, často ho doplnia projekty tretích strán, ktoré uľahčujú jeho používanie. PyTorch Lightning poskytuje organizačný obal pre PyTorch, takže sa namiesto písania štandardného kódu pre každý projekt môžete sústrediť na dôležitý kód.

Bleskové projekty používajú štruktúru založenú na triedach, takže každý spoločný krok pre projekt PyTorch je zapuzdrený v triednej metóde. Výcvikové a overovacie slučky sú poloautomatické, takže pre každý krok musíte poskytnúť iba svoju logiku. Je tiež jednoduchšie nastaviť tréningové výsledky do viacerých GPU alebo rôznych hardvérových mixov, pretože pokyny a odkazy na objekty sú centralizované.

Scikit-uč sa

Python sa stal programovacím jazykom pre matematiku, vedu a štatistiku vďaka svojej ľahkej adopcii a rozsiahlosti knižníc dostupných pre takmer všetky aplikácie. Scikit-learn využíva túto šírku tým, že stavia na vrchole niekoľkých existujúcich balíkov Pythonu - NumPy, SciPy a Matplotlib - pre matematické a prírodovedné práce. Výsledné knižnice je možné použiť pre interaktívne aplikácie „workbench“ alebo vložiť do iného softvéru a znova ich použiť. Súprava je k dispozícii na základe licencie BSD, takže je úplne otvorená a opakovane použiteľná.

Shogun

Shogun je jedným z najdlhšie trvajúcich projektov v tejto zbierke. Bola vytvorená v roku 1999 a napísaná v jazyku C ++, ale dá sa použiť v prostredí Java, Python, C #, Ruby, R, Lua, Octave a Matlab. Posledná hlavná verzia 6.0.0 pridáva natívnu podporu pre Microsoft Windows a jazyk Scala.

Aj keď je Shogun populárny a rozsiahly, má konkurenciu. Ďalšia knižnica strojového učenia založená na C ++, Mlpack, existuje iba od roku 2011, ale tvrdí, že je rýchlejšia a ľahšia s ňou práca (prostredníctvom integrovanejšej sady API) ako v konkurenčných knižniciach.

Spark MLlib

Knižnica strojového učenia pre Apache Spark a Apache Hadoop, MLlib sa môže pochváliť mnohými bežnými algoritmami a užitočnými dátovými typmi, ktoré sú navrhnuté tak, aby bežali rýchlosťou a mierkou. Aj keď je Java primárnym jazykom pre prácu v MLlib, používatelia Pythonu sa môžu pripojiť k MLlib s knižnicou NumPy, používatelia Scaly môžu písať kód proti MLlib a používatelia jazyka R sa môžu od verzie 1.5 zapojiť do programu Spark. Verzia 3 MLlib sa zameriava na používanie rozhrania Spark DataFrame API (na rozdiel od staršieho rozhrania RDD API) a poskytuje mnoho nových klasifikačných a hodnotiacich funkcií.

Ďalší projekt, MLbase, stavia nad MLlib, aby uľahčoval odvodzovanie výsledkov. Namiesto písania kódu používajú používatelia dotazy prostredníctvom deklaratívneho jazyka à la SQL.

Weka

Weka, ktorú vytvorila skupina strojového učenia na univerzite vo Waikato, sa označuje ako „strojové učenie bez programovania“. Je to pracovná plocha grafického používateľského rozhrania, ktorá umožňuje dátovým wranglerom zhromažďovať kanály strojového učenia, trénovať modely a spúšťať predpovede bez nutnosti písania kódu. Weka spolupracuje priamo s programami R, Apache Spark a Python, ktoré sú poskytované priamym obalom alebo prostredníctvom rozhraní pre bežné numerické knižnice ako NumPy, Pandas, SciPy a Scikit-learn. Veľkou výhodou Weky je, že poskytuje prehľadné a priateľské rozhrania pre všetky aspekty vašej práce vrátane správy balíkov, predspracovania, klasifikácie a vizualizácie.

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