Perché le RNN di solito hanno meno livelli nascosti rispetto alle CNN?


8

Le CNN possono avere centinaia di livelli nascosti e poiché sono spesso utilizzati con i dati delle immagini, avere molti livelli acquisisce una maggiore complessità.

Tuttavia, per quanto ho visto, gli RNN di solito hanno pochi livelli, ad esempio 2-4. Ad esempio, per la classificazione dell'elettrocardiogramma (ECG), ho visto documenti che utilizzano LSTM con 4 strati e CNN con 10-15 strati con risultati simili.

Questo perché gli RNN / LSTM sono più difficili da addestrare se sono più profondi (a causa di problemi di sfumatura graduale) o perché gli RNN / LSTM tendono a sovrautilizzare rapidamente i dati sequenziali?

Risposte:


3

CNN e RNN dispongono di metodi di estrazione:

Le CNN tendono ad estrarre caratteristiche spaziali. Supponiamo di avere un totale di 10 livelli di convoluzione impilati uno sopra l'altro. Il kernel del 1 ° livello estrarrà le caratteristiche dall'input. Questa mappa delle caratteristiche viene quindi utilizzata come input per il livello di convoluzione successivo che produce nuovamente una mappa delle caratteristiche dalla mappa delle caratteristiche di input.

Allo stesso modo, le funzioni vengono estratte livello per livello dall'immagine di input. Se l'input è una piccola immagine di 32 * 32 pixel, avremo sicuramente bisogno di meno livelli di convoluzione. Un'immagine più grande di 256 * 256 avrà una complessità relativamente più elevata di funzionalità.

Gli RNN sono estrattori di funzioni temporali in quanto contengono una memoria delle attivazioni di layer precedenti. Estraggono funzionalità come una NN, ma le RNN ricordano le funzionalità estratte nei timestep. Gli RNN potrebbero anche ricordare le caratteristiche estratte tramite i livelli di convoluzione. Dal momento che detengono un tipo di memoria, persistono nelle caratteristiche temporalmente / temporali.


In caso di classificazione degli elettrocardiogrammi:

Sulla base degli articoli che leggi, sembra che,

I dati ECG potrebbero essere facilmente classificati utilizzando le funzioni temporali con l'aiuto di RNN. Le caratteristiche temporali stanno aiutando il modello a classificare correttamente gli ECG. Pertanto, l'utilizzo di RNN è meno complesso.

Le CNN sono più complesse perché,

I metodi di estrazione delle funzioni utilizzati dalle CNN portano a caratteristiche che non sono abbastanza potenti da riconoscere in modo univoco gli ECG. Pertanto, è necessario un numero maggiore di livelli di convoluzione per estrarre quelle caratteristiche minori per una migliore classificazione.

Alla fine,

Una funzione forte fornisce meno complessità al modello mentre una funzione più debole deve essere estratta con livelli complessi.


Questo perché gli RNN / LSTM sono più difficili da addestrare se sono più profondi (a causa di problemi di sfumatura graduale) o perché gli RNN / LSTM tendono a sovrautilizzare rapidamente i dati sequenziali?

Questo potrebbe essere preso come una prospettiva di pensiero. Gli LSTM / RNN sono inclini a un eccesso di adattamento in cui uno dei motivi potrebbe essere il problema del gradiente evanescente, come menzionato da @Ismael EL ATIFI nei commenti.

Ringrazio @Ismael EL ATIFI per le correzioni.


4
"Gli LSTM / RNN sono inclini a un eccesso di adattamento a causa del problema del gradiente di scomparsa." Non sono d'accordo. Il superamento non può essere causato dal problema del gradiente di fuga solo perché il gradiente di fuga impedisce che i parametri dei primi strati vengano aggiornati correttamente e quindi si adattino troppo. "I livelli di convoluzione non si adattano generalmente, sono estrattori di funzioni." I livelli di convoluzione POSSONO adattarsi esattamente come qualsiasi altro livello addestrabile e qualsiasi CNN si adatterà sicuramente se ha troppi parametri rispetto alla quantità e varietà di dati su cui viene addestrato.
Ismael EL ATIFI

1

Informazioni sul numero di livelli

Il motivo può essere compreso osservando l'architettura di una CNN e di un LSTM e come potrebbero operare sui dati delle serie temporali. Ma dovrei dire che il numero di strati è qualcosa che dipende fortemente dal problema che stai cercando di risolvere. Potresti essere in grado di risolvere una classificazione ECG utilizzando pochi livelli LSTM, ma per il riconoscimento delle attività dai video avrai bisogno di più livelli.

Mettendo da parte questo, ecco come una CNN e un LSTM potrebbero elaborare un segnale di serie temporale. Un segnale molto semplice in cui dopo tre cicli positivi si ottiene un ciclo negativo.

CNN vs LSTMs

Per una CNN per vedere questo semplice schema ci vogliono 4 strati in questo esempio. Quando una CNN elabora un ingresso serie temporale, le uscite di una convoluzione non conoscono le uscite precedenti (ovvero non sono collegate). Tuttavia, un LSTM può farlo semplicemente usando un singolo livello in quanto può ricordare schemi temporali fino a 100s di passi temporali. Perché un output si basa sull'input corrente e sugli input precedenti che il modello ha visto.

Non sto dicendo che questa è l'unica ragione, ma è probabilmente uno dei principali fattori per cui le CNN richiedono più livelli e le LSTM no per i dati delle serie temporali.

A proposito di sfumature che svaniscono e di adattamento eccessivo

È probabile che il gradiente di sparizione diventi un problema all'interno di un singolo livello piuttosto che tra i diversi livelli. Cioè quando si elaborano molti passaggi sequenziali la conoscenza dei primi passi probabilmente scomparirà. E non credo che i modelli sequenziali possano sovrautilizzare i dati delle serie temporali se li regolarizzi correttamente. Quindi questa scelta è probabilmente più influenzata dall'architettura / capacità dei modelli che dal gradiente di fuga o dall'adattamento eccessivo.


0

Vedo 2 possibili ragioni per cui un RNN potrebbe richiedere un numero inferiore di layer rispetto a un CNN per raggiungere le stesse prestazioni:
- I layer RNN sono generalmente layer completamente collegati che hanno più parametri di uno layer convoluzionale.
- un RNN ha alcuni componenti che consentono di combinare input per moltiplicazione a differenza di un CNN che può combinare input solo per addizione ponderata. Pertanto, la capacità moltiplicativa di RNN gli dà più "potenza" per il calcolo delle funzionalità. La CNN avrebbe bisogno di molti strati per "imitare" questa capacità moltiplicativa.

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.