IA 101

Ce este învățarea profundă?

mm

Învățarea profundă este unul dintre cele mai influente și mai rapide domenii în inteligența artificială. Cu toate acestea, obținerea unei înțelegeri intuitive a învățării profunde poate fi dificilă, deoarece termenul de învățare profundă acoperă o varietate de algoritmi și tehnici diferite. Învățarea profundă este, de asemenea, o subdisciplină a învățării automate în general, deci este important să înțelegem ce este învățarea automată pentru a înțelege învățarea profundă.

Ce este învățarea automată?

Învățarea profundă este o extensie a unor concepte care provin din învățarea automată, așa că, din acest motiv, să explicăm ce este învățarea automată.

Pus simplu, învățarea automată este o metodă de a permite calculatoarelor să efectueze anumite sarcini fără a codifica explicit fiecare linie a algoritmilor utilizați pentru a efectua acele sarcini. Există multe algoritmi de învățare automată, dar unul dintre cei mai utilizați algoritmi este un perceptron multistrat. Un perceptron multistrat este, de asemenea, numit rețea neuronală și este alcătuit dintr-o serie de noduri/neuroni conectați între ei. Există trei straturi diferite într-un perceptron multistrat: stratul de intrare, stratul ascuns și stratul de ieșire.

Stratul de intrare ia datele în rețea, unde sunt manipulate de nodurile din stratul ascuns. Nodurile din stratul ascuns sunt funcții matematice care pot manipula datele provenite din stratul de intrare, extrăgând modele relevante din datele de intrare. Acesta este modul în care rețeaua neuronală “învață”. Rețelele neuronale își primesc numele din faptul că sunt inspirate de structura și funcția creierului uman.

Conexiunile dintre noduri în rețea au valori numite greutăți. Aceste valori sunt, în esență, ipoteze despre modul în care datele dintr-un strat sunt legate de datele din următorul strat. Pe măsură ce rețeaua se antrenează, greutățile sunt ajustate, iar scopul este ca greutățile/ipotezele despre date să converge, în cele din urmă, spre valori care reprezintă cu acuratețe modelele semnificative din date.

Funcțiile de activare sunt prezente în nodurile rețelei și aceste funcții de activare transformă datele într-un mod neliniar, permițând rețelei să învețe reprezentări complexe ale datelor. Funcțiile de activare multiplică valorile de intrare cu valorile greutăților și adaugă un termen de bias.

Ce este învățarea profundă?

Învățarea profundă este termenul dat arhitecturilor de învățare automată care combină multe perceptronuri multistrat, astfel încât nu există doar un strat ascuns, ci multe straturi ascunse. Cu cât rețeaua neuronală profundă este “mai adâncă”, cu atât mai sofisticate modele poate învăța rețeaua.

Rețelele neuronale profunde formate din neuroni sunt, uneori, numite rețele complet conectate sau straturi complet conectate, făcând referire la faptul că un neuron dat menține o conexiune cu toți neuronii din jurul lui. Rețelele complet conectate pot fi combinate cu alte funcții de învățare automată pentru a crea diferite arhitecturi de învățare profundă.

Diferite tipuri de învățare profundă

Există o varietate de arhitecturi de învățare profundă utilizate de cercetători și ingineri, iar fiecare dintre aceste arhitecturi are propriul său caz de utilizare special.

Rețele neuronale convolutive

Rețelele neuronale convolutive, sau CNN-urile, sunt arhitectura de rețea neuronală utilizată în mod obișnuit în crearea sistemelor de viziune computațională. Structura rețelelor neuronale convolutive le permite să interpreteze datele imaginilor, transformându-le în numere pe care o rețea complet conectată le poate interpreta. O rețea neuronală convolutivă are patru componente principale:

  • Straturi convolutive
  • Straturi de subsampling/împachetare
  • Funcții de activare
  • Straturi complet conectate

Straturile convolutive sunt cele care iau imaginile ca intrări în rețea, analizând imaginile și obținând valorile pixelilor. Subsampling-ul sau împachetarea este unde valorile imaginilor sunt convertite/reducate pentru a simplifica reprezentarea imaginilor și a reduce sensibilitatea filtrelor de imagine la zgomot. Funcțiile de activare controlează modul în care datele trec de la un strat la altul, iar straturile complet conectate sunt cele care analizează valorile care reprezintă imaginea și învață modelele conținute în acele valori.

RNN-urile/LSTM-urile

