Cosa fanno i layer completamente connessi nelle CNN?


19

Comprendo i livelli convoluzionali e di raggruppamento, ma non riesco a vedere il motivo di un livello completamente connesso nelle CNN. Perché il livello precedente non è collegato direttamente al livello di output?

Risposte:


31

L'output dai livelli convoluzionali rappresenta funzionalità di alto livello nei dati. Mentre quell'output potrebbe essere appiattito e collegato al layer di output, l'aggiunta di un layer completamente connesso è un modo (di solito) economico di apprendere combinazioni non lineari di queste funzionalità.

Essenzialmente gli strati convoluzionali stanno fornendo uno spazio caratteristico, a bassa dimensione e in qualche modo invariante, e lo strato completamente connesso sta imparando una funzione (possibilmente non lineare) in quello spazio.

NOTA: è banale convertire da layer FC a layer Conv. La conversione di questi livelli FC principali in livelli Conv può essere utile come descritto in questa pagina.


Grazie per la tua risposta James. Quindi stiamo imparando i pesi tra gli strati collegati con la propagazione posteriore, è corretto?
Jeff

Sì, l'errore si propaga indietro attraverso il livello completamente collegato ai livelli convoluzionale e di pooling.
jamesmf,

Ok. Quindi lo scopo del livello fc può essere pensato come un PCA non lineare, rettifica le caratteristiche "buone" e diminuisce le altre imparando l'intero set di pesi.
Jeff

1
Principalmente ti consente una combinazione non lineare di funzionalità. Tutte le funzionalità potrebbero essere buone (supponendo che tu non abbia funzionalità "morte"), ma le combinazioni di tali funzionalità potrebbero essere anche migliori.
jamesmf,

@jamesmf: cos'è una funzione morta? e quali sono le combinazioni di funzionalità di cui stai parlando? cosa intendi con una combinazione non lineare? L'uso di un livello completamente connesso è obbligatorio in un cnn? o può essere sostituito senza alcun effetto negativo sulla precisione? Grazie mille in anticipo. Le sarei grato se potessi dare un'intuizione sulle domande che ho posto.
Rika,

4

Ho trovato utile questa risposta di Anil-Sharma su Quora .

Possiamo dividere l'intera rete (per la classificazione) in due parti:

  • Estrazione delle funzionalità : negli algoritmi di classificazione convenzionali, come gli SVM, abbiamo usato per estrarre le funzionalità dai dati per far funzionare la classificazione. Gli strati convoluzionali servono allo stesso scopo dell'estrazione di feature. Le CNN acquisiscono una migliore rappresentazione dei dati e quindi non è necessario progettare le funzionalità.

  • Classificazione : dopo l'estrazione delle caratteristiche dobbiamo classificare i dati in varie classi, questo può essere fatto usando una rete neurale completamente connessa (FC). Al posto dei livelli completamente collegati, possiamo anche usare un classificatore convenzionale come SVM. Ma generalmente finiamo per aggiungere gli strati FC per rendere il modello end-to-end allenabile.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.