Spiegazione di 7 tipi di reti neurali nell'intelligenza artificiale
Pubblicato: 2020-12-29Le reti neurali sono un sottoinsieme di tecniche di apprendimento automatico che apprendono i dati e i modelli in un modo diverso utilizzando i neuroni e i livelli nascosti. Le reti neurali sono molto più potenti grazie alla loro struttura complessa e possono essere utilizzate in applicazioni in cui gli algoritmi di Machine Learning tradizionali non sono sufficienti.
Alla fine di questo tutorial, avrai la conoscenza di:
- Una breve storia delle reti neurali
- Cosa sono le reti neurali
- Tipi di reti neurali
- Perceptron
- Reti feed forward
- Perceptron multistrato
- Reti a base radiale
- Reti neurali convoluzionali
- Reti neurali ricorrenti
- Reti di memoria a lungo termine
Sommario
Una breve storia delle reti neurali
I ricercatori degli anni '60 hanno ricercato e formulato modi per imitare il funzionamento dei neuroni umani e come funziona il cervello. Sebbene sia estremamente complesso da decodificare, è stata proposta una struttura simile che potrebbe essere estremamente efficiente nell'apprendimento di schemi nascosti nei dati.
Per la maggior parte del 20° secolo, le reti neurali sono state considerate incompetenti. Erano complessi e le loro prestazioni erano scarse. Inoltre, richiedevano molta potenza di calcolo che all'epoca non era disponibile. Tuttavia, quando il team di Sir Geoffrey Hinton, soprannominato anche "The Father of Deep Learning", ha pubblicato il documento di ricerca sulla Backpropagation, le cose sono cambiate completamente. Le reti neurali potevano ora raggiungere ciò che non era stato pensato.
Cosa sono le reti neurali?
Le reti neurali utilizzano l'architettura dei neuroni umani che hanno input multipli, un'unità di elaborazione e output singoli/multipli. Ci sono pesi associati a ciascuna connessione di neuroni. Regolando questi pesi, una rete neurale arriva a un'equazione che viene utilizzata per prevedere gli output su nuovi dati invisibili. Questo processo viene eseguito mediante backpropagation e aggiornamento dei pesi.
Tipi di reti neurali
Diversi tipi di reti neurali vengono utilizzati per dati e applicazioni diversi. Le diverse architetture delle reti neurali sono progettate specificamente per funzionare su quei particolari tipi di dati o domini. Partiamo da quelli più elementari e andiamo verso quelli più complessi.

Perceptron
Il Perceptron è la forma più elementare e più antica di reti neurali. È costituito da un solo neurone che prende l'input e applica la funzione di attivazione su di esso per produrre un'uscita binaria. Non contiene livelli nascosti e può essere utilizzato solo per attività di classificazione binaria.
Il neurone esegue l'elaborazione dell'addizione dei valori di input con i relativi pesi. La somma risultante viene quindi passata alla funzione di attivazione per produrre un output binario.

Fonte immagine
Ulteriori informazioni su: apprendimento profondo e reti neurali
Rete di feed forward
Le reti Feed Forward (FF) sono costituite da più neuroni e strati nascosti che sono collegati tra loro. Questi sono chiamati "feed-forward" perché i dati fluiscono solo nella direzione in avanti e non c'è propagazione all'indietro. I livelli nascosti potrebbero non essere necessariamente presenti nella rete a seconda dell'applicazione.
Più il numero di strati in più può essere la personalizzazione dei pesi. E quindi, maggiore sarà la capacità di apprendimento della rete. I pesi non vengono aggiornati perché non c'è backpropagation. L'uscita di moltiplicazione dei pesi con gli ingressi è alimentata alla funzione di attivazione che funge da valore di soglia.
Le reti FF sono utilizzate in:
- Classificazione
- Riconoscimento vocale
- Riconoscimento facciale
- Riconoscimento del modello

Fonte immagine
Perceptron multistrato
Il principale difetto delle reti Feed Forward era la sua incapacità di apprendere con la backpropagation. I perceptron multistrato sono le reti neurali che incorporano più livelli nascosti e funzioni di attivazione. L'apprendimento avviene in modalità Supervisionata dove i pesi vengono aggiornati tramite Gradient Descent.
Il Perceptron multistrato è bidirezionale, cioè la propagazione in avanti degli input e la propagazione all'indietro degli aggiornamenti del peso. Le funzioni di attivazione possono subire variazioni rispetto al tipo di target. Softmax viene solitamente utilizzato per la classificazione multiclasse, Sigmoid per la classificazione binaria e così via. Queste sono anche chiamate reti dense perché tutti i neuroni in uno strato sono collegati a tutti i neuroni nello strato successivo.
Sono utilizzati nelle applicazioni basate sul Deep Learning ma sono generalmente lenti a causa della loro struttura complessa.

Fonte immagine
Reti a base radiale
Le reti a base radiale (RBN) utilizzano un modo completamente diverso per prevedere gli obiettivi. È costituito da uno strato di input, uno strato con neuroni RBF e un output. I neuroni RBF memorizzano le classi effettive per ciascuna delle istanze dei dati di addestramento. Gli RBN sono diversi dal solito perceptron multistrato a causa della funzione radiale utilizzata come funzione di attivazione.

Quando i nuovi dati vengono inseriti nella rete neurale, i neuroni RBF confrontano la distanza euclidea dei valori delle caratteristiche con le classi effettive memorizzate nei neuroni. Questo è simile a trovare a quale cluster appartiene l'istanza particolare. La classe in cui la distanza è minima viene assegnata come classe prevista.
Gli RBN sono utilizzati principalmente in applicazioni di approssimazione funzionale come i sistemi di ripristino dell'energia.

