Skip to content

Image Classification using two different architectures CNN and MLP. The project is to show the contrast between MLP and CNN in these kind of tasks.

Notifications You must be signed in to change notification settings

matei8/ImageClassification

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Analiză Comparativă: CNN vs. MLP în Clasificarea Imaginilor

Acest proiect reprezintă o analiză aprofundată a performanței algoritmilor de Deep Learning, punând în contrast două paradigme arhitecturale fundamentale: Rețelele Convoluționale (CNN) și Perceptronul Multistrat (MLP). Studiul explorează modul în care fiecare arhitectură procesează imaginile, reacționează la augmentări de date și beneficiază de tehnici precum Transfer Learning.

Structura Proiectului

Proiectul este modular, fiind conceput pentru a rula experimente complet reproductibile printr-un simplu fișier de configurare.

  • config.toml: Este "centrul de comandă" al proiectului. Aici se definesc toți parametrii experimentului: setul de date (ex. imagebits), tipul modelului (CNN sau MLP), hiperparametrii de antrenare (epoci, learning rate, dropout) și augmentările dorite.

  • main.py: Este scriptul principal de execuție. Acesta citește configurația, inițializează seturile de date și modelul ales, aplică logica de Transfer Learning (dacă este furnizată o cale către ponderi pre-antrenate) și declanșează procesele de antrenare și evaluare.

  • data_loader.py: Gestionează încărcarea și preprocesarea datelor. Folosește biblioteca albumentations pentru a aplica transformări avansate (ex. rotații, zgomot, decupări). De asemenea, include clasa TransformWrapper care garantează că redimensionarea imaginilor (la dimensiunea standard de 64x64) este aplicată corect înainte de orice altă procesare.

  • models.py: Conține arhitecturile rețelelor și motorul de antrenare.

  • Defineste SimpleCNN (bazat pe 3 blocuri de convoluție și pooling) și SimpleMLP (o arhitectură densă, piramidală, cu straturi de 2048, 1024 și 512 neuroni, stabilizată prin Batch Normalization).

  • Funcția train_engine gestionează bucla de antrenare, incluzând funcționalități de Early Stopping și ajustare dinamică a ratei de învățare (Scheduler) pentru a preveni supra-antrenarea.

  • visualization.py: Este responsabil pentru analiza exploratorie a datelor (EDA) și raportare. Poate genera vizualizări utile precum "fantomele" (imaginea medie) per clasă, distribuțiile RGB și, la finalul evaluării, curbele de performanță (Loss/Accuracy) și matricea de confuzie.

Rezultatele Obținute

Experimentele au fost rulate pe două seturi de date distincte: ImageBits (forme geometrice și obiecte) și Land Patches (texturi satelitare). Rezultatele subliniază diferențe arhitecturale majore:

Superioritatea clară a CNN-urilor: Pe setul ImageBits, cel mai bun model CNN a obținut o acuratețe pe setul de test de 70.48% , în timp ce cel mai bun model MLP a atins doar 51.94%. Această diferență majoră persistă deși MLP-ul folosește aproximativ 25 de milioane de parametri, comparativ cu doar ~590.000 de parametri folosiți de CNN.

"Catastrofa" Rotațiilor pentru MLP: Experimentele au demonstrat că augmentările geometrice afectează grav rețelele MLP. O simplă rotație de 10 grade permută masiv pixelii în vectorul aplatizat de intrare, făcând optimizarea și convergența practic imposibile pentru un MLP (acuratețea scăzând sub 48%). CNN-urile, în schimb, gestionează natural aceste transformări datorită invarianței la translație.

Transfer Learning funcționează diferit: Pe imaginile din Land Patches, transferul de ponderi (Transfer Learning) a propulsat CNN-ul la o acuratețe excelentă de 90.60% (o creștere de 3.5% față de antrenarea de la zero). Pentru MLP, transferul a adus o îmbunătățire neglijabilă de doar 0.7%, deoarece neuronii acestuia învață corelații specifice poziției pixelilor, care nu sunt transferabile între tipuri diferite de imagini.

Comportamentul pe Texturi vs. Forme: Deși MLP-ul este slab la identificarea formelor geometrice, a performat surprinzător de bine pe texturi omogene (precum păduri sau zone industriale din Land Patches), unde distribuția globală a culorilor compensează parțial lipsa detectării formelor locale.

About

Image Classification using two different architectures CNN and MLP. The project is to show the contrast between MLP and CNN in these kind of tasks.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages