In questo post, discuterò le architetture comunemente utilizzate per le reti convoluzionali. Come vedrai, quasi tutte le architetture CNN seguono gli stessi principi generali di progettazione di applicare successivamente strati convoluzionali all’input, periodicamente ridimensionando le dimensioni spaziali aumentando il numero di mappe di funzionalità.,

Mentre le classiche architetture di rete erano costituite semplicemente da strati convoluzionali impilati, le architetture moderne esplorano modi nuovi e innovativi per costruire strati convoluzionali in un modo che consente un apprendimento più efficiente. Quasi tutte queste architetture sono basate su un’unità ripetibile che viene utilizzata in tutta la rete.

Queste architetture servono come linee guida generali di progettazione che i professionisti dell’apprendimento automatico si adatteranno per risolvere vari compiti di visione artificiale., Queste architetture servono come estrattori di funzionalità avanzate che possono essere utilizzate per la classificazione delle immagini, il rilevamento di oggetti, la segmentazione delle immagini e molte altre attività più avanzate.

Classic architetture di rete (incluso per scopi storici)

  • LeNet-5
  • AlexNet
  • VGG 16

Moderne architetture di rete

  • Inizio
  • ResNet
  • ResNeXt
  • DenseNet

LeNet-5

Yann Lecun del LeNet-5 modello è stato sviluppato nel 1998 per identificare manoscritta cifre codice postale riconoscimento del servizio postale., Questo modello pionieristico ha introdotto in gran parte la rete neurale convoluzionale come la conosciamo oggi.

Architettura

I livelli convoluzionali utilizzano un sottoinsieme dei canali del livello precedente per ogni filtro per ridurre il calcolo e forzare un’interruzione di simmetria nella rete. I livelli di sottocampionamento utilizzano una forma di pooling medio.

Parametri: 60.000

Carta: apprendimento basato su gradiente applicato al riconoscimento dei documenti

AlexNet

AlexNet è stato sviluppato da Alex Krizhevsky et al. nel 2012 per competere nel concorso ImageNet., L’architettura generale è abbastanza simile a LeNet-5, sebbene questo modello sia considerevolmente più grande. Il successo di questo modello (che ha preso il primo posto nel concorso ImageNet 2012) ha convinto molta comunità di computer vision a dare un’occhiata seria al deep learning per le attività di computer vision.

Architettura

Parametri: 60 milioni

Paper: Classificazione ImageNet con reti neurali convoluzionali profonde

VGG-16

La rete VGG, introdotta nel 2014, offre una variante più profonda ma più semplice delle strutture convoluzionali discusse sopra., Al momento della sua introduzione, questo modello era considerato molto profondo.

Architettura

Parametri: 138 milioni

Carta: Reti convoluzionali molto profonde per il riconoscimento di immagini su larga scala

Inception (GoogLeNet)

Nel 2014, i ricercatori di Google hanno introdotto la rete Inception che ha preso il primo posto nel concorso ImageNet 2014 per le sfide di classificazione e rilevamento.

Il modello è costituito da un’unità di base denominata “cella di inizio” in cui eseguiamo una serie di circonvoluzioni a diverse scale e successivamente aggreghiamo i risultati., Per salvare il calcolo, vengono utilizzate circonvoluzioni 1×1 per ridurre la profondità del canale di ingresso. Per ogni cella, impariamo una serie di filtri 1×1, 3×3 e 5×5 che possono imparare ad estrarre funzionalità a diverse scale dall’input. Viene anche utilizzato il pool massimo, anche se con lo” stesso ” padding per preservare le dimensioni in modo che l’output possa essere correttamente concatenato.

Questi ricercatori hanno pubblicato un documento di follow-up che ha introdotto alternative più efficienti alla cellula iniziale originale., Le circonvoluzioni con filtri spaziali di grandi dimensioni (come 5×5 o 7×7) sono vantaggiose in termini di espressività e capacità di estrarre funzionalità su scala più ampia, ma il calcolo è sproporzionatamente costoso. I ricercatori hanno sottolineato che una convoluzione 5×5 può essere rappresentata più a buon mercato da due filtri 3×3 impilati.

Mentre un $5 \5 \times c$ filter richiede $25$ parametri, due $3 \times 3 \times c$ filtri richiedono solo $18c$ parametri. Per rappresentare con maggiore precisione un filtro 5×5, non dovremmo usare attivazioni non lineari tra i due livelli 3×3., Tuttavia, è stato scoperto che ” l’attivazione lineare era sempre inferiore all’utilizzo di unità lineari rettificate in tutte le fasi della fattorizzazione.”

È stato anche dimostrato che le circonvoluzioni 3×3 potrebbero essere ulteriormente decostruite in successive circonvoluzioni 3×1 e 1×3.

Generalizzando questa intuizione, possiamo in modo più efficiente calcolare un $n \times n$ convoluzione come $1 \times n$ convoluzione seguita da un $n \times 1$ di convoluzione.

Architettura

Al fine di migliorare le prestazioni complessive della rete, vengono aggiunte due uscite ausiliarie in tutta la rete., In seguito si scoprì che la prima uscita ausiliaria non aveva alcun effetto visibile sulla qualità finale della rete. L’aggiunta di uscite ausiliarie ha beneficiato principalmente delle prestazioni finali del modello, convergendo a un valore leggermente migliore rispetto alla stessa architettura di rete senza un ramo ausiliario. Si ritiene che l’aggiunta di uscite ausiliarie abbia avuto un effetto regolarizzante sulla rete.

Una versione riveduta e approfondita della rete Inception che sfrutta le celle Inception più efficienti è mostrata di seguito.,

Parametri: 5 milioni (V1) e 23 milioni (V3)

Documenti:

  • Andare più in profondità con le circonvoluzioni
  • Ripensare l’architettura di inizio per la visione artificiale

ResNet

Le reti residue profonde erano un’idea rivoluzionaria che consentiva lo sviluppo di reti molto più profonde (centinaia di strati rispetto a decine di strati).

È un principio generalmente accettato che le reti più profonde sono in grado di apprendere funzioni e rappresentazioni più complesse dell’input che dovrebbero portare a prestazioni migliori., Tuttavia, molti ricercatori hanno osservato che l’aggiunta di più strati alla fine ha avuto un effetto negativo sulla performance finale. Questo comportamento non era intuitivamente previsto, come spiegato dagli autori di seguito.

Consideriamo un’architettura meno profonda e la sua controparte più profonda che aggiunge più livelli su di essa. Esiste una soluzione per costruzione al modello più profondo: i livelli aggiunti sono la mappatura dell’identità e gli altri livelli vengono copiati dal modello meno profondo appreso., L’esistenza di questa soluzione costruita indica che un modello più profondo non dovrebbe produrre errori di formazione più elevati rispetto alla sua controparte meno profonda. Ma gli esperimenti mostrano che i nostri attuali risolutori non sono in grado di trovare soluzioni che siano comparabilmente buone o migliori della soluzione costruita (o incapaci di farlo in tempo fattibile).,

Questo fenomeno è definito dagli autori come il problema di degradazione – alludendo al fatto che sebbene migliori tecniche di inizializzazione dei parametri e normalizzazione dei batch consentano la convergenza di reti più profonde, spesso convergono a un tasso di errore più elevato rispetto alle loro controparti meno profonde. Nel limite, semplicemente impilando più strati degrada le prestazioni finali del modello.,

Gli autori propongono un rimedio a questo problema di degradazione introducendo blocchi residui in cui gli strati intermedi di un blocco imparano una funzione residua con riferimento all’input del blocco. Puoi pensare a questa funzione residua come a una fase di perfezionamento in cui impariamo come regolare la mappa delle funzionalità di input per funzionalità di qualità superiore. Ciò si confronta con una rete “semplice” in cui ogni livello dovrebbe apprendere nuove e distinte mappe di funzionalità., Nel caso in cui non sia necessario alcun perfezionamento, gli strati intermedi possono imparare a regolare gradualmente i loro pesi verso lo zero in modo tale che il blocco residuo rappresenti una funzione di identità.

Nota: In seguito è stato scoperto che una leggera modifica all’unità proposta originale offre prestazioni migliori consentendo in modo più efficiente ai gradienti di propagarsi attraverso la rete durante l’allenamento.,

Reti residue larghe
Sebbene il documento originale ResNet si concentrasse sulla creazione di un’architettura di rete per consentire strutture più profonde alleviando il problema del degrado, altri ricercatori hanno sottolineato che aumentare la larghezza della rete (profondità del canale) può essere un modo più efficiente di espandere la capacità complessiva della rete.

Architettura

Ogni blocco colorato di livelli rappresenta una serie di circonvoluzioni della stessa dimensione., La mappatura delle funzionalità viene periodicamente ridimensionata dalla convoluzione a strisce accompagnata da un aumento della profondità del canale per preservare la complessità temporale per livello. Le linee tratteggiate indicano connessioni residue in cui proiettiamo l’ingresso tramite una convoluzione 1×1 per abbinare le dimensioni del nuovo blocco.

