Învățare automată
| Tonul acestui articol sau al acestei secțiuni este nepotrivit pentru o enciclopedie. Puteți contribui la îmbunătățirea lui sau sugera modificările necesare în pagina de discuție. |
| Parte dintr-o serie despre |
| Inteligență artificială |
|---|
| Deși acest articol conține o listă de referințe bibliografice, sursele sale rămân neclare deoarece îi lipsesc notele de subsol. Puteți ajuta introducând citări mai precise ale surselor. |
Învățare automată (engleză machine learning) este un subdomeniu al informaticii și o ramură a inteligenței artificiale, al cărui obiectiv este de a dezvolta tehnici care dau calculatoarelor posibilitatea de a învăța. Mai precis, se urmărește să se creeze programe capabile de generalizare pe baza unor exemple.
Este, prin urmare, un proces inductiv. În multe cazuri, domeniul învățării automate se suprapune cu cel al statisticii computaționale, deoarece cele două discipline se bazează pe analiza datelor. Cu toate acestea, învățarea automată se concentrează și pe complexitatea computațională al problemelor. Multe probleme sunt în clasa NP-hard, așa că o mare parte din cercetările efectuate asupra procesului de învățare automată sunt axate pe proiectarea de soluții viabile la aceste probleme. Învățare automată poate fi văzut ca o încercare de a automatiza unele părți din metoda științifică, folosind metode matematice.
Învățarea automată are o gamă largă de aplicații, inclusiv motoarele de căutare, diagnostice medicale, detectare de fraudă în utilizarea cardului de credit, analiză a pieței de valori, clasificarea secvențelor de ADN, recunoașterea vorbirii și limbajului scris, jocuri și robotică.

