Qual è la differenza tra una rete neurale convoluzionale e una normale rete neurale?


18

Ho visto questi termini molto diffusi in questo sito, in particolare nei tag e .

So che una rete neurale è un sistema vagamente basato sul cervello umano. Ma qual è la differenza tra una rete neurale convoluzionale e una normale rete neurale? Uno è solo molto più complicato e, ahem, contorto rispetto all'altro?

Risposte:


23

TLDR: la rete neurale convoluzionale è una sottoclasse di reti neurali che hanno almeno uno strato di convoluzione. Sono ideali per acquisire informazioni locali (ad es. Pixel vicini in un'immagine o parole circostanti in un testo) e per ridurre la complessità del modello (formazione più rapida, necessità di un numero inferiore di campioni, riduzione delle possibilità di adattamento eccessivo).

Vedere il seguente grafico che illustra le varie architetture reti neurali tra cui profonda convenzionali-reti neurali: visualizzazione.


Reti neurali (NN) , o più precisamente reti neurali artificiali (ANN) , è una classe di algoritmi di Machine Learning che recentemente hanno ricevuto molta attenzione (di nuovo!) A causa della disponibilità di Big Data e di strutture di elaborazione veloce (la maggior parte di Deep Learning gli algoritmi sono essenzialmente diverse varianti di ANN).

La classe di ANN copre diverse architetture tra cui Convolutional Neural Networks ( CNN ), Recurrent Neural Networks ( RNN ), ad esempio LSTM e GRU , Autoencoder e Deep Belief Networks . Pertanto, la CNN è solo un tipo di ANN.

In generale, un ANN è una raccolta di unità connesse e sintonizzabili (alias nodi, neuroni e neuroni artificiali) che possono passare un segnale (di solito un valore reale) da un'unità a un'altra. Il numero di (strati di) unità, i loro tipi e il modo in cui sono collegati tra loro è chiamato architettura di rete.

Una CNN, in particolare, ha uno o più strati di unità di convoluzione . Un'unità di convoluzione riceve il suo input da più unità dal livello precedente che insieme creano una prossimità. Pertanto, le unità di input (che formano un piccolo quartiere) condividono i loro pesi.

Le unità di convoluzione (così come le unità di raggruppamento) sono particolarmente utili come:

  • Riducono il numero di unità nella rete (poiché sono mappature molte-a-una ). Ciò significa che ci sono meno parametri da imparare che riducono la possibilità di overfitting poiché il modello sarebbe meno complesso di una rete completamente connessa.
  • Considerano il contesto / informazioni condivise nei piccoli quartieri. Questo futuro è molto importante in molte applicazioni come elaborazione / mining di immagini, video, testi e sintesi vocale poiché gli input vicini (ad es. Pixel, cornici, parole, ecc.) Solitamente trasportano informazioni correlate.

Leggi quanto segue per ulteriori informazioni sulle CNN (profonde):

  1. Classificazione ImageNet con reti neurali profonde convoluzionali
  2. Andando più in profondità con le convoluzioni

ps ANN non è "un sistema basato vagamente sul cervello umano" ma piuttosto una classe di sistemi ispirati alle connessioni neuronali presenti nel cervello degli animali.


10

Le reti neurali convoluzionali (CNN) sono reti neurali con vincoli architetturali per ridurre la complessità computazionale e garantire l'invarianza traslazionale (la rete interpreta gli stessi schemi di input indipendentemente dalla traduzione - in termini di riconoscimento dell'immagine: una banana è una banana indipendentemente da dove si trova nella Immagine). Le reti neurali convoluzionali hanno tre importanti caratteristiche architettoniche.

Connettività locale: i neuroni in uno strato sono collegati solo ai neuroni nello strato successivo che sono spazialmente vicini a loro. Questo design riduce la stragrande maggioranza delle connessioni tra livelli consecutivi, ma mantiene quelle che contengono le informazioni più utili. Il presupposto qui è che i dati di input hanno un significato spaziale o, nell'esempio di visione artificiale, la relazione tra due pixel distanti è probabilmente meno significativa di due vicini vicini.

Pesi condivisi: questo è il concetto che rende le CNN "convoluzionali". Costringendo i neuroni di uno strato a condividere i pesi, il passaggio in avanti (che alimenta i dati attraverso la rete) diventa l'equivalente del convolgere un filtro sull'immagine per produrre una nuova immagine. La formazione delle CNN diventa quindi il compito di apprendere i filtri (decidere quali funzionalità dovresti cercare nei dati).

Pooling e ReLU: le CNN hanno due non linearità: livelli di pooling e funzioni ReLU. I livelli di pooling considerano un blocco di dati di input e trasmettono semplicemente il valore massimo. In questo modo si riducono le dimensioni dell'output e non sono necessari ulteriori parametri per l'apprendimento, pertanto i livelli di pooling vengono spesso utilizzati per regolare le dimensioni della rete e mantenere il sistema al di sotto di un limite computazionale. La funzione ReLU accetta un input, x e restituisce il massimo di {0, x}. ReLU(x) = argmax(x, 0). Ciò introduce un effetto simile a tanh (x) o sigmoid (x) come non linearità per aumentare il potere espressivo del modello.


Ulteriori letture

Come menzionato in un'altra risposta, il corso CS 231n di Stanford tratta questo in dettaglio. Controlla questa guida scritta e questa lezione per ulteriori informazioni. Post di blog come questo e questo sono anche molto utili.

Se sei ancora curioso di sapere perché le CNN hanno la struttura che hanno, suggerisco di leggere il documento che le ha presentate, anche se questo è piuttosto lungo, e forse di dare un'occhiata a questa discussione tra Yann Lecun e Christopher Manning sui priori innati (le ipotesi che facciamo quando progettiamo l'architettura di un modello).


2
"e assicurare l'invarianza traslazionale" Che diamine è l'invarianza della traduzione? Quando menzioni un termine così misterioso, dovresti, almeno, definirlo intuitivamente.
nbro,

1
Spiacenti, sono d'accordo— ho aggiunto una breve descrizione.
Jackson Waschura,

1
Questa è una risposta migliore per me in quanto spiega esattamente come le CNN sono un tipo specifico di NN. Altre risposte non menzionano che la condivisione del peso è applicata.
Denziloe,

5

Una rete neurale convoluzionale è una con strati convoluzionali . Se una rete neurale generale è, liberamente parlando, ispirata da un cervello umano (che non è molto accurato), la rete neurale convoluzionale è ispirata dal sistema della corteccia visiva, nell'uomo e in altri animali (che è più vicino alla verità) . Come suggerisce il nome, questo livello applica la convoluzione con un filtro apprendibile (noto anche come kernel ), di conseguenza la rete apprende i modelli nelle immagini: bordi, angoli, archi, quindi figure più complesse. La rete neurale convoluzionale può contenere anche altri strati, comunemente raggruppando e strati densi.

Consiglio vivamente il tutorial CS231n su questo argomento: è molto dettagliato e contiene molte visualizzazioni molto belle.

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.