logo

VGG-16 | Modelul CNN

O arhitectură de rețea neuronală convoluțională (CNN) este un model de învățare profundă conceput pentru procesarea datelor structurate de tip grilă, cum ar fi imaginile. Este format din mai multe straturi, inclusiv straturi convoluționale, de grupare și complet conectate. CNN-urile sunt extrem de eficiente pentru sarcini precum clasificarea imaginilor, detectarea obiectelor și segmentarea imaginilor datorită capacităților lor de extracție a caracteristicilor ierarhice.

VGG-16

Modelul VGG-16 este o arhitectură de rețea neuronală convoluțională (CNN) care a fost propusă de Visual Geometry Group (VGG) de la Universitatea din Oxford. Se caracterizează prin adâncimea sa, constând din 16 straturi, inclusiv 13 straturi convoluționale și 3 straturi complet conectate. VGG-16 este renumit pentru simplitatea și eficacitatea sa, precum și pentru capacitatea sa de a obține performanțe puternice în diverse sarcini de viziune computerizată, inclusiv clasificarea imaginilor și recunoașterea obiectelor. Arhitectura modelului prezintă un teanc de straturi convoluționale urmate de straturi de maxim-pooling, cu adâncime în creștere progresivă. Acest design permite modelului să învețe reprezentări ierarhice complicate ale caracteristicilor vizuale, ceea ce duce la predicții robuste și precise. În ciuda simplității sale în comparație cu arhitecturile mai recente, VGG-16 rămâne o alegere populară pentru multe aplicații de deep learning datorită versatilității și performanței excelente.



ImageNet Large Scale Visual Recognition Challenge (ILSVRC) este o competiție anuală de viziune computerizată în care echipele abordează sarcini, inclusiv localizarea obiectelor și clasificarea imaginilor. VGG16, propus de Karen Simonyan și Andrew Zisserman în 2014, a obținut poziții de top în ambele sarcini, detectând obiecte din 200 de clase și clasificând imaginile în 1000 de categorii.


Forța de curățare a memoriei cache npm

Arhitectura VGG-16



Acest model realizează 92,7% top-5 acuratețea testului pe setul de date ImageNet care conține 14 milioane de imagini aparținând celor 1000 de clase.

Obiectivul modelului VGG-16:

Setul de date ImageNet conține imagini de dimensiune fixă ​​de 224*224 și au canale RGB. Deci, avem un tensor de (224, 224, 3) ca aportul nostru. Acest model procesează imaginea de intrare și scoate vectorul a 1000 valori:

hat{y} =egin{bmatrix} hat{y_0} hat{y_1} hat{y_2} . . . hat{y}_{999} end{bmatrix}



Acest vector reprezintă probabilitatea de clasificare pentru clasa corespunzătoare. Să presupunem că avem un model care prezice că imaginea aparține clasei 0 cu probabilitate 1 , clasa 1 cu probabilitate 0,05 , clasa 2 cu probabilitate 0,05 , clasa 3 cu probabilitate 0,03 , clasa 780 cu probabilitate 0,72 , clasa 999 cu probabilitate 0,05 si toate celelalte clase cu 0 .

deci, vectorul de clasificare pentru aceasta va fi:

hat{y}=egin{bmatrix} hat{y_{0}}=0.1 0.05 0.05 0.03 . . . hat{y_{780}} = 0.72 . . hat{y_{999}} = 0.05 end{bmatrix}

Pentru a vă asigura că aceste probabilități se adaugă la 1 , folosim funcția softmax.

Această funcție softmax este definită după cum urmează:

hat{y}_i = frac{e^{z_i}}{sum_{j=1}^{n} e^{z_j}}

După aceasta, luăm în vector cei 5 candidați cei mai probabili.

C =egin{bmatrix} 780 0 1 2 999 end{bmatrix}

selecție sortare java

iar vectorul nostru de adevăr de bază este definit după cum urmează:

G = egin{bmatrix} G_{0} G_{1} G_{2} end{bmatrix}=egin{bmatrix} 780 2 999 end{bmatrix}

Apoi definim funcția noastră de eroare după cum urmează:

E = frac{1}{n}sum_{k}min_{i}d(c_{i}, G_{k})

șir comparare java

Acesta calculează distanța minimă dintre fiecare clasă de adevăr la sol și candidații preziși, unde funcția de distanță d este definită ca:

  • d=0 dacăc_i=G_k
  • d=1 altfel

Deci, funcția de pierdere pentru acest exemplu este:

egin{aligned} E &=frac{1}{3}left ( min_{i}d(c_{i}, G_{1}) +min_{i}d(c_{i}, G_{2})+min_{i}d(c_{i}, G_{3}) ight ) &= frac{1}{3}(0 + 0 +0) &=0 end{aligned}

Deoarece toate categoriile din adevărul de bază se află în matricea de top-5 prezisă, astfel încât pierderea devine 0.

VGG Arhitectură:

Arhitectura VGG-16 este o rețea neuronală convoluțională profundă (CNN) concepută pentru sarcini de clasificare a imaginilor. A fost introdus de Grupul de Geometrie Vizuală de la Universitatea din Oxford. VGG-16 se caracterizează prin simplitatea și arhitectura sa uniformă, făcându-l ușor de înțeles și implementat.

checkout cu git

