ABONAMENTE VIDEO REDACȚIA
RO
EN
NOU
Numărul 150
Numărul 149 Numărul 148 Numărul 147 Numărul 146 Numărul 145 Numărul 144 Numărul 143 Numărul 142 Numărul 141 Numărul 140 Numărul 139 Numărul 138 Numărul 137 Numărul 136 Numărul 135 Numărul 134 Numărul 133 Numărul 132 Numărul 131 Numărul 130 Numărul 129 Numărul 128 Numărul 127 Numărul 126 Numărul 125 Numărul 124 Numărul 123 Numărul 122 Numărul 121 Numărul 120 Numărul 119 Numărul 118 Numărul 117 Numărul 116 Numărul 115 Numărul 114 Numărul 113 Numărul 112 Numărul 111 Numărul 110 Numărul 109 Numărul 108 Numărul 107 Numărul 106 Numărul 105 Numărul 104 Numărul 103 Numărul 102 Numărul 101 Numărul 100 Numărul 99 Numărul 98 Numărul 97 Numărul 96 Numărul 95 Numărul 94 Numărul 93 Numărul 92 Numărul 91 Numărul 90 Numărul 89 Numărul 88 Numărul 87 Numărul 86 Numărul 85 Numărul 84 Numărul 83 Numărul 82 Numărul 81 Numărul 80 Numărul 79 Numărul 78 Numărul 77 Numărul 76 Numărul 75 Numărul 74 Numărul 73 Numărul 72 Numărul 71 Numărul 70 Numărul 69 Numărul 68 Numărul 67 Numărul 66 Numărul 65 Numărul 64 Numărul 63 Numărul 62 Numărul 61 Numărul 60 Numărul 59 Numărul 58 Numărul 57 Numărul 56 Numărul 55 Numărul 54 Numărul 53 Numărul 52 Numărul 51 Numărul 50 Numărul 49 Numărul 48 Numărul 47 Numărul 46 Numărul 45 Numărul 44 Numărul 43 Numărul 42 Numărul 41 Numărul 40 Numărul 39 Numărul 38 Numărul 37 Numărul 36 Numărul 35 Numărul 34 Numărul 33 Numărul 32 Numărul 31 Numărul 30 Numărul 29 Numărul 28 Numărul 27 Numărul 26 Numărul 25 Numărul 24 Numărul 23 Numărul 22 Numărul 21 Numărul 20 Numărul 19 Numărul 18 Numărul 17 Numărul 16 Numărul 15 Numărul 14 Numărul 13 Numărul 12 Numărul 11 Numărul 10 Numărul 9 Numărul 8 Numărul 7 Numărul 6 Numărul 5 Numărul 4 Numărul 3 Numărul 2 Numărul 1
×
▼ LISTĂ EDIȚII ▼
Numărul 22
Abonament PDF

Machine learning in the cloud

Roland Szabo
Junior Python Developer
@3Pillar Global



PROGRAMARE

Unul dintre factorii cei mai importanți în explozia învățării automate în ultimii zece ani a fost puterea crescută de calcul. În 2010, Dan Cireșan et al. au doborât recordul de recunoaștere de cifre scrise de mână, folosind un algoritm inventat prin anii 1980 și augmentând setul de date printr-un procedeu descris în 1990. Singura diferență a fost puterea de calcul: folosind o placă grafică modernă, ei au terminat antrenarea algoritmului într-o zi, pe când pe un CPU ar fi durat mai mult de 50 de zile.

Dar odată cu creșterea puterii de calcul a procesoarelor, cantitatea de informație disponibilă a crescut și ea, chiar mai repede decât frecvența CPU-urilor. Pentru a face față situației, au apărut tot felul de soluții cloud, majoritatea oferite de startup-uri, care se specializează pe diferite nișe de învățare automată.

Printre primii care au oferit servicii de învățare automată în cloud au fost cei de la BigML, care sunt pe piață de aproape doi ani. Ei au început cu arbori de decizie și apoi au dezvoltat acest produs, oferind diferite îmbunătățiri, cum ar fi diverse strategii de fasonare și opțiunea de agregare a mai multor modele.

Odată ce am antrenat un model, putem să îl vizualizăm prin două tipuri de diagrame, care ne ajută să vedem cum influențează fiecare trăsătură rezultatul dorit. Una din vizualizări este un arbore interactiv pe care putem să urmăm decizia luată la fiecare nivel, iar cealaltă vizualizare este numită "Sunburst diagram", care prezintă numărul de instanțe din datele de antrenare pe care este bazată fiecare decizie în parte, precum și intervalul de eroare pe care îl va avea rezultatul obținut mergând pe acea cale.

Vizualizarea arborelui de decizie pentru un model al notelor obținute de un student

Serviciul poate fi folosit în două moduri: dintr-o interfață web și dintr-un API HTTP.

Sunburst diagram pentru același model

Cei de la Ersatz labs sunt mai noi. Fiind în private beta deocamdată, ei plănuiesc să se deschidă publicului prin aprilie-mai.

Grafice pentru acuratețea și valoarea funcție de cost

