logo

VGG-16 | CNN-modell

A Convolutional Neural Network (CNN)-arkitektur är en djupinlärningsmodell utformad för att bearbeta strukturerade rutnätsliknande data, såsom bilder. Den består av flera lager, inklusive faltning, poolande och helt anslutna lager. CNN:er är mycket effektiva för uppgifter som bildklassificering, objektdetektering och bildsegmentering på grund av deras hierarkiska funktionsextraktionsförmåga.

VGG-16

VGG-16-modellen är en CNN-arkitektur (convolutional neural network) som föreslogs av Visual Geometry Group (VGG) vid University of Oxford. Den kännetecknas av dess djup, bestående av 16 lager, inklusive 13 faltningslager och 3 helt sammankopplade lager. VGG-16 är känt för sin enkelhet och effektivitet, såväl som sin förmåga att uppnå starka prestanda på olika datorseende uppgifter, inklusive bildklassificering och objektigenkänning. Modellens arkitektur har en bunt faltningslager följt av maxpoolande lager, med progressivt ökande djup. Denna design gör det möjligt för modellen att lära sig intrikata hierarkiska representationer av visuella funktioner, vilket leder till robusta och korrekta förutsägelser. Trots sin enkelhet jämfört med nyare arkitekturer är VGG-16 fortfarande ett populärt val för många djupinlärningsapplikationer på grund av dess mångsidighet och utmärkta prestanda.



ImageNet Large Scale Visual Recognition Challenge (ILSVRC) är en årlig tävling i datorseende där team tar sig an uppgifter inklusive objektlokalisering och bildklassificering. VGG16, föreslog av Karen Simonyan och Andrew Zisserman 2014, uppnådde topprankningar i båda uppgifterna, detekterade objekt från 200 klasser och klassificerade bilder i 1000 kategorier.


java scan.nextstring

VGG-16 arkitektur



Denna modell uppnår 92,7 % topp-5 testa noggrannheten på ImageNet-datauppsättningen som innehåller 14 miljoner bilder som tillhör 1000 klasser.

VGG-16 modellmål:

ImageNet-datauppsättningen innehåller bilder av fast storlek på 224*224 och har RGB-kanaler. Så vi har en tensor av (224, 224, 3) som vår input. Denna modell bearbetar ingångsbilden och matar ut a-vektorn av 1000 värden:

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



Denna vektor representerar klassificeringssannolikheten för motsvarande klass. Anta att vi har en modell som förutsäger att bilden tillhör klass 0 med sannolikhet 1 , klass 1 med sannolikhet 0,05 , klass 2 med sannolikhet 0,05 , klass 3 med sannolikhet 0,03 , klass 780 med sannolikhet 0,72 , klass 999 med sannolikhet 0,05 och alla andra klasser med 0 .

så, klassificeringsvektorn för detta kommer att vara:

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}

För att se till att dessa sannolikheter ökar 1 , vi använder softmax-funktionen.

Denna softmax-funktion definieras enligt följande:

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

java intervjufrågor

Efter detta tar vi in ​​de 5 mest sannolika kandidaterna i vektorn.

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

och vår grundsanningsvektor definieras enligt följande:

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

Sedan definierar vi vår felfunktion enligt följande:

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

excel ta bort första tecknet

Den beräknar det minsta avståndet mellan varje marksanningsklass och de förutspådda kandidaterna, där avståndsfunktionen d definieras som:

  • d=0 omc_i=G_k
  • d=1 annars

Så, förlustfunktionen för detta exempel är:

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}

Eftersom alla kategorier i ground truth finns i den förutspådda topp-5-matrisen, så förlusten blir 0.

VGG Arkitektur:

VGG-16-arkitekturen är ett djupt konvolutionellt neuralt nätverk (CNN) designat för bildklassificeringsuppgifter. Det introducerades av Visual Geometry Group vid University of Oxford. VGG-16 kännetecknas av sin enkelhet och enhetliga arkitektur, vilket gör den lätt att förstå och implementera.

sträng delad bash

VGG-16-konfigurationen består vanligtvis av 16 lager, inklusive 13 faltningslager och 3 helt anslutna lager. Dessa lager är organiserade i block, där varje block innehåller flera faltningslager följt av ett maxpoolningslager för nedsampling.

VGG-16 arkitekturkarta

