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 121
Abonament PDF

Experts Panel – Machine Learning

Ovidiu Mățan
Fondator @ Today Software Magazine



PROGRAMARE

Evenimentul de lansare a ediției din luna iunie a revistei a avut loc în cetatea Oradea și a fost găzduit de Accesa. Ne-am simțit foarte bine și promitem să revenim. Au fost alături de noi la panel:

Alexandru Pârvu: Am lucrat în zona de produse de tip income prediction pentru restaurante, cu scopul de a optimiza materiile prime. De asemenea, am avut și proiecte de tip overbooking, reservation cancellation, consumption prediction (consum - ofertare - negociere). Acestea sunt doar câteva.

Adrian Militaru: Momentan, lucrez la acumularea unui set cât mai mare de date, urmând să antrenăm cât mai mulți algoritmi pentru a putea folosi aceste date în realizarea de predicții. În ceea ce privește proiectele personale, am încercat ca în ultimii trei ani să îmi aduc contribuția în domeniul medical.

Roland Szabó: Fiind consultant, am o varietate de clienți. Cu unii lucrez mai aplicat (hands-on), cu alții doar la nivel de consultanță. Lucrez la un proiect de tip recrutare unde mi se cere să extrag informațiile din job postings și din CV-uri, și , ulterior, să las algoritmul să identifice candidații cei mai potriviți. Am lucrat și în proiecte de detecție de fraudă (de utilizare de carduri furate, de trimitere de mesaje spam), de forecasting (cum va evolua numărul de utilizatori).

Cât de mult se aseamănă și cât de mult se exclud disciplinele Machine Learning și Data Science?

Roland Szabó: Mulți dintre cei care se îndreaptă spre aceste domenii ignoră partea de Software Engineering. De multe ori, codul scris de un Machine Learning specialist sau un Data Science specialist este groaznic. Cum ajungem să facem deploy la tot mai multe lucruri în producție cu Machine Learning, este o nevoie reală să se adopte niște best practices din Software Engineering, din DevOps ca să putem înțelege când și de ce crapă un model.

Adrian Militaru: Sunt două domenii conexe. Aș spune că nu e nevoie de mult Software Engineering în Machine Learning, ci mai degrabă în procesarea datelor. În procesul efectiv de antrenare a modelelor este nevoie de matematică și de înțelegerea problemei. Nu poți alege anumite trăsături înainte de a antrena modelele. Trebuie să antrenezi setul de date pentru un anumit model. Abia după ce ai înțeles de ce ai obținut rezultate care nu se ridică la nivelul așteptărilor, în partea ulterioară de procesare ar fi nevoie de programare.

Putem rezolva o problemă utilizând Machine Learning sau utilizând algoritmii clasici. Care sunt limitările, avantajele și dezavantajele?

Alexandru Pârvu: Să luăm niște exemple precum conducerea autonomă. Conducerea autonomă cu programare clasică este imposibilă. Cantitatea de variabile este pur și simplu mult peste capacitatea unui om sau a unei echipe care să țină evidența. Machine Learning nu este un înlocuitor pentru programare. În esență, un Data Scientist bun va fi și un bun programator, pentru a avea cod aplicabil. Machine Learning este aplicat în acele situații în care efortul este prea mare sau codul este imposibil de scris.

Sunt cazuri când algoritmica clasică funcționează mai bine?

Alexandru Pârvu: Da, pentru lucrurile repetitive sau predictibile. De exemplu, vrem ca în fiecare zi la ora 10 să se aprindă niște lumini, iar seara la 12 să se stingă.

Cum vedeți partea de testare a corectitudinii datelor?

Alexandru Pârvu: În mod ironic, slăbiciunea în Machine Learning sunt tot oamenii. Datele nu sunt colectate automat. Mai mult, diagnosticul pe care noi ne bazăm este dat de o persoană. Dacă persoana s-a înșelat, modelul este incorect.

Adrian Militaru: Aș dori să completez ceva la prima întrebare. Nu cred că este corect să vorbim de Machine Learning versus programare tradițională, deoarece ideea de versus implică o competiție. Cele două nu ar trebui comparate, astfel încât să determinăm care este mai bună. Trebuie doar să identificăm contextele în care fiecare este mai bună. Legat de întrebarea despre corectitudinea datelor, Machine Learning ne ajută. Tot folosind Machine Learning putem găsi în cadrul unui data set niște valori care nu corespund celorlalte valori, acest lucru putând fi extrapolat la diverse coloane ale unui tabel, de exemplu.

În Machine Learning, putem antrena niște date pentru Europa. Totul merge perfect, pentru ca apoi să mergi în Asia, unde modelul nu se poate aplica, deoarece anumiti parametri ce trebuie detectați (ce țin de culori de exemplu) sunt diferiți. Trebuie să definim foarte bine cui i se adresează soluția la care lucrezi.

Adrian Militaru: Da, orice generalizare fără o înțelegere profundă a modelului poate face modelul irelevant.

Roland Szabó: Problema generalizării este destul de mare. Era un exemplu cu cei de la Google care au realizat un model pentru prezicerea sau detectarea unei boli oculare. Totul funcționa bine, iar cei de la Google au spus că vor ca modelul să poată ajuta populația din Africa unde nu sunt foarte mulți specialiști. S-a dovedit că, din cauza faptului că în Africa se folosește un echipament diferit, că sunt condiții diferite de umiditate și căldură, imaginile erau altfel luate, iar modelul a funcționat catastrofal, neputând fi folosit de nimeni. Ne confruntăm cu probleme de algoritm, de bias și nu numai.

Există o limită unde ar trebui să ne oprim cu Machine Learning când vine vorba de etică?

Roland Szabó: De multe ori, Machine Learning se folosește pentru laundering, ca să facem să pară curată treaba. Recent, în Olanda, s-a dovedit că unul din algoritmii folosiți de Fiscul lor care decidea cine trebuie investigat pentru evaziune fiscală avea un bias destul de mare către persoane cu nume africane și alte probleme similare. S-a spus că algoritmul este de vină, dar s-a investigat și s-a dovedit că și înainte de a avea acel algoritm, deciziile erau luate la fel de oameni. Algoritmul învățase de la oameni.

Am o întrebare de la ascultătorii online. Cătălin Golban întreabă dacă există un plugin, un Copilot care să simplifice codul prea complicat. Această întrebare vine în contextul prezentării tale.

Roland Szabó: Copilot nu face asta din câte știu, dar este un domeniu de cercetare. Cei de la Amazon au lansat ceva similar numit PullRequest Assistant. Trimiți un PullRequest pentru review, iar un AI îți analizează codul precum un Linter mai avansat.

Revenim la întrebarea legată de etică.

Adrian Militaru: Poate va părea mai radical ce voi spune. Așa cum algoritmul nostru era legat de detecția bolilor cardiovasculare, iar alte afecțiuni nu sunt deranjate că noi ne-am axat pe acest data set, la fel nici persoanele cu nume africane nu ar trebui să fie deranjate că un algoritm funcționează așa. Am impresia că se exagerează puțin cu corectitudinea politică.

În măsura în care se poate, este normal și bine să fii corect.

Alexandru Pârvu: Nu pot adăuga decât că, dacă datele sunt biased, iar acest bias ne scapă, evident și modelul va avea probleme. Întrebarea este dacă acest modul ce conține bias provoacă o pagubă sau nu.

(Întrebare din sală) Aș dori să aduc o completare. Vorbesc ca medic. Este foarte important să înțelegem distincția dintre predicție și explicație. Miza Machine Learning în biologie este să ne ajute să prezicem lucruri pe care nu le putem încă explica, dar în cazul bolilor cardio-vasculare, baza de date pe care stă toată cunoașterea medicală este axată pe niște studii care sunt efectuate pe milioane de pacienți. Meta-analiza studiilor mari duce la milioane de pacienți, convergența statistică fiind foarte mare. Studiile mari spun că fumatul este unul dintre cei mai importanți factori de risc. Alți factori sunt consumul de alcool, genul masculin etc. Modelele folosite în studiile respective sunt în general modele de regresie logică. Fiind un model mult mai transparent, ne-a fost mai ușor să coroborăm ce am găsit acolo cu biologia și să ne explicăm de ce anumite variabile sunt mai importante decât altele. Trebuie să fim prudenți când interpretăm biologia dintr-un model dacă noi am gândit modelul cu scop de predicție. Nu doresc să plece nimeni de aici cu ideea că fumatul sau alcoolul nu sunt factori de risc.

Alexandru Pârvu: Completez și eu. În primul rând, modelul de predicție trage niște concluzii pe baza datelor valabile. Dacă datele nu reflectă acest lucru, nu putem adăuga date decât dacă nu suntem convinși. În al doilea rând, am o observație legată de aceste studii medicale. Am cunoscuți care sunt bio-statisticieni și cred că veți fi de acord cu mine că există probleme în reproductibilitatea studiilor medicale, deoarece datele nu se fac niciodată publice. Eu, ca om ce lucrează cu Machine Learning, devin foarte suspicios dacă nu văd datele.

Cum va evolua Machine Learning peste 5-10 ani și ce probleme se vor rezolva?

Alexandru Pârvu: Mi-aș dori o dezvoltare mai mare în robotică. Activitățile roboților de la Boston Dynamics sunt impresionante, dar aș face pariu că mulți dintre voi nu ați văzut toate dublele de filmare, acele mișcări impresionante reprezentând 10% din totalul dublelor. Restul sunt eșecuri similare cu cele de la Camera Ascunsă.

Adrian Militaru: Dacă am ști ce domenii ar evolua, ne-am axa pe acele domenii. În liceu, am avut de ales între zona tehnică și medicină. Am ales zona tehnică, dar mi-aș dori ca lucrurile să se dezvolte cât mai mult în medicină, fie că e vorba de aparatură, preziceri, farmaco-vigilență. Tehnologia ne poate ușura viața, dar medicina ne-o poate salva.

Roland Szabó: Machine Learning va deveni tot mai ușor de folosit. Așa cum, acum 10 ani, pentru a putea face un site trebuia să știi CSS, HTML, JavaScript, PHP, deployment, azi poți să faci deployment cu WordPress și să ai un site care arată foarte bine. Nu trebuie să scrii deloc cod, iar cu Netlify poți să ajungi la orice utilizator de pe orice continent. Acum 10 ani când am început cu Machine Learning, a trebuit să scriu fișiere YAML ca să antrenez o rețea neuronală. Era foarte greu de făcut debug. Astăzi, e simplu să faci debug. Peste 10 ani, vom avea platforme unde vom încărca datele și, în funcție de complexitatea lor, vom reveni peste câteva ore și vom avea modelul antrenat.

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