Un'architettura di rete neurale convoluzionale (CNN) è un modello di deep learning progettato per l'elaborazione di dati strutturati simili a griglie, come le immagini. È costituito da più livelli, inclusi livelli convoluzionali, di pooling e completamente connessi. Le CNN sono molto efficaci per attività come la classificazione delle immagini, il rilevamento di oggetti e la segmentazione delle immagini grazie alle loro capacità di estrazione gerarchica delle caratteristiche.
VGG-16
Il modello VGG-16 è un'architettura di rete neurale convoluzionale (CNN) proposta dal Visual Geometry Group (VGG) dell'Università di Oxford. Si caratterizza per la sua profondità, composta da 16 strati, di cui 13 strati convoluzionali e 3 strati completamente collegati. VGG-16 è rinomato per la sua semplicità ed efficacia, nonché per la sua capacità di ottenere ottime prestazioni in vari compiti di visione artificiale, tra cui la classificazione delle immagini e il riconoscimento degli oggetti. L’architettura del modello presenta uno stack di strati convoluzionali seguiti da strati di max-pooling, con profondità progressivamente crescente. Questo design consente al modello di apprendere rappresentazioni gerarchiche complesse di caratteristiche visive, portando a previsioni robuste e accurate. Nonostante la sua semplicità rispetto alle architetture più recenti, VGG-16 rimane una scelta popolare per molte applicazioni di deep learning grazie alla sua versatilità e alle eccellenti prestazioni.
L'ImageNet Large Scale Visual Recognition Challenge (ILSVRC) è una competizione annuale di visione artificiale in cui i team affrontano compiti tra cui la localizzazione di oggetti e la classificazione delle immagini. VGG16, proposto da Karen Simonyan e Andrew Zisserman nel 2014, ha ottenuto i primi posti in entrambi i compiti, rilevando oggetti di 200 classi e classificando le immagini in 1000 categorie.
forzatura cache pulita npm

Architettura VGG-16
Questo modello raggiunge 92,7% dei primi 5 testare l'accuratezza sul set di dati ImageNet che contiene 14 milioni di immagini appartenenti a 1000 classi.
Obiettivo del modello VGG-16:
Il set di dati ImageNet contiene immagini di dimensione fissa di 224*224 e hanno canali RGB. Quindi, abbiamo un tensore di (224, 224, 3) come nostro input. Questo modello elabora l'immagine in input e restituisce in output il vettore a di 1000 valori:
Questo vettore rappresenta la probabilità di classificazione per la classe corrispondente. Supponiamo di avere un modello che prevede che l'immagine appartenga alla classe 0 con probabilità 1 , classe 1 con probabilità 0,05 , classe 2 con probabilità 0,05 , classe 3 con probabilità 0,03 , classe 780 con probabilità 0,72 , classe 999 con probabilità 0,05 e tutte le altre classi con 0 .
quindi, il vettore di classificazione per questo sarà:
selezione ordinamento java
Per assicurarsi che queste probabilità si aggiungano 1 , utilizziamo la funzione softmax.
Questa funzione softmax è definita come segue:
Successivamente inseriamo nel vettore i 5 candidati più probabili.
e il nostro vettore di verità a terra è definito come segue:
Quindi definiamo la nostra funzione Errore come segue:
un array in Java
Calcola la distanza minima tra ciascuna classe di verità a terra e i candidati previsti, dove la funzione di distanza d è definita come:
- d=0 se
c_i=G_k - d=1 altrimenti
Quindi, la funzione di perdita per questo esempio è:
Poiché tutte le categorie nella verità di base si trovano nella matrice delle prime 5 previste, la perdita diventa 0.
VGG Architettura:
L'architettura VGG-16 è una rete neurale convoluzionale profonda (CNN) progettata per attività di classificazione delle immagini. È stato introdotto dal Visual Geometry Group dell'Università di Oxford. VGG-16 è caratterizzato dalla sua semplicità e architettura uniforme, che lo rendono facile da comprendere e implementare.
checkout con git
La configurazione VGG-16 consiste tipicamente di 16 strati, inclusi 13 strati convoluzionali e 3 strati completamente connessi. Questi strati sono organizzati in blocchi, ciascuno dei quali contiene più strati convoluzionali seguiti da uno strato di pooling massimo per il downsampling.