Il diagramma sopra visualizza l’architettura ResNet 34., Per il modello ResNet 50, sostituiamo semplicemente ogni blocco residuo a due strati con un blocco a collo di bottiglia a tre strati che utilizza convoluzioni 1×1 per ridurre e successivamente ripristinare la profondità del canale, consentendo un carico computazionale ridotto quando si calcola la convoluzione 3×3.,

Parametri: 25 milioni (ResNet 50)

Documenti:

  • Deep Residual Learning for Image Recognition
  • Identity Mapping in Deep Residual Networks
  • Wide Residual Networks

L’architettura ResNeXt è un’estensione della deep residual network che sostituisce il blocco residuo standard con uno che sfrutta una strategia “split-transform-merge” (es. percorsi ramificati all’interno di una cella) utilizzati nei modelli Inception., Semplicemente, piuttosto che eseguire circonvoluzioni sulla mappa completa delle caratteristiche di input, l’input del blocco viene proiettato in una serie di rappresentazioni dimensionali inferiori (canale) di cui applichiamo separatamente alcuni filtri convoluzionali prima di unire i risultati.

Questa idea è abbastanza simile alle circonvoluzioni di gruppo, che era un’idea proposta nel documento AlexNet come un modo per condividere il calcolo della convoluzione su due GPU. Invece di creare filtri con l’intera profondità del canale dell’input, l’input viene diviso in gruppi con ciascuno come mostrato di seguito.,

È stato scoperto che l’utilizzo di circonvoluzioni raggruppate ha portato a un grado di specializzazione tra gruppi in cui gruppi separati si sono concentrati su diverse caratteristiche dell’immagine di input.

Il documento ResNeXt si riferisce al numero di rami o gruppi come cardinalità della cella ResNeXt ed esegue una serie di esperimenti per comprendere i guadagni relativi delle prestazioni tra l’aumento della cardinalità, della profondità e della larghezza della rete. Gli esperimenti mostrano che l’aumento della cardinalità è più efficace nel beneficiare delle prestazioni del modello rispetto all’aumento della larghezza o della profondità della rete., Gli esperimenti suggeriscono anche che ” le connessioni residue sono utili per l’ottimizzazione, mentre le trasformazioni aggregate sono (utili per) rappresentazioni più forti.”

Architettura

L’architettura ResNeXt imita semplicemente i modelli ResNet, sostituendo i blocchi ResNet per il blocco ResNeXt.

Paper: Aggregated Residual Transformations for Deep Neural Networks

DenseNet

L’idea alla base delle reti convoluzionali dense è semplice: potrebbe essere utile fare riferimento a mappe di funzionalità precedenti nella rete., Pertanto, la mappa delle caratteristiche di ogni livello viene concatenata all’input di ogni livello successivo all’interno di un blocco denso. Ciò consente ai livelli successivi all’interno della rete di sfruttare direttamente le funzionalità dei livelli precedenti, incoraggiando il riutilizzo delle funzionalità all’interno della rete. Gli autori affermano: “la concatenazione delle feature-maps apprese da diversi livelli aumenta la variazione nell’input dei livelli successivi e migliora l’efficienza.”

Quando mi sono imbattuto per la prima volta in questo modello, ho pensato che avrebbe avuto un numero assurdo di parametri per supportare le connessioni dense tra i livelli., Tuttavia, poiché la rete è in grado di utilizzare direttamente qualsiasi mappa di funzionalità precedente, gli autori hanno scoperto che potevano funzionare con profondità del canale di uscita molto piccole (es. 12 filtri per strato), riducendo notevolmente il numero totale di parametri necessari. Gli autori si riferiscono al numero di filtri utilizzati in ogni livello convoluzionale come un “tasso di crescita”, k k$, poiché ogni livello successivo avrà channels k channels più canali dell’ultimo (come risultato dell’accumulo e della concatenazione di tutti i livelli precedenti all’input).,

Rispetto ai modelli ResNet, i DENSENET sono segnalati per ottenere prestazioni migliori con meno complessità.

Architettura

Per la maggior parte degli esperimenti nel documento, gli autori hanno imitato l’architettura generale del modello ResNet, semplicemente scambiando nel blocco denso come unità ripetuta.

Parametri:

  • 0.8 milioni (DenseNet-100, k=12)
  • 15.,3 milioni (DenseNet-250, k=24)
  • 40 milioni (DenseNet-190, k=40)

Carta: Reti convoluzionali densamente connesse
Video: CVPR 2017 Best Paper Award: Reti convoluzionali densamente connesse

Ulteriori letture