Här är en uppdelning av VGG-16-arkitekturen baserat på de angivna detaljerna:

  1. Indatalager:
    1. Inmatningsmått: (224, 224, 3)
  2. Konvolutionella lager (64 filter, 3×3 filter, samma stoppning):
    • Två på varandra följande faltningslager med 64 filter vardera och en filterstorlek på 3×3.
    • Samma stoppning appliceras för att bibehålla rumsliga dimensioner.
  3. Max poollager (2×2, steg 2):
    • Maxpoolande lager med en poolstorlek på 2×2 och ett steg på 2.
  4. Konvolutionella lager (128 filter, 3×3 filter, samma stoppning):
    • Två på varandra följande faltningslager med 128 filter vardera och en filterstorlek på 3×3.
  5. Max poollager (2×2, steg 2):
    • Maxpoolande lager med en poolstorlek på 2×2 och ett steg på 2.
  6. Konvolutionella lager (256 filter, 3×3 filter, samma stoppning):
    • Två på varandra följande faltningslager med 256 filter vardera och en filterstorlek på 3×3.
  7. Konvolutionella lager (512 filter, 3×3 filter, samma stoppning):
    • Två uppsättningar av tre på varandra följande faltningslager med 512 filter vardera och en filterstorlek på 3×3.
  8. Max poollager (2×2, steg 2):
    • Maxpoolande lager med en poolstorlek på 2×2 och ett steg på 2.
  9. Stack of Convolutional Layers och Max Pooling:
    • Två ytterligare faltningslager efter föregående stack.
    • Filterstorlek: 3×3.
  10. Tillplattning:
    • Platta ut funktionskartan (7x7x512) till en vektor med storleken 25088.
  11. Fullt anslutna lager:
    • Tre helt anslutna lager med ReLU-aktivering.
    • Första lagret med ingångsstorlek 25088 och utmatningsstorlek 4096.
    • Andra lagret med ingångsstorlek 4096 och utmatningsstorlek 4096.
    • Tredje lagret med ingångsstorlek 4096 och utmatningsstorlek 1000, motsvarande de 1000 klasserna i ILSVRC-utmaningen.
    • Softmax-aktivering appliceras på utgången från det tredje fullt anslutna lagret för klassificering.

Denna arkitektur följer de angivna specifikationerna, inklusive användningen av ReLU-aktiveringsfunktionen och det slutliga fullt anslutna lagrets utmatningssannolikheter för 1000 klasser med softmax-aktivering.

VGG-16-konfiguration:

Den huvudsakliga skillnaden mellan VGG-16-konfigurationerna C och D ligger i användningen av filterstorlekar i några av faltningsskikten. Medan båda versionerna övervägande använder 3×3-filter, i version D, finns det tillfällen där 1×1-filter används istället. Denna lilla variation resulterar i en skillnad i antalet parametrar, där version D har ett något högre antal parametrar jämfört med version C. Båda versionerna bibehåller dock den övergripande arkitekturen och principerna för VGG-16-modellen.

Olika VGG-konfiguration

Objektlokalisering i bild:

För att utföra lokalisering måste vi ersätta klasspoängen med platskoordinater för begränsningsrutan. En begränsningsboxposition representeras av 4D-vektorn (centrumkoordinater(x,y), höjd, bredd). Det finns två versioner av lokaliseringsarkitektur, den ena är begränsningsrutan delas mellan olika kandidater (utgången är 4 parameter vektor) och den andra är en begränsningsbox som är klassspecifik (utgången är 4000 parametervektor). Uppsatsen experimenterade med båda metoderna för VGG -16 (D) arkitektur. Här måste vi också ändra förlust från klassificeringsförlust till regressionsförlustfunktioner (som t.ex MSE ) som straffar avvikelsen av förutspådd förlust från grundsanningen.

Resultat: VGG-16 var en av de bäst presterande arkitekturerna i ILSVRC-utmaningen 2014. Den var tvåa i klassificeringsuppgiften med ett topp-5 klassificeringsfel på 7,32 % (endast bakom GoogLeNet med ett klassificeringsfel på 6,66 % ). Det var också vinnaren av lokalisering uppgift med 25,32 % lokaliseringsfel.

Begränsningar för VGG 16:

  • Den är väldigt långsam att träna (den ursprungliga VGG-modellen tränades på Nvidia Titan GPU i 2-3 veckor).
  • Storleken på VGG-16-tränade imageNet-vikter är 528 MB. Så det tar ganska mycket diskutrymme och bandbredd vilket gör det ineffektivt.
  • 138 miljoner parametrar leder till problem med exploderande gradienter.

Ytterligare framsteg: Åternät införs för att förhindra exploderande gradientproblem som inträffade i VGG-16.