Top 10 cadre de învățare automată

Publicat: 2017-03-11
Cuprins arată
1. Tensorflow
2. Cafea
3. Învățare automată Amazon
4. Apache Singa
5. Microsoft CNTK
6. Torță
7. Accord.NET
8. Apache Mahout
9. Theano
10. Brainstorming

Când vă aprofundați în lumea învățării automate (ML), alegerea unui cadru dintre multe alternative poate fi o sarcină intimidantă. S-ar putea să fiți deja familiarizați cu numele, dar este util să evaluați opțiunile în timpul procesului de luare a deciziilor. Există diferite cadre, biblioteci, aplicații, seturi de instrumente și seturi de date în lumea învățării automate care pot fi foarte confuze, mai ales dacă ești începător. Este necesar să fii obișnuit cu cadrele ML populare atunci când vine vorba de a alege unul pentru a-ți construi aplicația. Acesta este motivul pentru care am compilat o listă cu primele 10 cadre de învățare automată.

1. Tensorflow

Tensorflow a fost dezvoltat de echipa Google Brain pentru diferite sarcini de înțelegere și percepție a limbajului. Acest cadru open source este folosit pentru cercetări extinse privind rețelele neuronale profunde și învățarea automată. Fiind al doilea cadru de învățare automată de la Google Brain, este compatibil cu majoritatea procesoarelor și GPU-urilor noi. Multe dintre serviciile populare Google pe care le folosim zilnic, cum ar fi Gmail, Recunoașterea vorbirii, Google Photos și chiar Google Search sunt echipate cu Tensorflow.

Tensorflow utilizează grafice de flux de date pentru a efectua sarcini numerice complicate. Calculele matematice sunt elaborate folosind un grafic dirijat care conține muchii și noduri. Aceste noduri sunt folosite pentru implementarea operațiunilor și pot acționa, de asemenea, ca puncte finale în care sunt alimentate datele. Muchiile reprezintă, de asemenea, asocierile de intrare/ieșire dintre diferite noduri.

2. Cafea

Caffe este un cadru de învățare automată care a fost conceput cu o expresie, viteză și modularitate mai bune ca puncte de focalizare. A fost dezvoltat pentru clasificarea imaginilor/viziunii computerizate prin utilizarea rețelelor neuronale convoluționale (CNN). Caffe este popular pentru Model Zoo, care este un set de modele pre-antrenate care nu necesită nicio codificare pentru implementare.

Este mai potrivit pentru construirea de aplicații, spre deosebire de Tensorflow, care se descurcă mai bine la cercetare și dezvoltare. Dacă aveți de-a face cu aplicații cu date de text, sunet sau serii de timp, rețineți că Caffe nu este destinat pentru nimic altceva decât viziunea computerizată. Cu toate acestea, poate rula dinamic pe o serie de hardware și face o treabă bună la comutarea între CPU și GPU folosind doar un singur semnal.

3. Învățare automată Amazon

Amazon și-a dezvoltat propriul serviciu de învățare automată pentru dezvoltatori, numit AML. Este o colecție de instrumente și vrăjitori care pot fi utilizate pentru dezvoltarea unor modele de învățare sofisticate, de ultimă generație și inteligente, fără a modifica codul. Folosind AML, predicțiile necesare pentru aplicațiile dvs. pot fi derivate prin intermediul API-urilor care sunt mai ușor de utilizat. Tehnologia din spatele AML este utilizată de oamenii de știință de date interni ai Amazon pentru a-și alimenta serviciile Amazon Cloud și este extrem de scalabilă, dinamică și flexibilă. AML se poate conecta la datele stocate în Amazon S3, RDS sau Redshift și poate efectua operațiuni precum clasificarea binară, regresia sau categorizarea cu mai multe clase pentru a crea modele noi.

4. Apache Singa

Apache Singa se concentrează în primul rând pe învățarea profundă distribuită folosind partiționarea modelului și paralelizarea procesului de instruire. Oferă un model de programare simplu și robust care poate funcționa într-un cluster de noduri. Principalele aplicații sunt în recunoașterea imaginilor și procesarea limbajului natural (NLP).

Singa a fost dezvoltat cu un model de programare intuitiv bazat pe abstracția stratului și acceptă o serie de modele de învățare profundă. Deoarece se bazează pe o arhitectură foarte flexibilă, poate rula atât metode de antrenament sincrone, cât și asincrone și chiar hibride. Stack-ul de tehnologie a Singa cuprinde trei componente importante: IO, Model și Core. Componenta IO conține clase utilizate pentru citirea/scrierea datelor în rețea și disc. Componenta de bază se ocupă de operațiile tensorului și funcțiile de gestionare a memoriei. Modelul găzduiește algoritmi și structuri de date utilizate pentru modelele de învățare automată.

