RNN vs CNN ad alto livello


53

Ho pensato alle reti neuronali ricorrenti (RNN) e alle loro varietà e alle reti neurali convoluzionali (CNN) e alle loro varietà.

Sarebbe giusto dire questi due punti:

  • Utilizzare le CNN per suddividere un componente (come un'immagine) in sottocomponenti (come un oggetto in un'immagine, come il contorno dell'oggetto nell'immagine, ecc.)
  • Utilizzare gli RNN per creare combinazioni di sottocomponenti (didascalie delle immagini, generazione di testo, traduzione linguistica, ecc.)

Gradirei se qualcuno volesse segnalare eventuali inesattezze in queste dichiarazioni. Il mio obiettivo qui è quello di ottenere una base più chiara sugli usi di CNN e RNN.

Risposte:


42

Una CNN imparerà a riconoscere i modelli attraverso lo spazio. Quindi, come dici tu, una CNN imparerà a riconoscere i componenti di un'immagine (es. Linee, curve, ecc.) E quindi imparerà a combinare questi componenti per riconoscere strutture più grandi (es. Facce, oggetti, ecc.).

Si potrebbe dire, in modo molto generale, che un RNN imparerà allo stesso modo a riconoscere gli schemi nel tempo. Quindi un RNN che è addestrato per tradurre il testo potrebbe imparare che "cane" dovrebbe essere tradotto in modo diverso se preceduto dalla parola "caldo".

Tuttavia, il meccanismo con cui i due tipi di NN rappresentano questi schemi è diverso. Nel caso di una CNN, stai cercando gli stessi schemi su tutti i diversi sottocampi dell'immagine. Nel caso di un RNN stai (nel caso più semplice) alimentare i livelli nascosti dal passaggio precedente come input aggiuntivo al passaggio successivo. Mentre RNN costruisce la memoria in questo processo, non sta cercando gli stessi schemi in diversi intervalli di tempo nello stesso modo in cui una CNN sta cercando gli stessi schemi in diverse regioni dello spazio.

Dovrei anche notare che quando dico "tempo" e "spazio" qui, non dovrebbe essere preso troppo alla lettera. È possibile eseguire un RNN su una singola immagine per la didascalia delle immagini, ad esempio, e il significato di "tempo" sarebbe semplicemente l'ordine in cui vengono elaborate diverse parti dell'immagine. Quindi gli oggetti inizialmente elaborati informeranno la didascalia degli oggetti successivi elaborati.


3
Puoi ottenere una buona intuizione per le differenze del modello RNN da karpathy.github.io/assets/rnn/diags.jpeg - un grafico molto copiato. Le CNN sono insieme alle MLP e ad altri modelli non ricorsivi in ​​quanto implementano solo il caso del modello uno a uno.
Neil Slater,

@NeilSlater Conosco addirittura l'articolo originale di questa immagine, ma non ho mai potuto estrarre nulla di utile da esso. Per favore, potresti elaborare ciò che hai imparato dall'immagine?
Ciao Angelo

2
@ Hi-Angel: L'immagine visualizza possibili relazioni tra sequenze e singole entità che possono essere mappate da un modello. Se capisci già bene le permutazioni, potresti non ottenere nulla da esso. La ragione per cui l'immagine appare nell'articolo è che dimostra la relativa flessibilità degli RNN: un RNN può essere applicato a tutti i diversi tipi di problemi mostrati (ad es. Può essere usato in problemi di traduzione linguistica che corrispondono al quarto oggetto), mentre un la rete feed-forward si applica solo ai problemi che corrispondono alla prima immagine.
Neil Slater,


23

Le differenze tra CNN e RNN sono le seguenti:

CNN:

  1. La CNN accetta input di dimensioni fisse e genera output di dimensioni fisse.

  2. La CNN è un tipo di rete neurale artificiale feed-forward - sono variazioni di percetroni multistrato progettati per utilizzare quantità minime di preelaborazione.

  3. Le CNN usano un modello di connettività tra i suoi neuroni ispirato all'organizzazione della corteccia visiva animale, i cui singoli neuroni sono disposti in modo tale da rispondere alle regioni sovrapposte piastrellando il campo visivo.

  4. Le CNN sono ideali per l'elaborazione di immagini e video.

RNN:

  1. RNN può gestire lunghezze di ingresso / uscita arbitrarie.

  2. RNN, a differenza delle reti neurali feedforward, può utilizzare la propria memoria interna per elaborare sequenze arbitrarie di input.

  3. Le reti neurali ricorrenti usano le informazioni sulle serie temporali (ciò che ho parlato per ultimo avrà un impatto su ciò che parlerò dopo).

  4. Gli RNN sono ideali per l'analisi del testo e del parlato.



Le CNN senza layer densi possono accettare input di dimensioni arbitrarie.
Mikael Rousson,

1

Penso che le due affermazioni non siano corrette poiché la CNN non suddivide il componente in sottocomponenti, ma piuttosto usa pesi condivisi su tutti i sottocomponenti sovrapposti (campi ricettivi) per trovare lo stesso schema. Non è un algoritmo di divisione e conquista.

In generale, la CNN tende ad estrarre caratteristiche locali e invarianti di posizione (indipendentemente dalla loro posizione) e le RNN tendono a trovare modelli diffusi nel tempo anche se sono lontani.

Ad esempio, nel caso dell'applicazione di entrambi al linguaggio naturale, la CNN è brava a estrarre funzionalità locali e invarianti di posizione, ma non acquisisce dipendenze semantiche a lungo raggio. Considera solo le frasi chiave locali.

Quindi, quando il risultato è determinato dall'intera frase o da una dipendenza semantica a lungo raggio, la CNN non è efficace, come mostrato in questo documento in cui gli autori hanno confrontato entrambe le architetture sugli tak della PNL.

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.