Fonte immagine
Leggi anche : Applicazioni di reti neurali nel mondo reale
Reti neurali convoluzionali
Quando si tratta di classificazione delle immagini, le reti neurali più utilizzate sono le Convolution Neural Networks (CNN). La CNN contiene più livelli di convoluzione che sono responsabili dell'estrazione di caratteristiche importanti dall'immagine. I livelli precedenti sono responsabili dei dettagli di basso livello e i livelli successivi sono responsabili delle funzionalità di livello più alto.
L'operazione Convoluzione utilizza una matrice personalizzata, chiamata anche filtri, per contorcere sull'immagine di input e produrre mappe. Questi filtri vengono inizializzati in modo casuale e quindi aggiornati tramite backpropagation. Un esempio di tale filtro è il Canny Edge Detector, che viene utilizzato per trovare i bordi in qualsiasi immagine.
Dopo lo strato di convoluzione, c'è uno strato di pooling che è responsabile dell'aggregazione delle mappe prodotte dallo strato convoluzionale. Può essere Max Pooling, Min Pooling, ecc. Per la regolarizzazione, le CNN includono anche un'opzione per l'aggiunta di livelli di abbandono che rilasciano o rendono inattivi determinati neuroni per ridurre l'overfitting e una convergenza più rapida.
Le CNN utilizzano ReLU (Rectified Linear Unit) come funzioni di attivazione nei livelli nascosti. Come ultimo strato, le CNN hanno uno strato denso completamente connesso e la funzione di attivazione principalmente come Softmax per la classificazione e principalmente ReLU per la regressione.

Fonte immagine
Reti neurali ricorrenti
Le reti neurali ricorrenti entrano in scena quando è necessario prevedere l'utilizzo di dati sequenziali. I dati sequenziali possono essere una sequenza di immagini, parole, ecc. L'RNN ha una struttura simile a quella di una rete Feed-Forward, tranne per il fatto che i livelli ricevono anche un input ritardato della previsione dell'istanza precedente. Questa previsione dell'istanza viene archiviata nella cella RNN che è un secondo input per ogni previsione.
Tuttavia, il principale svantaggio di RNN è il problema del gradiente svanito che rende molto difficile ricordare i pesi dei livelli precedenti.

Fonte immagine

Reti di memoria a lungo termine
Le reti neurali LSTM risolvono il problema del gradiente di fuga negli RNN aggiungendo una speciale cella di memoria in grado di memorizzare informazioni per lunghi periodi di tempo. LSTM utilizza le porte per definire quale output deve essere utilizzato o dimenticato. Utilizza 3 porte: una porta di ingresso, una porta di uscita e una porta di dimenticanza. La porta di ingresso controlla quali dati devono essere mantenuti in memoria. Il gate di output controlla i dati forniti al livello successivo e il gate di dimenticanza controlla quando scaricare/dimenticare i dati non richiesti.
Gli LSTM sono utilizzati in varie applicazioni come:
- Riconoscimento del gesto
- Riconoscimento vocale
- Predizione del testo
Prima che tu vada
Le reti neurali possono diventare molto complesse in pochissimo tempo, continuando ad aggiungere livelli nella rete. Ci sono momenti in cui possiamo sfruttare l'immensa ricerca in questo campo utilizzando reti pre-addestrate per il nostro uso.
Questo si chiama Transfer Learning. In questo tutorial, abbiamo trattato la maggior parte delle reti neurali di base e il loro funzionamento. Assicurati di provarli utilizzando i framework di Deep Learning come Keras e Tensorflow.
Se sei interessato a saperne di più sulla rete neurale, sull'apprendimento automatico e sull'intelligenza artificiale, dai un'occhiata al diploma PG di IIIT-B e upGrad in Machine Learning e AI, progettato per i professionisti che lavorano e offre oltre 450 ore di formazione rigorosa, oltre 30 casi di studio e incarichi, stato di Alumni IIIT-B, oltre 5 progetti pratici pratici e assistenza sul lavoro con le migliori aziende.
Cosa sono le reti neurali?
Le reti neurali sono modelli probabilistici che possono essere utilizzati per eseguire la classificazione e la regressione non lineare, ovvero l'approssimazione di una mappatura dallo spazio di input allo spazio di output. La cosa interessante delle reti neurali è che possono essere addestrate con molti dati e possono essere utilizzate per modellare comportamenti non lineari complessi. Possono essere addestrati con molti esempi e possono essere usati per trovare schemi senza alcuna guida. Quindi le reti neurali sono utilizzate in molte applicazioni in cui sono presenti casualità e complessità.
Quali sono le 3 principali categorie di reti neurali?
Una rete neurale è un approccio computazionale all'apprendimento, analogo al cervello. Esistono tre categorie principali di reti neurali. Classificazione, Apprendimento di sequenze e Approssimazione di funzioni sono le tre categorie principali di reti neurali. Esistono molti tipi di reti neurali come Perceptron, Hopfield, Mappe auto-organizzanti, Macchine di Boltzmann, Reti di credenze profonde, Codificatori automatici, Reti neurali convoluzionali, Macchine di Boltzmann limitate, Reti neurali a valore continuo, Reti neurali ricorrenti e Reti di collegamento funzionale.
Quali sono i limiti delle reti neurali?
Le reti neurali possono risolvere problemi che hanno un gran numero di ingressi e un gran numero di uscite. Ma ci sono anche dei limiti per le reti neurali. Le reti neurali sono utilizzate principalmente per la classificazione. Si comportano molto male per la regressione. E questo è un punto molto importante: le reti neurali hanno bisogno di molti dati di addestramento. Se il set di dati è piccolo, le reti neurali non saranno in grado di apprendere le regole sottostanti. Un'altra limitazione per le reti neurali è che sono scatole nere. Non sono trasparenti. La struttura interna di una rete neurale non è di facile comprensione.