Rezumat
[modificare | modificare sursă]Unele sisteme de învățare automată încearcă să elimine toată nevoia de intuiție sau cunoștințe de specialitate din procesele de analiză a datelor, în timp ce alții încearcă să stabilească un cadru de colaborare între expert și computer. Cu toate acestea, intuiția umană nu poate fi înlocuită în totalitate, deoarece proiectantul sistemului trebuie să precizeze forma de reprezentare a datelor și metodele de manipulare și caracterizare a acelora. Cu toate acestea, calculatoarele sunt utilizate în întreaga lume în scopuri tehnologice foarte bune.
Modele
[modificare | modificare sursă]Învățarea automată are ca rezultat un model pentru a rezolva o anumită sarcină. Printre modele se disting:[1]
- Modele geometrice construite în spațiul de instanțe și care pot avea unul, două sau mai multe dimensiuni. Dacă există o margine de decizie liniară între clase, se spune că datele sunt liniar separabile. O limită de decizie liniară este definită ca w * x = t, unde w este un vector perpendicular pe limita de decizie, x este un punct arbitrar de pe granița de decizie, iar t este pragul de decizie.
- Modele probabilistice, care încearcă să determine distribuția între probabilitățile de descripție pentru funcția care leagă valorile de caracteristici cu valorile determinate. Unul dintre conceptele cheie pentru a dezvolta modele probabilistice este statistica bayesiană.
- Modele logice, care transformă și exprimă probabilitațile în normele organizate sub formă de arbori de decizie.
Modelele pot fi, de asemenea, clasificate ca modele de grupare și modele de gradient. Primele încearcă să împartă spațiul de cazuri în grupuri. Ultimele, cum numele lor indică, reprezintă un gradient în care se poate diferenția între fiecare instanță. Clasificatoarele geometrice, cum ar fi mașinile vectoriale de suport, sunt modele de gradient.
Tipuri de algoritmi
[modificare | modificare sursă]
Diferiți algoritmi de învățare automată sunt grupați într-o taxonomie în funcție de producția acestora. Unele tipuri de algoritmi sunt:
Învățarea supervizată total
[modificare | modificare sursă]Algoritmul produce o funcție care stabilește o corespondență între intrările și rezultatele dorite de la sistem. Un exemplu de acest tip de algoritm este o problemă de clasificare, în cazul în care sistemul de învățare este de a eticheta (clasifica) o serie de vectori folosind oricare din mai multe categorii (clase). Baza de cunoștințe a sistemului este formată prin exemple de etichetat. Acest tip de învățare se poate dovedi a fi foarte utilă în domenii precum cercetările biologice, biologie computațională sau bioinformatică.
Învățarea fără supervizare
[modificare | modificare sursă]Tot procesul de modelare se realizează pe un set de exemple format numai de intrări în sistem. Nu există informații despre categoriile acestor exemple. Prin urmare, în acest caz, sistemul trebuie să fie capabil să recunoască modele, pentru a fi capabil de a eticheta noi intrări.
Învățarea supervizată parțial
[modificare | modificare sursă]Acest tip de algoritmi combină cei doi tipi de algoritmi de mai sus cu scopul de a clasifica în mod corespunzător. Acesta ia în considerare date etichetate și neetichetate.
Învățarea prin armare
[modificare | modificare sursă]Algoritmul învață prin observarea lumii din jurul său. Informațiile de intrare sunt reacția evaluativă primită de la lumea exterioară ca un răspuns la acțiunile lor. Prin urmare, sistemul învață prin încercare și eroare.
Învățarea prin armare este cea mai generală dintre cele trei categorii. În loc de a avea un instructor care indică agentului ce să facă, agentul inteligent va trebui să învețe cum se comportă mediul înconjurător prin utilizarea unor recompense (întăriri) sau pedepse, care derivă din succesul sau eșecul respectiv. Obiectivul principal este de a învăța funcția de valoare care va ajuta agentul inteligent să maximizeze semnalul de recompensă și astfel să poată optimiza politicile lor în așa fel încât să altereze comportamentul mediului astfel încât să își îndeplinească obiectivele sale.
Principalii algoritmi de învățare prin armare sunt dezvoltați în cadrul metodelor de rezolvare pentru probleme de decizii finite Markoviene, care încorporează ecuațiile Bellman și funcțiile de valoare. Cele trei metode principale sunt: Programare Dinamică, Monte Carlo și metodele de învățare din Diferențele Temporare.[2]
Printre implementări se află și AlphaGo, un program dezvoltat de Google DeepMind pentru a juca jocul de masă Go. În luna martie a anului 2016 AlphaGo a câștigat un meci cu jucătorul profesionist Lee Se-Dol la categoria a IX-dan, și 18 titluri mondiale. Printre algoritmi care utilizează un arbore de căutare Monte-Carlo, care utilizează de asemenea învățarea profundă cu rețele neuronale. Puteți vedea ce s-a întâmplat în documentarul din Netflix "AlphaGo".
Transducție
[modificare | modificare sursă]Această metodă este similară cu învățarea supervizată, dar nu construie în mod explicit o funcție. Încearcă să prezică categoriile de viitor ale exemplelor, bazându-se pe exemplele de intrare, respectivele categorii și exemplele noi al sistemului.
De învățare multi-task
[modificare | modificare sursă]Aceasta este o metodă de învățare care utilizează cunoștințe anterior învățate de către sistemul de față-în-față cu probleme similare cu cele deja văzute.
Analiza computațională și de performanță a algoritmilor de învățare automată este o ramură a statisticii cunoscută sub numele "teoria computațională a învățării".
Oamenii efectuează învățarea automată în mod automat, deoarece este un proces atât de simplu pentru noi încât nu ne dăm seama cum se face și tot ce implică. De la naștere până la moarte, noi oamenii realizăm diferite procese, printre care găsim procesul de învățare prin care dobândim cunoștințe, dezvoltăm abilități de analiză și evaluare prin metode și tehnici, precum și prin propria noastră experiență. Cu toate acestea, mașinile trebuie să fie învățate cum să învețe, pentru că dacă o mașină nu este capabilă să-și dezvolte abilitățile, procesul de învățare nu va fi realizat, ci va fi doar o succesiune repetitivă. De asemenea, trebuie să avem în vedere faptul că cunoașterea sau buna funcționare a procesului de învățare automată nu înseamnă că știi cum să o folosești, trebuie să știi cum să o aplici în activitățile de zi cu zi și că învățarea bună înseamnă și să știi cum și când să folosim cunoștințele noastre.
Pentru a efectua o bună învățare este necesar să se ia în considerare toți factorii care te înconjoară, precum societatea, economia, orașul, atmosfera, locul, etc. Prin urmare, este necesar să se înceapă luarea unor măsuri diferite pentru a se realiza o învățare adecvată și pentru a se obține o automatizare adecvată a învățării. Deci, primul lucru care trebuie să fie luat în considerare este conceptul de cunoaștere, care este înțelegerea unui anumit subiect în care vă puteți exprima opinia sau punctul de vedere, precum și răspunsul la anumite întrebări care ar putea apărea la subiectul său.
Tehnici de clasificare
[modificare | modificare sursă]Arbori de decizie
[modificare | modificare sursă]Acest tip de învățare folosește un arbore de decizie ca model predictiv. Sunt cartografiate observațiile unui obiect cu concluzii despre valoarea finală a obiectului menționat.
Arborii sunt structuri de bază în informatică. Arborii de atribuție sunt la baza deciziilor. Una dintre cele două forme majore de arbori de decizie elaborat de Quinlan pentru a măsura impuritatea de entropie în fiecare ramură, ceva care a dezvoltat pentru prima dată în algoritmul ID3, și apoi C4.5. O altă strategie este bazat pe indicele GINI și a fost dezvoltat de Breiman, Friedman, et alia. Algoritmul CART este o punere în aplicare a acestei strategii.[3]
Reguli de asociere
[modificare | modificare sursă]Algoritmii regulilor de asociere încearcă să descopere relații interesante între variabile. Printre cele mai cunoscute metode se numără algoritmul a priori, algoritmul Eclat și algoritmul Frequent Pattern.
Algoritmi genetici
[modificare | modificare sursă]Algoritmii genetici sunt procese euristice de căutare care simulează selecția naturală. Ei folosesc metode precum mutația și trecerea pentru a genera noi clase care pot oferi o soluție bună unei probleme date.
Rețelele neuronale artificiale
[modificare | modificare sursă]Rețelele de neuroni artificiali (ARN) reprezintă o paradigmă a învățării automate, inspirată de neuronii sistemelor nervoase ale animalelor. Este un sistem de legături de neuroni care colaborează între ele pentru a produce un stimul de ieșire. Conexiunile au greutăți numerice care se adaptează în funcție de experiență. În acest fel, rețelele neuronale se adaptează la un impuls și sunt capabile să învețe. Importanța rețelelor neuronale a căzut o dată cu dezvoltarea vectorilor de sprijin și a clasificatorilor liniare, însă a reapărut la sfârșitul anilor 2000, odată cu apariția învățării profunde.
Mașini cu vectori de suport
[modificare | modificare sursă]MVS sunt o serie de metode de învățare supravegheată folosit atât pentru clasificare și regresie. Algoritmii de MVS folosesc un set de exemple de instruire clasificate în două categorii pentru a construi un model care prezice dacă un nou exemplu care aparține uneia sau alteia din aceste categorii.
Algoritmi de agrupare
[modificare | modificare sursă]Analiza de agrupare (clustering în engleză) este clasificarea de observații în sub-grupuri - clusters - astfel încât observațiile în fiecare grup sunt similare între ele în funcție de anumite criterii.
Tehnicile de tip clustering fac diferite inferențe cu privire la structura datelor; acestea sunt de obicei ghidate de o măsură de asemănare specifică și de un nivel de compactare internă (similaritatea dintre membrii unui grup) și de separarea dintre diferitele grupuri.
Clustering-ul este o metodă de învățare nu este supravegheată și este o tehnica foarte popular de analiză a datelor statistice.
Rețele bayesiene
[modificare | modificare sursă]Un bayesian network, o rețea de credință sau model regizat aciclic este un model probabilistic, care reprezintă un set de variabile de noroc și independența condiționată printr-un graf direcționat aciclic. O rețea bayesiană poate reprezenta, de exemplu, probabilistic relații între boli și simptome. Date anumite simptome, rețeaua poate fi folosit pentru a calcula probabilitatea ca anumite boli sa fie prezente într-un organism. Există algoritmi eficienți care să deducem și să învețe folosind acest tip de reprezentare.
Antrenarea și evaluarea modelelor
[modificare | modificare sursă]Separarea datelor
[modificare | modificare sursă]În învățarea supervizată, evaluarea unui model urmărește capacitatea acestuia de a produce predicții pentru exemple care nu au fost folosite la antrenare. Datele disponibile pot fi împărțite în trei subseturi: setul de antrenare, utilizat pentru estimarea parametrilor modelului; setul de validare, folosit pentru alegerea configurației și compararea modelelor; și setul de testare, rezervat evaluării finale. Utilizarea repetată a rezultatelor de testare pentru modificarea modelului compromite independența acestei evaluări.[4]
Selecția unui model poate produce, la rândul ei, o adaptare excesivă la datele utilizate pentru evaluarea configurațiilor candidate. Gavin Cawley și Nicola Talbot au arătat că optimizarea unui criteriu de selecție estimat pe un eșantion finit poate conduce la rezultate prea optimiste. Prin urmare, evaluarea trebuie să țină cont atât de algoritmul de învățare, cât și de procedura prin care sunt selectate configurația și modelul final.[5]
Generalizarea și supraînvățarea
[modificare | modificare sursă]Generalizarea reprezintă capacitatea modelului de a funcționa pe date noi. Supraînvățarea, denumită în engleză overfitting, apare atunci când modelul se adaptează excesiv particularităților datelor de antrenare, fără să descrie suficient de bine relațiile relevante pentru alte exemple. Un rezultat foarte bun la antrenare, însoțit de rezultate considerabil mai slabe la validare, poate indica această problemă. Situația opusă, numită underfitting, apare când modelul nu surprinde suficient structura datelor și obține rezultate slabe inclusiv pe exemplele de antrenare.[6]
Curbele de învățare compară performanța la antrenare și la validare pentru diferite dimensiuni ale setului de antrenare. Acestea pot ajuta la identificarea situațiilor în care adăugarea unor exemple ar putea îmbunătăți generalizarea. Curbele de validare urmăresc, în schimb, modificarea performanței în funcție de un hiperparametru, precum un parametru care controlează complexitatea modelului. Ele permit examinarea relației dintre configurația aleasă și diferența dintre rezultatele de antrenare și cele de validare.[6]
Validarea încrucișată
[modificare | modificare sursă]Validarea încrucișată estimează performanța prin antrenarea și evaluarea repetată pe subseturi diferite. În varianta cu k partiții, datele de dezvoltare sunt împărțite în k grupuri. Modelul este antrenat pe k−1 grupuri și evaluat pe grupul rămas, procedura fiind repetată astfel încât fiecare grup să fie folosit pentru validare. Rezultatele pot fi sintetizate prin media scorurilor obținute. Un set de testare separat poate fi păstrat pentru evaluarea finală.[4]
Pentru date organizate în serii temporale, evaluarea trebuie să respecte ordinea temporală. Atunci când observațiile provin din aceiași subiecți sau din aceleași grupuri, împărțirea trebuie să țină cont de această dependență.[4]
În validarea încrucișată imbricată, selecția modelului este efectuată într-o procedură interioară, iar evaluarea într-o procedură exterioară, pe date care nu au participat la selecție. Această separare permite evaluarea întregului proces de construire a modelului și reduce riscul unor estimări prea optimiste rezultate din alegerea configurației pe aceleași date folosite pentru măsurarea performanței.[5]
Indicatori de performanță
[modificare | modificare sursă]Indicatorii de evaluare depind de sarcina urmărită. Pentru clasificare, acuratețea exprimă proporția predicțiilor corecte. În clasificarea binară, precizia reprezintă proporția exemplelor cu adevărat pozitive dintre cele prezise ca pozitive, iar sensibilitatea, numită și recall, reprezintă proporția exemplelor pozitive identificate corect. Scorul F1 este media armonică a preciziei și sensibilității. Pentru regresie, indicatorii utilizați includ eroarea absolută medie și eroarea pătratică medie, care măsoară diferențele dintre valorile prezise și cele observate.[7]
Distribuția claselor influențează interpretarea rezultatelor. Când una dintre clase este mult mai frecventă decât cealaltă, acuratețea singură poate ascunde performanța slabă pentru clasa mai rară. Saito și Rehmsmeier au arătat că, pentru clasificatori binari evaluați pe date dezechilibrate, curbele precizie–sensibilitate pot evidenția aspecte ale performanței care sunt mai greu de interpretat din curbele ROC. Precizia indică în mod direct proporția predicțiilor pozitive care sunt corecte.[8]
Scurgerea informațiilor și reproductibilitatea
[modificare | modificare sursă]Scurgerea informațiilor, denumită în engleză data leakage, apare când construirea modelului utilizează informații care nu ar fi disponibile în condițiile reale de predicție. Aceasta poate conduce la supraestimarea performanței. Problema poate apărea și în preprocesare: de exemplu, dacă parametrii unei transformări sunt calculați folosind întregul set de date, informațiile din setul de testare influențează indirect modelul. Transformările care necesită estimarea unor parametri trebuie ajustate pe datele de antrenare și apoi aplicate datelor de evaluare.[9]
O analiză publicată de Sayash Kapoor și Arvind Narayanan în 2023 a identificat scurgerea informațiilor în cel puțin 294 de lucrări din 17 domenii științifice. Autorii au descris opt tipuri de asemenea erori și au propus fișe de documentare a modelelor pentru examinarea lor. Studiul evidențiază importanța descrierii datelor, a modului de separare a acestora și a procedurilor de evaluare, astfel încât afirmațiile despre performanță să poată fi verificate și rezultatele reproduse.[10]
Cunoștințe
[modificare | modificare sursă]În învățare automată putem obține 3 tipuri de cunoaștere, care sunt:
- 1. Creșterea
- Este cea care este dobândită din ceea ce ne înconjoară, care păstrează informațiile în memorie ca și cum ar fi lăsat urme.
- 2. Restructurare
- Pentru a interpreta cunoștințele individuale reasoner și generează noi cunoștințe, care este numit de restructurare.
- 3. Ajustare
- Este cea obținută prin generalizarea mai multor concepte sau prin generarea conceptelor propi.
Cele trei tipuri se desfășoară în timpul unui proces automat de învățare, dar importanța fiecărui tip de cunoaștere depinde de caracteristicile a ceea ce se încearcă să învețe.
Învățarea este mai mult decât o necesitate, este un factor prioritar pentru a satisface nevoile de inteligență artificială.
Distincția între Învățare supervizată și nesupervizată
[modificare | modificare sursă]Învățarea supravegheată este caracterizată prin faptul că dispune de informații care specifică care seturi de date sunt satisfăcătoare în scopul învățării. Un exemplu ar putea fi software-ul care recunoaște dacă o imagine dată este sau nu o imagine a unei fețe: pentru învățarea programului ar trebui să furnizăm imagini diferite, precizând în acest proces dacă sunt sau nu fețe.
Cu toate acestea, în învățarea nesupravegheată, programul nu dispune de date care să definească ce informații sunt satisfăcătoare sau nu. Obiectivul principal al acestor programe este, de obicei, acela de a găsi modele care să permită separarea și clasificarea datelor în diferite grupuri, în funcție de atributele acestora. În urma exemplului anterior, un program de învățare nesupravegheat nu ne-ar putea spune dacă o imagine dată este o față sau nu, dar ar putea, de exemplu, să clasifice imaginile printre cele care conțin fețe umane, animale sau cele care nu conțin. Informațiile obținute printr-un algoritm de învățare nesupravegheat trebuie interpretate ulterior de o persoană pentru a le da utilitate.
Aplicații
[modificare | modificare sursă]- Motoarele de căutare
- Diagnostic Medical
- Detectarea fraudelor cu utilizarea de carduri de credit
- O analiză a pieței de valori
- Clasificarea secvente de ADN
- De recunoaștere a vorbirii
- Robotica
- Data mining
- Big Data
- Prognozele de serii de timp
Subiecte de învățare automatică
[modificare | modificare sursă]Mai jos sunt o serie de teme care ar putea face parte din programa unui curs de învățare automată.
- Modelarea funcții de densitate de probabilitate condiționată: clasificare și regresie
- Rețelele neuronale artificiale
- Arbori de decizie: învățare folosind arbori de decizie utilizeaza un arbore de decizie ca model predictiv care împerecheaza observații și concluzii cu privire la valoarea unui obiect dat.
- Mai multe modele de regresie nepostulate
- Regresie în procese Gaussiene
- Analiza de discriminanții liniarii
- k-vecini mai apropiați
- Perceptrón
- Funcții de bază radială
- Mașini cu suport vectorial
- Modelarea funcții de densității de probabilitate prin modele generative
- Algoritmul EM
- Modele grafice, cum ar fi rețele bayesiene și câmpuri aleatoare de Markov
- Cartografierea topografică generative
- Tehnici de inferență aproipată
- Lanțurile lui Markov și Metoda Monte-Carlo
- Metode variationale
- Optimizare: cele mai multe dintre metodele descrise mai sus folosesc algoritmi de optimizare, sau sunt ei înșiși cazuri de probleme de optimizare.
Istoria și relația cu alte teme
[modificare | modificare sursă]Învățare automată s-a născut din căutarea de inteligența artificială. Deja în primele zile ale AI-ului ca disciplină academică, unii cercetători au fost interesați în a face mașini cu puterea de a învățat. Au încercat să rezolve problema cu diferite mijloace de metode simbolice, precum și ceea ce ei au numit 'rețele neuronale' pentru că au fost în general percentrones și alte modele, practic sau bazat pe modele liniare generalizate cum sunt cunoscute în studiul de statistici.
Software-ul
[modificare | modificare sursă]Multe limbaje de programare pot fi utilizate pentru a implementa algoritmi de învățare automată. Cele mai populare pentru 2015 au fost R și Python.[11] R este foarte utilizat în principal în domeniul academic, în timp ce Python este mai popular în societate privată.
Printre pachetele de programe, inclusiv algoritmi de învățare automată, sunt următoarele:
Software-ul Open source
[modificare | modificare sursă]Software-Ul Comercial
[modificare | modificare sursă]Publicații și conferințe
[modificare | modificare sursă]- Masina De Învățare
- Jurnal de Învățare Mașină de Cercetare
- Neuronale Calcul
- Conferință internațională pe Masina de Învățare (Conferință Internațională pe Masina de Învățare)
- Conferință privind Sistemele Neuronale Procesarea Informațiilor (Conferință pe Neuronale, Sistemele de Prelucrare a Informațiilor)
Note
[modificare | modificare sursă]- ↑ Flach 2012 Págs. 20-21
- ↑ Sutton, Richard S., Barto, Andrew G. (). Reinforcement Learning: An Introduction. The MIT Press.
- ↑ Flach 2012 Págs. 155-156
- 1 2 3 „Cross-validation: evaluating estimator performance”. scikit-learn (în engleză).
- 1 2 Cawley, Gavin C.; Talbot, Nicola L. C. (). „On Over-fitting in Model Selection and Subsequent Selection Bias in Performance Evaluation”. Journal of Machine Learning Research (în engleză). 11: 2079–2107.
- 1 2 „Validation curves: plotting scores to evaluate models”. scikit-learn (în engleză).
- ↑ „Metrics and scoring: quantifying the quality of predictions”. scikit-learn (în engleză).
- ↑ Saito, Takaya; Rehmsmeier, Marc (). „The Precision-Recall Plot Is More Informative than the ROC Plot When Evaluating Binary Classifiers on Imbalanced Datasets”. PLOS ONE (în engleză). 10 (3): e0118432. doi:10.1371/journal.pone.0118432.
- ↑ „Common pitfalls and recommended practices”. scikit-learn (în engleză).
- ↑ Kapoor, Sayash; Narayanan, Arvind (). „Leakage and the reproducibility crisis in machine-learning-based science” (PDF). Patterns (în engleză). 4 (9): 100804. doi:10.1016/j.patter.2023.100804.
- ↑ Four main languages for analytics and data mining science (KD Nuggets)
Bibliografie
[modificare | modificare sursă]- Bishop, Christopher (2008) Pattern Recognition and Machine Learning. Springer Verlag. ISBN=978-0-3873-1073-2.
- Flach, Peter (2012) Machine Learning: The Art and Science of Algorithms that Make Sense of Data. Cambridge University Press. ISBN 978-1-107-42222-3.
- Gollapudi, Sunila (2016) Practical Machine Learning. Packt Publishing. ISBN=978-1-78439-968-4.
- Ian H. Witten and Eibe Frank (2011). Data Mining: Practical machine learning tools and techniques Morgan Kaufmann, 664 pág., ISBN 978-0-12-374856-0.
- Mitchell, T. (1997). Machine Learning, McGraw Hill. ISBN 0-07-042807-7
- Raschka, Sebastian (2015). Python Machine Learning, Packt Open Source. ISBN 978-1-78355-513-0