5. Microsoft CNTK

CNTK (Cognitive Toolkit) este cadrul Microsoft open-source de învățare automată. Deși este mai popular în arena recunoașterii vorbirii, CNTK poate fi folosit și pentru antrenamentul de text și imagini. Având suport pentru o mare varietate de algoritmi de învățare automată, cum ar fi CNN, LSTM, RNN, Sequence-to-Sequence și Feed Forward, este unul dintre cele mai dinamice cadre de învățare automată existente. CNTK acceptă mai multe tipuri de hardware, inclusiv diferite procesoare și GPU-uri.

Compatibilitatea este unul dintre punctele importante ale CNTK. Este, de asemenea, lăudată ca fiind cea mai expresivă și mai ușor de utilizat arhitectură de învățare automată de acolo. Pe CNTK, puteți lucra cu limbaje precum C++ și python și fie să utilizați modelele de antrenament încorporate, fie să creați propriile dvs.

6. Torță

Torch ar putea fi cel mai simplu cadru de învățare automată de configurat și de pornit rapid și ușor, mai ales dacă utilizați Ubuntu. Dezvoltat în 2002 la NYU, Torch este utilizat pe scară largă în marile companii de tehnologie precum Twitter și Facebook. Torch este codificat într-un limbaj numit Lua, care este neobișnuit, dar ușor de citit și de înțeles. Unele dintre avantajele Torch pot fi atribuite acestui limbaj de programare prietenos, cu mesaje de eroare utile, un depozit imens de exemplu de cod, ghiduri și o comunitate utilă.

7. Acco rd.NET

Accord.NET este un cadru open source de învățare automată bazat pe .NET și este ideal pentru calculul științific. Constă din biblioteci diferite care pot fi utilizate pentru aplicații precum recunoașterea modelelor, rețelele neuronale artificiale, procesarea datelor statistice, algebra liniară, procesarea imaginilor etc. Cadrul cuprinde biblioteci care sunt disponibile ca programe de instalare, pachete NuGet și cod sursă. Accord.NET are o bibliotecă matrice care facilitează reutilizarea codului și modificări algoritmice graduale.

8. Apache Mahout

Fiind un proiect gratuit și open source al Apache Software Foundation, Apache Mahout a fost construit cu scopul de a dezvolta cadre ML gratuite distribuite sau scalabile pentru aplicații precum clustering, clasificare și filtrare colaborativă. Colecțiile Java pentru diferite operații de calcul și bibliotecile Java sunt, de asemenea, disponibile în Mahout.

Apache Mahout este implementat pe Hadoop folosind paradigma MapReduce. O aplicație excelentă este transformarea instantanee a datelor în informații. Odată ce datele mari stocate pe Hadoop sunt conectate, Mahout poate ajuta instrumentele de știință a datelor să găsească modele semnificative din seturile de date.

9. Theano

Theano a fost dezvoltat în 2007 la Universitatea din Montreal, care este renumită mondial pentru algoritmii de învățare automată. Deși este considerat un cadru de învățare automată low-end, este flexibil și fulgerător de rapid. Mesajele de eroare trimise de cadru sunt infame pentru că sunt inutile și criptice. Lăsând acestea deoparte, Theano este o platformă mai potrivită pentru sarcini de cercetare și poate fi extrem de utilă în acest sens.

Este folosit în mare parte ca platformă de bază pentru sistemele de abstractizare de ultimă generație care ar trimite pachete API către Theano. Exemple de biblioteci populare sunt Lasagne, Blocks și Keras. Un dezavantaj al utilizării Theano este că va trebui să găsești o soluție pentru a avea suport pentru mai multe GPU.

10. Brainstorming

Brainstorm este unul dintre cele mai simple cadre de învățare automată de stăpânit, având în vedere simplitatea și flexibilitatea acestuia. Face munca cu rețelele neuronale mai rapidă și distractivă în același timp. Fiind scris în întregime în Python, Brainstorm a fost creat pentru a rula fără probleme pe mai multe sisteme backend.

Brainstorm oferă două „handers” sau API-uri de date folosind Python - unul pentru procesoare prin biblioteca Numpy și celălalt pentru a folosi GPU-uri folosind CUDA. Cea mai mare parte a sarcinilor grele este realizată de scripting Python, ceea ce înseamnă că o interfață de utilizare frontală bogată este aproape absentă.