Învățare automată

Învățare automată (în 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ățare 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 procesul 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ățare 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 a secventelor de ADN, recunoaștere a vorbirii și limbajului scris, jocuri și robotică.

Învățare automată

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ă se 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.

Învățare 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 încercarea sa determine distribuția între probabilitate 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 bayesiana.
  • Modele logice, care transforma și exprima 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 încercare a împărți spațiul de cazuri în grupuri. Ultimele, cum numele lor indica, 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ă]
O mașină cu vectori de suport

Diferiți algoritmi de Învățare Automate sunt grupați într-o taxonomie în funcție de producția a acestora. Unele tipuri de algoritmi sunt:

Învățarea supervizată total
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 utila în domenii precum cercetările biologice, biologie computațională sau bioinformatică.
Învățarea fara supervizare
Tot procesul de modelare se realizează pe un set de exemple format numai de intrări în sistem. Nu există informații despre categoriile de aceste 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
Acest tip de algoritmi combina 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
Algoritmul învață prin observarea lumii din jurul sa. Informațiile de intrare este 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ățare prin armare este cel mai general dintre cele trei categorii. În loc de a avea un instructor care indica 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 pentru a maximiza 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 îndeplininească 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 a metodelor 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 masa Go. În luna martie a anului 2016 AlphaGo a câștigat un meci jucătorului 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
Similar cu învățarea supervizată, dar nu construie în mod explicit o funcție. Încearca a prezice categoriile de viitor ale exemplelor, bazânduse pe exemplele de intrare, respectivele categorii și exemplele noi al sistemului.
De învățare multi-task
Metode 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.

Analiză computațională și de performanța a algoritmilor de învățare automată este o ramură a statisticii cunoscut sub numele teoria computationala a invatarii.

Învățare automată oameni o efectuează î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ă 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 inconjoara, precum societatea, economiea, 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 pe care trebuie să fie luate î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 să răspundă la anumite întrebări care ar putea apărea la care subiectul sau.

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 atribute sunt la baza deciziilor. Una dintre cele două forme majore de arbori de decizie elaborat de Quinlan pentru a măsura impuritate 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 engleza) 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.

Î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.

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ă
  • 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.

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.[4] 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ă]

Format:Lista de columnas

Publicații și conferințe

[modificare | modificare sursă]
  1. ^ Flach 2012 Págs. 20-21
  2. ^ Sutton, Richard S., Barto, Andrew G. Reinforcement Learning: An Introduction. The MIT Press. 
  3. ^ Flach 2012 Págs. 155-156
  4. ^ Four main languages for analytics and data mining science (KD Nuggets)
  • 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

Legături externe

[modificare | modificare sursă]