Termenul de “machine learning” este atat de des folosit in prezent incat apare tot mai des in informatiile extrase de pe toate canalele media. Intr-adevar, in plina era digitala, un astfel de concept nici nu putea sa fie trecut cu vederea deoarece, practic, oamenii sunt deja inconjurati de tehnologii bazate pe acesta directie a IT-ului modern. 

Motoarele de cautare invata tot mai mult si mai bine sa-ti aduca pe ecran sau chiar audio si video rezultatele cele mai bune, conform unui istoric al preferintelor tale (asigurand si unor companii spatiul de afisaj al reclamelor – celebrele si uneori enervantele Ads – care sunt tot mai aproape de preferintele tale). Softurile anti-spam sunt tot mai bune la filtrarea mesageriei tale electronice, chiar daca uneori pot fi prea stricte si inca mai trebuie sa-ti cauti unele mailuri primite in folderul spam. 

Camerele digitale de pe telefoanele inteligente, care au detronat cu brio o intreaga categorie din domeniul foto – cel al compactelor – invata sa detecteze chipurile in modurile portret pentru a aplica cele mai bune setari pentru selfie-ul perfect. 

Tot in domeniul smartphone-urilor, aceste device-uri invata sa-ti recunoasca vocea si sa se activeze doar la comanda proprietarului. Autovehiculele sunt deja prevazute chiar din fabricatia de serie cu sisteme de prevenire a potentialelor accidente care folosesc, la baza, algoritmi de tip machine learning.

Nu in ultimul rand, conceptul este omniprezent in domeniul aplicatiilor stiintifice ale bioinformaticii, medicinei, si astronomiei.Se pot folosi pentru cercetari complexe in elaborarea unor vaccinuri sau medicamente noi si obtinerea de predictii cat mai corecte despre eficacitatea acestora in combaterea si prevenirea unor boli.

Mai mult, pot fi utilizate pentru calcule complexe care pot estima cu acuratete existenta unor planete si a compozitiei acestora in sisteme solare la care nici nu ne putem gandi, deocamdata, ca vom ajunge fizic.

Toate aceste domenii enumerate mai sus au un lucru in comun. Chiar daca toate se folosesc de computere, totusi, din cauza complexitatii deosebite a modelelor ce trebuie detectate pentru a estima un rezultat plauzibil, programatorii nu pot elabora instructiuni specifice atat de detaliate asupra modului in care aceste sarcini sa poata fi executate de puterea de calcul a ordinatoarelor. 

Ca exemplu din viata fiintelor biologice, majoritatea abilitatilor acestora sunt dobandite prin invatare din experienta (intr-un cuantum covarsitor mai mare decat prin urmarea unui set de instructiuni sau reguli). In mod similar, asa cum vei afla si din acest articol, in randurile ce urmeaza, “machine learning”, sau, mai bine spus, uneltele acestui domeniu au drept scop abilitarea programelor cu puterea de a invata si a se adapta.

Cuprins

1. Machine learning – ce inseamna, la ce se foloseste si relatia ML cu AI sau inteligenta artificiala

2. Machine learning in Python, in Java, C++ si tipurile de ML uzuale 

3. Exemple de machine learning si aplicatii ale acsetui concept in lumea reala

1. Machine learning – ce inseamna, la ce se foloseste si relatia ML cu AI sau inteligenta artificiala

Machine Learning (ML) este, de fapt, folosirea inteligentei artificiale intr-un mod in care se ofera sistemelor abilitatea de a invata singure in mod automatizat, dar si oportunitatea de a deveni mai bune pe parcursul acestei experiente fara a fi asistate de programatori umani. Altfel spus, ML se concentreaza pe dezvoltarea de programe computerizate care pot accesa singure date si le si pot folosi pentru propriile nevoi de invatare.  

Dar, exact ca si in cazul fiintelor biologice, procesele de invatare ale sistemelor cibernetice incep cu etapa de observare, care, in acest ultim caz, se poate traduce in acumularea de date. Ulterior, experientele directe din lumea biologica pot fi transpuse in seturi de instructiuni pe care masinile cibernetice le inteleg cu scopul de a cauta modele in seturile de date puse la dispozitie si de a lua decizii autonome pe baza acestora. Tinta finala este de a permite computerelor sa poata invata singure, in mod automat, fara asistarea sau interventia umana. Mai mult, ele vor trebui sa-si si ajusteze modurile de actiune viitoare in mod corespunzator. 

Machine learning este, de fapt, o directie de actiune pentru crearea inteligentei artificiale (AI) care, in schimb, este una din principalele ingrediente ale folosirii ML in scopuri lucrative. Relatia intre ML si AI nu este inca una definita si acceptata unitar de catre toti specialistii in domeniu. Acest lucru se intampla deoarece unii vad ML doar ca o parte subordonata AI pe cand altii vad aceasta relatie exact invers. 