Configurația VGG-16 constă de obicei din 16 straturi, inclusiv 13 straturi convoluționale și 3 straturi complet conectate. Aceste straturi sunt organizate în blocuri, fiecare bloc conținând mai multe straturi convoluționale urmate de un strat de pooling maxim pentru eșantionare.

Harta arhitecturii VGG-16

Iată o defalcare a arhitecturii VGG-16 pe baza detaliilor furnizate:

  1. Strat de intrare:
    1. Dimensiuni de intrare: (224, 224, 3)
  2. Straturi convoluționale (64 de filtre, 3×3 filtre, aceeași umplutură):
    • Două straturi convoluționale consecutive cu 64 de filtre fiecare și o dimensiune a filtrului de 3×3.
    • Aceeași umplutură este aplicată pentru a menține dimensiunile spațiale.
  3. Strat de grupare maximă (2×2, pas 2):
    • Strat de acumulare maximă cu o dimensiune a piscinei de 2×2 și un pas de 2.
  4. Straturi convoluționale (128 de filtre, 3×3 filtre, aceeași umplutură):
    • Două straturi convoluționale consecutive cu 128 de filtre fiecare și o dimensiune a filtrului de 3×3.
  5. Strat de grupare maximă (2×2, pas 2):
    • Strat de acumulare maximă cu o dimensiune a piscinei de 2×2 și un pas de 2.
  6. Straturi convoluționale (256 de filtre, 3×3 filtre, aceeași umplutură):
    • Două straturi convoluționale consecutive cu 256 de filtre fiecare și o dimensiune a filtrului de 3×3.
  7. Straturi convoluționale (512 filtre, filtre 3×3, aceeași umplutură):
    • Două seturi de trei straturi convoluționale consecutive cu 512 filtre fiecare și o dimensiune a filtrului de 3×3.
  8. Strat de grupare maximă (2×2, pas 2):
    • Strat de acumulare maximă cu o dimensiune a piscinei de 2×2 și un pas de 2.
  9. Stivă de straturi convoluționale și pooling maxim:
    • Două straturi convoluționale suplimentare după stiva anterioară.
    • Dimensiunea filtrului: 3×3.
  10. Aplatizare:
    • Aplatizați harta caracteristicilor de ieșire (7x7x512) într-un vector de dimensiunea 25088.
  11. Straturi complet conectate:
    • Trei straturi complet conectate cu activare ReLU.
    • Primul strat cu dimensiunea de intrare 25088 și dimensiunea de ieșire 4096.
    • Al doilea strat cu dimensiunea de intrare 4096 și dimensiunea de ieșire 4096.
    • Al treilea strat cu dimensiunea de intrare 4096 și dimensiunea de ieșire 1000, corespunzătoare celor 1000 de clase din provocarea ILSVRC.
    • Activarea Softmax este aplicată la ieșirea celui de-al treilea strat complet conectat pentru clasificare.

Această arhitectură urmează specificațiile furnizate, inclusiv utilizarea funcției de activare ReLU și probabilitățile de ieșire a stratului complet conectat final pentru 1000 de clase folosind activarea softmax.

Configurație VGG-16:

Principala diferență între configurațiile VGG-16 C și D constă în utilizarea dimensiunilor filtrului în unele dintre straturile convoluționale. În timp ce ambele versiuni folosesc predominant filtre 3×3, în versiunea D, există cazuri în care sunt folosite filtre 1×1. Această ușoară variație are ca rezultat o diferență în numărul de parametri, versiunea D având un număr puțin mai mare de parametri în comparație cu versiunea C. Cu toate acestea, ambele versiuni mențin arhitectura generală și principiile modelului VGG-16.

Configurație VGG diferită

Localizare obiect în imagine:

Pentru a efectua localizarea, trebuie să înlocuim scorul clasei cu coordonatele locației casetei de delimitare. Locația unei casete de delimitare este reprezentată de vectorul 4-D (coordonatele centrului (x,y), înălțimea, lățimea). Există două versiuni ale arhitecturii de localizare, una este căsuța de delimitare este partajată între diferiți candidați (ieșirea este 4 vector parametru) iar celălalt este o casetă de delimitare este specifică clasei (ieșirea este 4000 vector parametru). Lucrarea a experimentat cu ambele abordări ale arhitecturii VGG -16 (D). Aici, de asemenea, trebuie să schimbăm pierderea de la pierderea de clasificare la funcțiile de pierdere de regresie (cum ar fi MSE ) care penalizează abaterea pierderii prezise de la adevărul de bază.

Rezultate: VGG-16 a fost una dintre cele mai performante arhitecturi în provocarea ILSVRC 2014. A fost locul secund în sarcina de clasificare cu o eroare de clasificare în top-5 de 7,32% (numai în spatele GoogLeNet cu o eroare de clasificare de 6,66% ). A fost, de asemenea, câștigătorul sarcinii de localizare cu 25,32% eroare de localizare.

Limitările VGG 16:

  • Este foarte lent de antrenat (modelul original VGG a fost antrenat pe GPU Nvidia Titan timp de 2-3 săptămâni).
  • Dimensiunea greutăților imageNet antrenate VGG-16 este 528 MB. Deci, este nevoie de destul de mult spațiu pe disc și lățime de bandă, ceea ce îl face ineficient.
  • 138 de milioane de parametri duc la problema exploziei gradienților.

Alte progrese: Rețelele sunt introduse pentru a preveni problema de gradient explozivă care a apărut în VGG-16.