miercuri, 31 mai 2023

MNIST Dataset / Rețeaua neuronală

 

Handwritten Digit Recognition with scikit-learn

 

 

Part 1: MNIST Dataset / Rețeaua neuronală

1.    MNIST Dataset

 

Setul de date MNIST constă într-o vastă colecție de 60.000 de exemple de formare și 10.000 de exemple de testare, fiecare reprezentând imagini în tonuri de gri ale cifrelor scrise de mână de la zero la nouă.

 

Task-ul de clasificare a cifrelor MNIST implică utilizarea învățării automate pentru a recunoaște și clasifica cifre scrise de mână. Aceasta este o sarcină crucială cu aplicații în domenii precum recunoașterea optică a caracterelor și sortarea automată a poștei. Setul de date MNIST, care constă în mii de imagini în tonuri de gri ale cifrelor, servește ca referință pentru evaluarea algoritmilor de învățare automată.

 

2.    Rețeaua neuronală

 

Pentru clasificarea cifrelor MNIST, rețelele neuronale pot fi construite într-o structură numită rețea neuronală convoluțională (Convolutional Neural Network - CNN). Această arhitectură este specializată în prelucrarea și extragerea de caracteristici din imagini, ceea ce o face potrivită pentru recunoașterea cifrelor scrise de mână.

 

Rețelele neuronale convoluționale utilizate în MNIST sunt compuse din mai multe straturi, inclusiv straturi de convoluție, straturi de poolare și straturi complet conectate. Straturile de convoluție aplică filtre pe imagine pentru a evidenția trăsăturile relevante, cum ar fi marginile și colțurile cifrelor. Straturile de poolare reduc dimensiunea trăsăturilor extrase și le generalizează. Iar straturile complet conectate preiau aceste caracteristici și le utilizează pentru a clasifica cifrele.

 

2.1.         Arhitectura

 

Arhitectura de bază a unei rețele neuronale pentru clasificarea cifrelor MNIST este relativ simplă și directă. Aceasta constă într-un strat de intrare, unul sau mai multe straturi ascunse și un strat de ieșire.

 

Handwritten Digit Recognition — mxnet documentation

Stratul de intrare primește imaginile cifrelor și le transformă într-o reprezentare numerică pe care rețeaua neuronală o poate procesa. Această reprezentare este de obicei o matrice bidimensională de pixeli.

 

Straturile ascunse sunt responsabile de extragerea și învățarea caracteristicilor relevante ale cifrelor. Fiecare strat ascuns constă în neuroni interconectați care aplică operații matematice asupra datelor de intrare și transmit rezultatele către stratul următor. Aceste operații pot include convoluții, activări non-liniare și operații de agregare a informațiilor.

 

Stratul de ieșire este compus din neuroni care generează rezultatele clasificării, reprezentând probabilitatea că imaginea dată reprezintă o anumită cifră. De obicei, se utilizează funcția de activare Softmax pentru a obține aceste probabilități normalizate.

 

3.    Antrenament și testare a rețelei neuronale

 

O imagine care conține halloween, desen animat, dovleac

Descriere generată automat

         

Procesul de antrenament al unei rețele neuronale implică furnizarea rețelei datelor de intrare și ajustarea greutăților și a polarizărilor neuronilor în funcție de erorile produse în predicții. În cazul rețelei neuronale folosite pentru clasificarea cifrelor în setul de date MNIST, cele 60.000 de imagini de antrenament din setul de date MNIST sunt furnizate rețelei. Rețeaua produce apoi o predicție pentru fiecare imagine, iar diferența dintre cifra prezisă și cifra reală este calculată. Greutățile și polarizările neuronilor din rețea sunt ajustate pentru a minimiza această diferență sau eroare, utilizând algoritmul de retropropagare.

3.1   Backpropagation: Antrenând și Validând Rețele Neuronale cu Eficiență

 