In general, inteligenta artificiala are drept rol imitarea si replicarea unor aspecte ale perceptiei si ale modului de luare a deciziilor specifice oamenilor. Pe de alta parte, machine learning poate fi folosita la imbunatatirea sau automatizarea oricarei sarcini, nu doar a celor specifice proceselor cognitive umane. In orice caz, din orice parte le-ai privi, cele doua concepte, ML si AI, sunt strans legate si nu pot exista independent. 

Se pune intrebarea, legitima de altfel, de ce trebuie sa se recurga la machine learning in loc sa se programeze computerele sa execute sarcinile dorite? Raspunsul se afla in doua aspecte esentiale ce pot aparea la rezolvarea unor probleme ce solicita folosirea unor programe care invata si se dezvolta pe baza “experientei” acumulate: complexitatea si nevoia de adaptare. 

Iata care sunt acele probleme care pot fi mult prea dificil si ineficient de programat de catre oameni si pentru rezolvarea carora se apeleaza la ML:

  • Sarcini de rutina care sunt de regula indeplinite de oameni sau alte fiinte biologice

Este vorba de acele actiuni pe care oamenii le indeplinesc in mod curent, dar aflarea si intelegera algoritmilor pe baza carora ele sunt declansate si executate nu este suficienta pentru crearea unor programe bine definite care sa le imite perfect. Ca exemple, se pot enumera actiuni ca: recunoasterea vorbirii, conducerea autovehiculelor, intelegerea imaginilor, etc. 

In toate aceste cazuri, programele avansate de tip machine learning pot “invata din experienta” si pot obtine rezultate satisfacatoare odata ce sunt expuse la suficient de multe “antrenamente”. 

  • Sarcini care nu pot fi efectuate de oameni

Acestea sunt activitati care privesc, de exemplu, analiza unor vaste cantitati de informatii complexe cum ar fi: date din domeniul astronomiei, arhive si inregistrari medicale ce trebuie corelate si exploatate pentru extragerea unor concluzii, probabilitatile si predictiile meteorologice pe termen lung, analiza datelor din genetica, motoarele de cautare online, date din comertul electronic stocate pe servere de gazduire web din lumea intreaga, etc. 

Aceste exemple de machine learning privesc exploatarea unor veritabile comori de informatii sub noianul de date tot mai mult disponibile pe masura ce era digitala se instaleaza in tot mai multe domenii. 

  • Adaptabilitatea 

Una din limitarile evidente ale uneltelor programate de catre om este rigiditatea acestora. Odata programul creat si instalat, acesta va ramane neschimbat. Totusi, o mare parte din sarcinile de indeplinit se pot modifica in timp sau de la un utilizator la altul. Din nou, ML ofera o solutie la aceste scenarii, deoarece programele de acest fel sunt adaptabile la mediul cu care interactioneaza. 

Dintre aplicatiile care care s-au dovedit a fi de un real succes in domeniul machine learning pot fi enumerate: programe care decodeaza textul scris de mana, la care softul se poate adapta la variatiile intre modul de scriere al diferitelor persoane, dar si programe de detectare a spam-ului. Cele din urma sunt utile mai ales in domeniul serverelor dedicate sau in alte tipuri de gazduire, unde softul corespunzator se poate adapta la natura e-mailurilor nesolicitate.

2. Machine learning in Python, in Java, C++ si tipurile de ML uzuale

Ca orice soft, crearea algoritmilor de tip machine learning poate fi efectuata in programe precum Python sau Java, ori chiar C++. Acesti algoritmi ML pot fi impartiti in doua mari categorii: supervizati si nesupervizati. 

  • Algoritmi Machine Learning supervizati

Acest tip de algoritmi ML au capacitatea de a aplica ceea ce a fost invatat in trecut la noi seturi de date prin folosirea unor exemple categorisite deja pentru a prezice evenimente viitoare. Pornind de la la analiza unui set de date de tip “antrenament” pe care i le ofera programatorul, algoritmul de invatare poate incepe sa faca o estimare asupra valorilor rezultatului final. 

Sistemul este capabil sa ofere tinte noi pentru noile date introduse dupa ce a fost “antrenat” suficient. De asemenea, poate compara rezultatele sale cu cele corecte si poate gasi erorile pentru a-si modifica propriul model in consecinta. 

  • Algoritmi ML nesupervizati

Spre deosebire de prima categorie, algoritmii machine learning nesupervizati sunt folositi atunci cand datele folosite pentru “antrenament” nu sunt clasificate si nici catalogate. Programul studiaza cum ar putea dezvolta o functie pentru a descrie o structura obtinuta din date necatalogate. Desigur, nu va reusi sa ofere rezultatul corect, dar va explora volumul de date si va desena interferentele dintre seturi incercand sa descopere tiparele ascunse.

  • Algoritmi ML semi-supervizati

