Een Convolutional Neural Network (CNN) -architectuur is een deep learning-model dat is ontworpen voor het verwerken van gestructureerde rasterachtige gegevens, zoals afbeeldingen. Het bestaat uit meerdere lagen, waaronder convolutionele, samengevoegde en volledig verbonden lagen. CNN's zijn zeer effectief voor taken als beeldclassificatie, objectdetectie en beeldsegmentatie vanwege hun hiërarchische functie-extractiemogelijkheden.
VGG-16
Het VGG-16-model is een convolutionele neurale netwerkarchitectuur (CNN) die werd voorgesteld door de Visual Geometry Group (VGG) van de Universiteit van Oxford. Het wordt gekenmerkt door zijn diepte, bestaande uit 16 lagen, waaronder 13 convolutionele lagen en 3 volledig verbonden lagen. VGG-16 staat bekend om zijn eenvoud en effectiviteit, evenals zijn vermogen om sterke prestaties te leveren bij verschillende computer vision-taken, waaronder beeldclassificatie en objectherkenning. De architectuur van het model bestaat uit een stapel convolutionele lagen, gevolgd door maximaal samengevoegde lagen, met geleidelijk toenemende diepte. Dankzij dit ontwerp kan het model ingewikkelde hiërarchische representaties van visuele kenmerken leren, wat leidt tot robuuste en nauwkeurige voorspellingen. Ondanks zijn eenvoud in vergelijking met recentere architecturen, blijft VGG-16 een populaire keuze voor veel deep learning-toepassingen vanwege zijn veelzijdigheid en uitstekende prestaties.
De ImageNet Large Scale Visual Recognition Challenge (ILSVRC) is een jaarlijkse wedstrijd op het gebied van computervisie waarbij teams taken aanpakken, waaronder objectlokalisatie en beeldclassificatie. VGG16, voorgesteld door Karen Simonyan en Andrew Zisserman in 2014, behaalde topscores in beide taken, waarbij objecten uit 200 klassen werden gedetecteerd en afbeeldingen in 1000 categorieën werden geclassificeerd.
algoritme voor bfs

VGG-16-architectuur
Dit model bereikt 92,7% top-5 test de nauwkeurigheid van de ImageNet-dataset die deze bevat 14 miljoen afbeeldingen behorend tot 1000 klassen.
VGG-16 Modeldoelstelling:
De ImageNet-dataset bevat afbeeldingen met een vaste grootte van 224*224 en hebben RGB-kanalen. We hebben dus een tensor van (224, 224, 3) als onze inbreng. Dit model verwerkt het invoerbeeld en voert de vector uit 1000 waarden:
Deze vector vertegenwoordigt de classificatiewaarschijnlijkheid voor de overeenkomstige klasse. Stel dat we een model hebben dat voorspelt dat het beeld met waarschijnlijkheid tot klasse 0 behoort 1 , klas 1 met waarschijnlijkheid 0,05 , klasse 2 met waarschijnlijkheid 0,05 , klas 3 met waarschijnlijkheid 0,03 , klasse 780 met waarschijnlijkheid 0,72 , klas 999 met waarschijnlijkheid 0,05 en alle andere klassen met 0 .
dus de classificatievector hiervoor zal zijn:
Om er zeker van te zijn dat deze kansen groter worden 1 , gebruiken we de softmax-functie.
Deze softmax-functie is als volgt gedefinieerd:
java vervangende tekenreeks
Hierna nemen we de 5 meest waarschijnlijke kandidaten in de vector.
en onze grondwaarheidsvector wordt als volgt gedefinieerd:
Vervolgens definiëren we onze Error-functie als volgt:
blokkeer YouTube-advertenties Android
Het berekent de minimale afstand tussen elke grondwaarheidsklasse en de voorspelde kandidaten, waarbij de afstandsfunctie d wordt gedefinieerd als:
- d=0 als
c_i=G_k - d=1 anders
De verliesfunctie voor dit voorbeeld is dus:
Omdat alle categorieën in de grondwaarheid zich in de voorspelde top-5-matrix bevinden, wordt het verlies dus 0.
VGG Architectuur:
De VGG-16-architectuur is een diep convolutioneel neuraal netwerk (CNN) ontworpen voor beeldclassificatietaken. Het werd geïntroduceerd door de Visual Geometry Group van de Universiteit van Oxford. VGG-16 kenmerkt zich door zijn eenvoud en uniforme architectuur, waardoor het gemakkelijk te begrijpen en te implementeren is.
int parseint
De VGG-16-configuratie bestaat doorgaans uit 16 lagen, waaronder 13 convolutionele lagen en 3 volledig verbonden lagen. Deze lagen zijn georganiseerd in blokken, waarbij elk blok meerdere convolutionele lagen bevat, gevolgd door een laag met maximale pooling voor downsampling.