Backpropagation este un algoritm popular pentru antrenarea rețelelor neuronale de tip feedforward. Acesta calculează gradientul erorii în funcție de greutățile și polarizările neuronilor din rețea. Acest gradient este utilizat pentru a actualiza greutățile și polarizările neuronilor, în scopul de a minimiza eroarea. Procesul este repetat pe parcursul mai multor epoci până când rețeaua neuronală atinge convergența și se minimizează eroarea.

O epocă reprezintă un ciclu complet prin întregul set de date de antrenament. În cazul rețelei neuronale utilizate pentru clasificarea cifrelor în setul de date MNIST, procesul de antrenament se repetă de-a lungul mai multor epoci. În fiecare epocă, setul complet de date de antrenament este introdus în rețea, iar greutățile și polarizările neuronilor sunt ajustate în funcție de erorile comise în predicții. Numărul de epoci utilizate în antrenament poate afecta precizia rețelei neuronale.

 

3.2   Validare

Pe parcursul procesului de antrenament, este important să monitorizăm performanța rețelei neuronale pe un set de date de validare separat. Acest set de date este utilizat pentru a evalua performanța rețelei pe date pe care nu le-a văzut anterior. Prin monitorizarea performanței rețelei pe setul de date de validare, este posibil să detectăm overfitting-ul, care apare atunci când rețeaua devine prea specializată pe setul de date de antrenament și prezintă o performanță scăzută pe date noi.

 

 

 

 

 

 

 

3.3     Testarea

O imagine care conține diagramă, desen, schiță

Descriere generată automat

După ce rețeaua neurală a fost antrenată pe setul de date de antrenament, aceasta este testată pe cele 10.000 de imagini de test din setul de date MNIST. Imaginile de test sunt introduse în rețeaua neurală, iar rețeaua produce o predicție pentru fiecare imagine. Precizia rețelei neuronale este calculată prin compararea cifrelor prezise cu cifrele reale din setul de testare. Precizia rețelei neuronale reprezintă măsura în care poate clasifica cifrele în setul de testare. Precizia este calculată prin împărțirea numărului de predicții corecte la numărul total de predicții efectuate. În cazul rețelei neuronale utilizate pentru clasificarea cifrelor din setul de date MNIST, o precizie de aproximativ 98% este considerată bună.

Există mai multe tehnici care pot fi utilizate pentru îmbunătățirea preciziei rețelei neuronale, cum ar fi creșterea numărului de straturi ascunse sau neuroni, utilizarea diferitelor funcții de activare sau a diferitelor algoritmi de optimizare. Este important să fim atenți în selectarea acestor tehnici, deoarece ele pot crește și riscul de supraantrenare (overfitting).

 

3.4     Concluzie

În acest studiu, am explorat utilizarea rețelelor neuronale în clasificarea cifrelor din setul de date MNIST. Rezultatele au demonstrat că rețelele neuronale convoluționale au obținut o precizie bună în recunoașterea și clasificarea cifrelor scrise de mână, cu o valoare de aproximativ 98%. Procesul de antrenament al rețelei neuronale a implicat utilizarea algoritmului de retropropagare pentru ajustarea greutăților și polarizărilor neuronilor. Este important să fim atenți în alegerea tehnicilor pentru îmbunătățirea preciziei, deoarece acestea pot crește riscul de supraantrenare (overfitting). Utilizarea rețelelor neuronale în recunoașterea cifrelor MNIST are aplicații practice în domenii precum recunoașterea optică a caracterelor și sortarea automată a poștei. Aceste rezultate contribuie la dezvoltarea domeniului și deschid perspective pentru utilizarea extinsă a rețelelor neuronale în diverse aplicații.

 

 

 

         

         

 

Niciun comentariu:

Trimiteți un comentariu

MNIST Digit Classification

  MNIST MNIST este un set de date clasic în domeniul recunoașterii de imagini, utilizat  pentru a antrena și evalua algoritmi de învățare au...