Rețelele neuronale recurente, sau RNN-urile, sunt populare pentru sarcinile în care ordinea datelor contează, unde rețeaua trebuie să învețe despre o secvență de date. RNN-urile sunt aplicate, în mod obișnuit, la probleme precum procesarea limbajului natural, deoarece ordinea cuvintelor contează atunci când se decodifică sensul unei propoziții. Partea “recurentă” a termenului de rețea neuronală recurentă provine din faptul că ieșirea pentru un anumit element dintr-o secvență depinde atât de calculul anterior, cât și de calculul curent. Spre deosebire de alte forme de rețele neuronale profunde, RNN-urile au “memorii”, iar informațiile calculate la diferitele pași de timp din secvență sunt utilizate pentru a calcula valorile finale.

Există mai multe tipuri de RNN-uri, inclusiv RNN-urile bidirecționale, care iau în considerare articolele viitoare din secvență, pe lângă articolele anterioare, atunci când se calculează valoarea unui articol. Un alt tip de RNN este o rețea LSTM. RNN-urile LSTM pot gestiona lanțuri lungi de date. RNN-urile obișnuite pot cădea victimă unui lucru numit “problema gradientului exploziv”. Acest lucru se întâmplă atunci când lanțul de date de intrare devine extrem de lung, dar RNN-urile LSTM au tehnici pentru a combate această problemă.

Autoencoderii

Majoritatea arhitecturilor de învățare profundă menționate până acum sunt aplicate problemelor de învățare supravegheată, mai degrabă decât sarcinilor de învățare nesupravegheată. Autoencoderii pot transforma datele nesupravegheate într-un format supravegheat, permițând rețelelor neuronale să fie utilizate pentru problema respectivă.

Autoencoderii sunt utilizați, în mod frecvent, pentru a detecta anomalii în seturile de date, un exemplu de învățare nesupravegheată, deoarece natura anomaliilor nu este cunoscută. Un astfel de exemplu de detectare a anomaliilor include detectarea fraudelor pentru instituțiile financiare. În acest context, scopul unui autoencoder este de a determina o linie de bază a modelelor regulate din date și de a identifica anomalii sau valori extreme.

Structura unui autoencoder este, adesea, simetrică, cu straturi ascunse dispuse astfel încât ieșirea rețelei să semene cu intrarea. Cele patru tipuri de autoencoderi care sunt utilizate, în mod frecvent, sunt:

  • Autoencoderi regulati/plani
  • Autoencoderi multistrat
  • Autoencoderi convolutive
  • Autoencoderi regularizati

Autoencoderii regulati/plani sunt doar rețele neuronale cu un singur strat ascuns, în timp ce autoencoderii multistrat sunt rețele profunde cu mai multe straturi ascunse. Autoencoderii convolutive utilizează straturi convolutive în locul, sau în plus față de, straturile complet conectate. Autoencoderii regularizati utilizează o funcție de pierdere specifică care permite rețelei neuronale să efectueze funcții mai complexe, funcții care nu sunt doar copierea intrărilor în ieșiri.

Rețelele neuronale adversative generative

Rețelele neuronale adversative generative (GAN) sunt, de fapt, multiple rețele neuronale profunde, în loc de o singură rețea. Două modele de învățare profundă sunt antrenate în același timp, iar ieșirile lor sunt alimentate în cealaltă rețea. Rețelele sunt în competiție unele cu altele, iar deoarece au acces la datele de ieșire ale celorlalte, ambele învață din aceste date și se îmbunătățesc. Rețelele sunt, în esență, jucând un joc de falsificare și detectare, în care modelul generator încearcă să creeze instanțe noi care vor înșela modelul detector/discriminator. GAN-urile au devenit populare în domeniul viziunii computaționale.

Rezumatul învățării profunde

Învățarea profundă extinde principiile rețelelor neuronale pentru a crea modele sofisticate care pot învăța modele complexe și generaliza aceste modele la seturi de date viitoare. Rețelele neuronale convolutive sunt utilizate pentru a interpreta imaginile, în timp ce RNN-urile/LSTM-urile sunt utilizate pentru a interpreta datele secvențiale. Autoencoderii pot transforma sarcinile de învățare nesupravegheată în sarcini de învățare supravegheată. În final, GAN-urile sunt multiple rețele care sunt puse în competiție unele cu altele și sunt, în special, utile pentru sarcinile de viziune computațională.

Blogger și programator cu specializări în Machine Learning și Deep Learning subiecte. Daniel speră să ajute pe alții să folosească puterea inteligenței artificiale pentru binele social.