VGG-16 architectuurkaart
Hier is een overzicht van de VGG-16-architectuur op basis van de verstrekte details:
- Invoerlaag:
- Invoerafmetingen: (224, 224, 3)
- Convolutionele lagen (64 filters, 3×3 filters, dezelfde opvulling):
- Twee opeenvolgende convolutionele lagen met elk 64 filters en een filtergrootte van 3×3.
- Dezelfde opvulling wordt toegepast om de ruimtelijke afmetingen te behouden.
- Maximale poollaag (2×2, stap 2):
- Max-pooling-laag met een zwembadgrootte van 2×2 en een pas van 2.
- Convolutionele lagen (128 filters, 3×3 filters, dezelfde opvulling):
- Twee opeenvolgende convolutionele lagen met elk 128 filters en een filtergrootte van 3×3.
- Maximale poollaag (2×2, pas 2):
- Max-pooling-laag met een zwembadgrootte van 2×2 en een pas van 2.
- Convolutionele lagen (256 filters, 3×3 filters, dezelfde opvulling):
- Twee opeenvolgende convolutionele lagen met elk 256 filters en een filtergrootte van 3×3.
- Convolutionele lagen (512 filters, 3×3 filters, dezelfde opvulling):
- Twee sets van drie opeenvolgende convolutionele lagen met elk 512 filters en een filtergrootte van 3×3.
- Maximale poollaag (2×2, pas 2):
- Max-pooling-laag met een zwembadgrootte van 2×2 en een pas van 2.
- Stapel convolutionele lagen en maximale pooling:
- Twee extra convolutionele lagen na de vorige stapel.
- Filtergrootte: 3×3.
- Afvlakking:
- Maak de uitvoerfeaturekaart (7x7x512) plat in een vector met de grootte 25088.
- Volledig verbonden lagen:
- Drie volledig verbonden lagen met ReLU-activering.
- Eerste laag met invoergrootte 25088 en uitvoergrootte 4096.
- Tweede laag met invoergrootte 4096 en uitvoergrootte 4096.
- Derde laag met invoergrootte 4096 en uitvoergrootte 1000, overeenkomend met de 1000 klassen in de ILSVRC-uitdaging.
- Softmax-activering wordt toegepast op de uitvoer van de derde volledig verbonden laag voor classificatie.
Deze architectuur volgt de verstrekte specificaties, inclusief het gebruik van de ReLU-activeringsfunctie en de uiteindelijke, volledig verbonden laag-uitvoerkansen voor 1000 klassen met behulp van softmax-activering.
VGG-16-configuratie:
Het belangrijkste verschil tussen VGG-16-configuraties C en D ligt in het gebruik van filtergroottes in sommige convolutionele lagen. Hoewel beide versies voornamelijk 3×3-filters gebruiken, zijn er in versie D gevallen waarin in plaats daarvan 1×1-filters worden gebruikt. Deze kleine variatie resulteert in een verschil in het aantal parameters, waarbij versie D een iets groter aantal parameters heeft vergeleken met versie C. Beide versies behouden echter de algemene architectuur en principes van het VGG-16-model.

Verschillende VGG-configuratie
Objectlokalisatie in afbeelding:
Om lokalisatie uit te voeren, moeten we de klassenscore vervangen door locatiecoördinaten van het begrenzingsvak. De locatie van een begrenzend kader wordt weergegeven door de 4D-vector (middelste coördinaten (x,y), hoogte, breedte). Er zijn twee versies van de lokalisatiearchitectuur, één is een selectiekader dat wordt gedeeld door verschillende kandidaten (de uitvoer is 4 parametervector) en de andere is een selectiekader dat klassespecifiek is (de uitvoer is 4000 parametervector). Het artikel experimenteerde met beide benaderingen van VGG -16 (D) architectuur. Hier moeten we ook het verlies veranderen van classificatieverlies naar regressieverliesfuncties (zoals MSE ) die de afwijking van het voorspelde verlies van de grondwaarheid bestraffen.
Resultaten: VGG-16 was een van de best presterende architecturen in de ILSVRC-uitdaging 2014. Het was de tweede plaats in de classificatietaak met een top-5 classificatiefout van 7,32% (alleen achter GoogleLeNet met een classificatiefout van 6,66% ). Het was ook de winnaar van de lokalisatietaak met 25,32% lokalisatiefout.
Beperkingen van VGG 16:
- Het is erg langzaam om te trainen (het originele VGG-model werd 2-3 weken getraind op de Nvidia Titan GPU).
- De grootte van VGG-16 getrainde imageNet-gewichten is 528 MB. Het kost dus behoorlijk veel schijfruimte en bandbreedte, wat het inefficiënt maakt.
- 138 miljoen parameters leiden tot een exploderend gradiëntprobleem.
Verdere verbeteringen: Resnets zijn geïntroduceerd om het probleem van exploderende gradiënten te voorkomen dat zich voordeed in VGG-16.