Mappa dell'architettura VGG-16
Ecco una ripartizione dell'architettura VGG-16 basata sui dettagli forniti:
- Livello di input:
- Dimensioni di input: (224, 224, 3)
- Strati convoluzionali (64 filtri, filtri 3×3, stessa imbottitura):
- Due strati convoluzionali consecutivi con 64 filtri ciascuno e una dimensione del filtro di 3×3.
- La stessa imbottitura viene applicata per mantenere le dimensioni spaziali.
- Livello di pooling massimo (2×2, passo 2):
- Strato di pooling massimo con una dimensione del pool di 2×2 e una falcata di 2.
- Strati convoluzionali (128 filtri, filtri 3×3, stessa imbottitura):
- Due strati convoluzionali consecutivi con 128 filtri ciascuno e una dimensione del filtro di 3×3.
- Livello di pooling massimo (2×2, passo 2):
- Strato di pooling massimo con una dimensione del pool di 2×2 e una falcata di 2.
- Livelli convoluzionali (256 filtri, filtri 3×3, stessa imbottitura):
- Due strati convoluzionali consecutivi con 256 filtri ciascuno e una dimensione del filtro di 3×3.
- Strati convoluzionali (512 filtri, filtri 3×3, stessa imbottitura):
- Due serie di tre strati convoluzionali consecutivi con 512 filtri ciascuno e una dimensione del filtro di 3×3.
- Livello di pooling massimo (2×2, passo 2):
- Strato di pooling massimo con una dimensione del pool di 2×2 e una falcata di 2.
- Stack di livelli convoluzionali e pooling massimo:
- Due strati convoluzionali aggiuntivi dopo lo stack precedente.
- Dimensione del filtro: 3×3.
- Appiattimento:
- Appiattisci la mappa delle caratteristiche di output (7x7x512) in un vettore di dimensione 25088.
- Livelli completamente connessi:
- Tre livelli completamente connessi con attivazione ReLU.
- Primo livello con dimensione di input 25088 e dimensione di output 4096.
- Secondo livello con dimensione di input 4096 e dimensione di output 4096.
- Terzo livello con dimensione di input 4096 e dimensione di output 1000, corrispondente alle 1000 classi nella sfida ILSVRC.
- L'attivazione Softmax viene applicata all'uscita del terzo livello completamente connesso per la classificazione.
Questa architettura segue le specifiche fornite, incluso l'uso della funzione di attivazione ReLU e il livello finale completamente connesso che genera probabilità per 1000 classi utilizzando l'attivazione softmax.
Configurazione VGG-16:
La differenza principale tra le configurazioni C e D del VGG-16 risiede nell'uso delle dimensioni del filtro in alcuni strati convoluzionali. Sebbene entrambe le versioni utilizzino prevalentemente filtri 3×3, nella versione D ci sono casi in cui vengono invece utilizzati filtri 1×1. Questa leggera variazione si traduce in una differenza nel numero di parametri, con la versione D che ha un numero di parametri leggermente superiore rispetto alla versione C. Tuttavia, entrambe le versioni mantengono l'architettura generale e i principi del modello VGG-16.

Configurazione VGG diversa
Localizzazione dell'oggetto nell'immagine:
Per eseguire la localizzazione, dobbiamo sostituire il punteggio della classe con le coordinate di posizione del riquadro di delimitazione. La posizione di un riquadro di delimitazione è rappresentata dal vettore 4-D (coordinate del centro (x,y), altezza, larghezza). Esistono due versioni dell'architettura di localizzazione, una è il riquadro di delimitazione condiviso tra diversi candidati (l'output è 4 vettore dei parametri) e l'altro è un riquadro di delimitazione specifico della classe (l'output è 4000 vettore dei parametri). L'articolo ha sperimentato entrambi gli approcci sull'architettura VGG -16 (D). Qui dobbiamo anche cambiare la perdita da perdita di classificazione a funzioni di perdita di regressione (come MSE ) che penalizzano lo scostamento della perdita prevista dalla realtà.
Risultati: VGG-16 è stata una delle architetture con le migliori prestazioni nella sfida ILSVRC 2014. Si è classificata seconda nel compito di classificazione con un errore di classificazione tra i primi 5 di 7,32% (solo dietro GoogLeNet con un errore di classificazione di 6,66% ). È stato anche il vincitore del compito di localizzazione con 25,32% errore di localizzazione.
Limitazioni del VGG 16:
- L'addestramento è molto lento (il modello VGG originale è stato addestrato sulla GPU Nvidia Titan per 2-3 settimane).
- La dimensione dei pesi imageNet addestrati VGG-16 è 528 MB. Pertanto, richiede molto spazio su disco e larghezza di banda, il che lo rende inefficiente.
- 138 milioni di parametri portano al problema dei gradienti esplosivi.
Ulteriori miglioramenti: vengono introdotti i Resnet per prevenire il problema dell'esplosione dei gradienti che si verificava in VGG-16.