ABONAMENTE VIDEO REDACȚIA
RO
EN
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 88
Abonament PDF

Scurtă incursiune în Machine Learning

Victoria Citriga
Data Scientist @Accenture Industrial Software Solutions



Cosmin Oltean
Data & Machine Learning SME @Accenture Industrial Software Solutions



PROGRAMARE


Inteligența artificială, machine learning, deep learning sunt în ultima perioadă termeni omniprezenți în mediul IT, la conferințe sau întâlniri tehnice. Fiecare proiect pare să aibă în zilele noastre o componentă legată de AI, de la simplele aplicații mobile până la sistemele complexe din mediul economic.

Manifestându-se pregnant în ultimii 4-5 ani, preocuparea pentru predicții în dezvoltarea de aplicații are în spate un istoric al ei. Microsoft ne oferea sub SQL Server Anlysis Services 2000, acum aproape douăzeci de ani, o serie de nouă algoritmi predictivi, care puteau fi folosiți în Data Mining, termenul folosit atunci pentru aplicațiile predictive. Regăseam acolo algoritmii de regresie, decision tree, time series și chiar și mult mai pretențioasele rețele neuronale. Însă preocuparea pentru acest domeniu era extrem de redusă comparativ cu ceea ce se întâmplă azi.

Ce s-a schimbat în ultimii douăzeci de ani?

Schimbarea s-a manifestat la nivelul a doi factori majori:

Primul se referă la creșterea exponențială a puterii de calcul. Problema minării de date de acum 10-20 de ani era că rularea algoritmilor predictivi pe cantități de date mari necesita timpi extrem de mari pentru a scoate rezultate decente. Această stare de fapt se datora în primul rând vitezelor reduse ale hard-diskurilor și a cantității insuficiente de memorie. Astăzi, suntem aproape tentați să ignorăm aceste limitări. Cu noile cluster-computing frameworks, procesarea datelor se face la viteze de memorie, generând o preocupare mai degrabă pentru costuri decât pentru capacitățile tehnice ale sistemelor de calcul.

Al doilea factor este fără doar și poate explozia IoT. Boomul aplicațiilor bazate pe senzori în aproape toate domeniile vieții a făcut posibilă monitorizarea a milioane de asseturi în toate domeniile economice. De aici, generarea unor cantități imense de date. Brusc, aplicabilitatea algoritmilor predictivi a înregistrat și ea o creștere foarte mare datorită faptului că, prin folosirea senzorilor, mentenanța predictivă sau detecția anomaliilor a căpătat o altă dimensiune.

Din păcate, dezvoltarea de aplicații de tip Machine Learning nu este o întreprindere la îndemâna oricui, deoarece e nevoie de specialiști în domenii destul de diferite. În primul rând, e vorba de data scientist, expertul în statistică, probabilități și modele matematice. Apoi e nevoie de cunoștințe serioase în domeniul bazelor de date sau al sistemelor de tip big data pentru a explora eficient datele. Nu în ultimul rând, este vorba de cunoștințele de programare pentru a scrie pipeline-rile de Machine Learning. Cazurile când un specialist reunește toate aceste cunoștințe la un nivel înalt sunt destul de rare.

Pentru exemplificare vom parcurge pașii dezvoltării unui modul de Machine Learning pentru mentenanță predictivă.

Primul care intra în scenă este rolul de data scientist. Acest rol este, probabil, și cel mai important, deoarece presupune o serie de pași care vor defini funcționarea modelului:

Pentru a fi cât mai eficace, recomandăm folosirea unui tool cu facilități vizuale, cum ar fi Azure Machine Learning Studio sau JupyterLab, unde se poate lucra foarte ușor pe bază de drag-and-drop și minime ingerințe de cod. Având în vedere că librăriile pentru Machine Learning oferă o gamă destul de bogată de versiuni de algoritmi, e de presupus că ultimii trei pași vor fi parcurși de mai multe ori, iar în funcție de rezultatele evaluărilor, se va alege algoritmul optim.

Odată ce această etapă se termină, își intră în rol expertul în baze de date. La acest nivel este nevoie de o implementare riguroasă a mecanismelor de ETL (Extract Transform Load) deoarece este, practic, nodul cel mai sensibil al aplicației. Datele trebuie extrase din sursă, aplicate toate transformările descrise de către data scientist în primii doi pași și încărcate în tabelele care vor fi surse de date pentru antrenare/predicție. Având în vedere că modulul de ETL va lucra cu cantități foarte mari de date, arhitectura, va trebui ca designul și implementarea să fie orientate spre performanța încărcării de date și minimizarea degradării performanței în timp. Planul de execuție pentru o cerere de date (fie el pe baze de date tradiționale sau dintr-un sistem Big Data) are o importanță covârșitoare și poate determina ca timpul să fie de câteva secunde sau de câteva ore.

În ultima fază, vom scrie codul pentru implementarea modelului, iar acest lucru deschide o dezbatere destul de complicată. Cum anume alegem modalitatea de dezvoltare? Prin alegerea librăriei ML se va determina limbajul de programare în care se va dezvolta modulul sau, viceversa, alegem limbajul de programare și acest lucru va determina lista din care se va alege librăria ML. Cele mai populare limbaje de programare printre specialiștii in Machine Learning sunt Python, Scala și Java. Dintre librăriile cele mai folosite sunt:

Trebuie să observăm că din acest peisaj lipsește unul dintre cele mai populare limbaje de programare, C#. Microsoft pare că a luat startul mai târziu în această zonă prin lansarea în luna mai a acestui an a pachetului ML.NET. Ajuns în acest moment la versiunea 1.3 și cu o versiune beta a unui Model Builder capabil să genereze codul C# al pipeline-urilor, ML.NET poate însă să recupereze terenul pierdut până acum.

Dezvoltarea codului va urma îndeaproape definirea modelului făcută la primul pas de către data scientist, rezultatul putând fi integrat cu orice aplicație sau sistem, fie prin API calls, fie prin integrare directă ca librărie.

Cu toate că cei trei sunt prezentați într-o ordine succesivă și distinctă, ei fac parte integrantă a aceluiași flow de dezvoltare, în care toți cei implicați sunt interconectați într-o singură echipă. Acest lucru este o provocare în plus, date fiind diversitatea specializărilor și gradul ridicat de calificare al specialiștilor.

În rândurile de mai sus am atins doar puțin posibilitățile și capacitățile de dezvoltare în domeniul Machine Learning. În funcție de natura predicției sau de domeniul în care se dorește a se aplica, complexitatea modelelor și modul de implementare poate crește semnificativ. Analiza se poate extinde spre Deep Learning și modelele de rețele neuronale, pătrunzând cu adevărat în zona de inteligență artificială, cu aplicabilitate în computer vision, speech recognition sau robotică.

LANSAREA NUMĂRULUI 149

Marți, 26 Octombrie, ora 18:00

sediul Cognizant

Facebook Meetup StreamEvent YouTube

NUMĂRUL 147 - Automotive

Sponsori

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