Ei se specializează pe deep learning. Oferă diferite modele de rețele neuronale, se setează hiperparametrii lor și apoi se pornește antrenarea, pe care ei o efectuează pe GPU pentru a obține viteză mai mare. Ei analizează datele pe care le încărcăm la ei și oferă o analiză euristică prin care sugerează ce valori ale hiperparametrilor se potrivesc cel mai bine datelor noastre. Cu câteva ajustări, am reușit să obțin în cinci minute un model care îmi recunoștea litere și cifre de pe bonuri cu o precizie de 80%.

După ce se efectuează antrenarea, putem vedea statistici legate de modul în care a evoluat acuratețea, valoarea funcției de cost și valorile maxime ale ponderilor rețelei neuronale de-a lungul iterațiilor. Apoi, bazându-ne pe acestea, putem să decidem cum să continuăm, în ce direcții să mai ajustăm hiperparametrii.

Deși invite-urile pentru beta se primesc de obicei în aceeași zi, trebuie ținut cont de faptul că încă este în beta. Când am testat servicul, pe primul set de date pe care l-am încercat am întâmpinat o eroare misterioasă, "Training failed". Apoi persoana de la suport tehnic a inforrmat că a fost descoperit un bug în Pylearn2, librărie pe care o folosesc ei în spate pentru definirea modelelor de rețele neuronale. Au fost destul de prompți în rezolvarea acelui bug, dar tot am mai întâlnit chestii care nu prea aveau sens.

Modelele pe care le oferă deocamdată sunt autoencoder-e pentru date sub formă de imagini, rețele recurente pentru date temporale, rețele neuronale cu straturi sigmoide sau ReLU și rețele neuronale convoluționale cu sau fără maxout.

PredictionIO este un pic diferit față de celelalte produse din această listă. Deși este dezvoltat de o firmă, TappingStone, care oferă suport comercial pentru el, produsul în sine este distribuit în mod liber, fiind pus pe GitHub cu o licență open-source.

PredictionIO este un engine de recomandare, construit pe tehnologii scalabile, cum ar fi MongoDB și Hadoop. Acesta permite ca, având un istoric al acțiunilor efectuate de un utilizator (vizionarea, cumpărarea sau acordarea unei note unui produs), să îi sugerăm alte produse care l-ar interesa.

Engine-ul are două componente. Prima este o interfață web de management al algoritmilor pe care îi folosim. De aici putem selecta ce algoritmi vrem să folosim, care sunt parametrii acestora și putem să rulăm evaluări simulate. Cealaltă parte este un API HTTP (cu SDK-uri pentru diferite limbaje) prin care putem să adăugăm user-i, produse, acțiuni și apoi să obținem recomandări.

Faptul că este bazat pe MongoDB și pe Hadoop oferă o putere destul de mare la PredictionIO, dar în același timp face ca să fie și mai complicat. În momentul în care vrei să schimbi setup-ul de Hadoop cu care vine în mod normal, care rulează pe o singură mașină totul și să îl faci să ruleze pe un cluster, deja trebuie să te descurci cu Hadoop, pe când la celelalte servicii menționate, când ai nevoie de mai multă putere de procesare, doar faci un click în browser (și plătești mai mult).

AlchemyAPI oferă și ei servicii de deep learning, dar la un nivel mult mai înalt decât cei de la Ersatz. În loc de a-ți oferi posibilitatea de a antrena rețele neuronale pe orice fel de date dorești, ei s-au specializat pe procesarea de limbaj natural și oferă doar un API prin care se pot extrage entitățile menționate în text, cuvintele cheie, sentimentele exprimate despre diferite lucruri, autori, limba și alte atribute ale textului.

Ei nu oferă prea multe la nivel de customizare, mare parte din serviciu fiind gata făcut deja. Atâta timp cât ne limităm la limbile pentru care au suport, nu vom avea probleme, problemele de extragere de entități, cuvinte cheie, autor sau sentimente fiind suficient de generale ca să funcționeze în orice domeniu. Problema apare când vrem să folosim o limbă care nu este bine integrată, ca de exemplu româna, la care deocamdată serviciul pur și simplu nu știe ce să răspundă.

AlchemyAPI poate fi folosit prin intermediul unor SDK-uri oferite de ei pentru diferite limbaje, cum ar fi Python, PHP, Node.js, C++, Java, C#, care apoi pot fi integrate în aplicațiile noastre.

Entități găsite de AlchemyAPI într-un post despre noul limbaj al lui Stephen Wolfram

Acestea sunt doar câteva din serviciile de învățare automată în cloud. Mai sunt altele, cum ar fi Google Prediction API (care este complet închis și nu se știe exact ce algoritmi folosesc pentru predicții), sau ŷhat, care este la latura complet opusă, oferind un framework în care noi trebuie să integrăm ce algoritm de învățare automată dorim.

NUMĂRUL 149 - Development with AI

Sponsori

  • Accenture
  • BT Code Crafters
  • Accesa
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • P3 group
  • Ing Hubs
  • Cognizant Softvision
  • Colors in projects