Acest tip de machine learning se afla undeva la mijlocul distantei intre primele doua categorii enumerate deoarece foloseste atat date catalogate, cat si necatalogate pentru a se “antrena”. In mod tipic, sunt folosite mici cantitati de date etichetate si mari cantitati din cealalta categorie. Tocmai prin acest sistem, algoritmul reuseste sa-si imbunatateasca in mod considerabil acuratetea. 

De regula, acest tip de ML este folosit in situatia in care datele catalogate accesate solicita si alte tipuri de resurse relevante pentru a se antrena sau a invata din ele. 

  •  Algoritmi ML de intarire

Ca metoda de invatare ML, aceste tipuri de algoritmi interactioneaza cu mediul inconjurator efectuand actiuni si descoperind erori sau recompense. Cautarile prin incercari repetate si recompensele sunt cele mai predominante caracteristici ale acestei metode. Ea permite sistemelor cibernetice si softurilor sa determine in mod automat comportamentul ideal intr-un anumit context cu rezultatul urmarit de a-si maximiza performanta. 

Sistemul de recompensa este necesar pentru ca algoritmul sa invete care actiune este cea mai buna si mai este cunoscut si ca semnal de intarire. Acest algoritm ML a stat la baza softului AlphaGo dezvoltat de Google care a reusit sa invinga competitorii umani in jocul complex de Go.

3.  Exemple de machine learning si aplicatii ale acsetui concept in lumea reala

Desigur, se pune si problema modului in care machine learning poate fi folosit in lumea reala si ce beneficii poate aduce, concret. De la bun inceput, merita precizat ca orice afacere sau activitate care fie produce, fie foloseste cantitati mari de date, in special din categoria celor structurate si catalogate, este o posibila tinta unde automatizarea ML poate fi folosita cu succes.

Deja companii din aproape toate zonele si toate industriile au aflat despre avantajele oferite de acest concept si se afla pe drumul implementarii metodelor ML in procesele lor interne. Avantaje precum cresterea productivitatii, scaderea costurilor cu forta de munca, previziuni financiare mai exacte, intelegerea mai buna a comportamentului clientilor si reducerea muncii repetitive, nu mai pot fi ignorate azi de nici o intreprindere care vrea sa supravietuiasca si sa-si mareasca cota de piata.

Iata doar cateva exemple concrete de aplicare a ML in diverse domenii de interes in viata reala:

  • Algoritmi de recomandare

Este imposibil sa nu fi observat deja modul in care fie ca te afli pe un browser, navigand pe internet, fie intr-o aplicatie de social media, cum iti apar reclame la produse si servicii pe care este foarte probabil sa le fi cautat sau sa le fi vizualizat in trecut. Aparitia acestora exact la momentul potrivit si catre destinatarul cu cea mai mare probabilitate de a le achizitiona este motorizata de un algoritm de tip ML, care a devenit standard pentru marile magazine online. 

Importanta gazduirii online profesioniste nu poate fi tagaduita, insa la fel de important pentru succesul unei afaceri online de retail este si folosirea uneltelor care pot analiza istoricul de navigare al clientilor in timp si care pot face analogii intre datele astfel obtinute si preferintele pe care acestia le-ar putea avea. Astfel, ofera tocmai acele produse cautate sau chiar unele noi, complementare, despre care consumatorul nici nu stia. 

  • Masinile fara sofer

Ceva ce alta data parea de domeniul SF-ului, azi, cu ajutorul algoritmilor machine learning si cu inteligenta artificiala, poate fi deja vazut pe strazi. Autovehiculele autonome folosesc retele neuronale pentru a invata si interpreta obiectele detectate de camerele video si de alti senzori montati in locuri strategice. Apoi, ele determina actiunile pe care le pot lua pentru a face ca vehiculele sa se miste dintr-un punct in altul, cu respectarea tuturor regulilor de circulatie si chiar cu evitarea potentialelor accidente ce ar putea sa se intample prin interventia unor factori aleatori.

Este, poate, algoritmul ML care imita cel mai bine perceptia si metodele de luare a deciziilor specific umane.

  • Programe de tipul asistentilor virtuali sau a botilor de chat

Cu siguranta deja ai luat contact cu asistentii virtuali dezvoltati de Apple, Google sau Amazon, pentru a numi cativa dintre cei mai proemineti. Ceea ce ar mai trebui sa stii este ca toate aceste programe cu care poti purta chiar si o conversatie (desigur, inca la un nivel destul de primar si incomplet) sunt bazate pe puterea machine learning. Cu ajutorul invatarii, aceste programe pot dezvolta singure recunoasterea si procesarea limbajului, reusind asfel sa creeze interactiuni cu utilizatorii si, mai mult, sa le invete preferintele si comenzile vocale. 

Asadar, machine learning este tehnologia care ne poate propulsa cu cea mai mare viteza catre viitor si este doar o chestiune de timp pana cand vom vedea cuceriri tot mai importante ale acestui concept in domenii din ce in ce mai diverse.