Le architetture di rete neurale si riferiscono ai progetti strutturali e organizzativi delle reti neurali artificiali (ANN). Queste architetture determinano il modo in cui è organizzata la rete, compreso il numero di strati, il numero di neuroni in ogni strato, le connessioni tra neuroni e le funzioni di attivazione utilizzate. Diverse architetture di rete neurale si formano alterando questi componenti strutturali per adattarsi a compiti o sfide specifici. Se vuoi conoscere i tipi di architetture di rete neurale che dovresti conoscere, questo articolo fa per te.
In questo articolo vi illustreremo i tipi di architetture di rete neurale e quando sceglierle.
Tipi di architetture di rete neurale
Le architetture di rete neurale si formano definendo i componenti strutturali della rete, incluso il numero di strati, il numero di neuroni o cellule in ciascuno strato e le connessioni tra loro. La scelta dell'architettura dipende dalla natura dei dati e dal compito specifico da svolgere e diverse architetture sono progettate per affrontare diversi tipi di problemi e sfide.
Di seguito sono elencate le architetture di rete neurale che dovresti conoscere:
Feedforward Neural Networks
Convolutional Neural Networks
Recurrent Neural Networks
Long Short-Term Memory Networks
Transformer Networks
Generative Adversarial Networks
Esploriamo queste architetture di reti neurali in dettaglio una per una.
Cosa sone le Feedforward Neural Networks
Le FNN sono costituite da strati di neuroni interconnessi in cui le informazioni fluiscono in un'unica direzione, dall'input all'output. Ogni neurone riceve input, lo elabora utilizzando funzioni di attivazione e lo trasmette allo strato successivo.
Componenti delle FNN:
Livello di input : il livello di input è il primo livello della rete. È costituito da neuroni che rappresentano le caratteristiche o le variabili del tuo set di dati. Ogni neurone nel livello di input corrisponde a una caratteristica specifica nei tuoi dati.
Livelli nascosti : tra i livelli di input e di output, puoi avere uno o più livelli nascosti. Questi strati contengono neuroni che elaborano le informazioni dello strato precedente e le trasmettono allo strato successivo. Il termine nascosto deriva dal fatto che questi strati non sono direttamente collegati all'input o all'output; il loro scopo è catturare modelli complessi nei dati.
Livello di output : il livello di output è lo strato finale della rete, responsabile della produzione delle previsioni o classificazioni della rete. Il numero di neuroni nello strato di output dipende dal tipo di problema. Per la classificazione binaria, potresti avere un neurone, mentre le attività di classificazione multiclasse avrebbero più neuroni (uno per ogni classe).
Utilizza le FNN per attività in cui le relazioni tra input e output sono complesse ma possono essere apprese attraverso la formazione, come la classificazione, l'analisi del sentiment o la previsione.
Cosa sono le Convolutional Neural Networks
Le CNN sono progettate per dati simili a griglia, come le immagini. Usano livelli convoluzionali per scansionare i dati di input, applicando filtri per rilevare modelli. I livelli di pooling riducono le dimensioni spaziali. I livelli convoluzionali catturano gerarchie di funzionalità.
Componenti delle CNN:
Livelli convoluzionali: questi livelli sono il nucleo delle CNN e sono costituiti da più filtri o kernel apprendibili. Ogni filtro è una piccola matrice che scorre sull'immagine in ingresso, scansionandola alla ricerca di modelli rilevanti. L'operazione di convoluzione prevede la moltiplicazione per elemento del filtro e della corrispondente regione dell'immagine, seguita dalla somma. Questo processo genera mappe di caratteristiche che rappresentano la presenza di modelli o caratteristiche specifiche in diverse parti dell'immagine.
Livelli di attivazione: dopo l'operazione di convoluzione, viene applicata una funzione di attivazione (solitamente ReLU) per introdurre non linearità nel modello, consentendogli di catturare modelli complessi in modo efficace.
Livelli di pooling: i livelli di pooling effettuano il downsampling delle mappe delle caratteristiche, riducendone le dimensioni spaziali e il numero di parametri. Viene comunemente utilizzato il pooling massimo, che mantiene il valore massimo all'interno di una piccola finestra, preservando di fatto le funzionalità più importanti.
Livelli completamente connessi: questi livelli sono simili a quelli delle reti neurali tradizionali e servono per eseguire attività di classificazione o regressione in base alle funzionalità apprese dai livelli precedenti.
Opta per le CNN quando lavori con dati strutturati a griglia, in particolare per attività relative a immagini e video come il riconoscimento di immagini, il rilevamento di oggetti e il riconoscimento facciale.
Cosa sono le Reti neurali ricorrenti
Le RNN elaborano sequenze di dati come il linguaggio naturale utilizzando connessioni ricorrenti. Queste connessioni consentono alle informazioni di persistere, rendendole adatte per attività con dipendenze sequenziali.
Componenti delle RNN:
Sequenza di input: ad ogni passo temporale t, l'RNN riceve un vettore di input che rappresenta i dati in quel passo temporale. Ad esempio, nell'elaborazione del linguaggio naturale, ogni fase temporale può corrispondere a una parola o a un carattere in una frase.
Stato nascosto: la RNN mantiene un vettore di stato nascosto in ogni fase temporale, che funge da memoria. Lo stato nascosto cattura le informazioni dall'input corrente e dallo stato nascosto precedente, consentendo alla rete di ricordare le informazioni passate.
Connessione ricorrente: la caratteristica chiave degli RNN è la connessione ricorrente, che collega lo stato nascosto del passaggio una tantum al passaggio temporale successivo. Questa connessione in loop consente alla rete di condividere informazioni in diversi passaggi temporali, rendendola in grado di comprendere la natura sequenziale dei dati.
Output: l'RNN può produrre un output in ogni fase temporale in base al corrispondente stato nascosto. Ad esempio, nelle attività di modellazione del linguaggio, l'RNN può prevedere la parola successiva in una frase in base alle parole precedenti e al loro stato nascosto.
Scegli le RNN quando lavori con dati sequenziali, inclusa l'elaborazione del linguaggio naturale e il riconoscimento vocale.
Reti di memoria a lungo termine e a breve termine
Le LSTM sono un tipo di RNN con celle di memoria specializzate. Possono catturare dipendenze a lungo termine in dati sequenziali e mitigare il problema del gradiente evanescente, rendendoli adatti a lunghe sequenze.
Componenti degli LSTM:
Porta di ingresso: la porta di ingresso determina quali parti dell'ingresso devono essere memorizzate nella cella di memoria. Tiene conto dell'ingresso corrente e del precedente stato nascosto e restituisce un valore compreso tra 0 e 1 per ciascun elemento di ingresso, indicando la rilevanza dell'ingresso per la cella di memoria corrente.
Porta di dimenticanza: la porta di dimenticanza determina quali informazioni nella cella di memoria devono essere scartate. Tiene conto dell'ingresso corrente e del precedente stato nascosto e restituisce un valore compreso tra 0 e 1 per ciascun elemento nella cella di memoria, indicando l'importanza di conservare le informazioni.
Porta di uscita: la porta di uscita determina quali informazioni dalla cella di memoria devono essere passate al passo temporale successivo. Tiene conto dell'ingresso corrente e del precedente stato nascosto e restituisce un valore compreso tra 0 e 1 per ciascun elemento nella cella di memoria, indicando il contributo dell'informazione all'uscita finale.
Gli LSTM sono preferiti quando si lavora con attività che richiedono la memoria di stati passati, come la traduzione automatica, il riconoscimento vocale, l'analisi dei sentimenti e la previsione delle serie temporali.
Cosa sono le Reti di trasformatori o Transformer Networks
Le reti Transformer sono progettate specificamente per l'elaborazione di dati sequenziali, come linguaggio naturale, audio e dati di serie temporali. La struttura di Transformer Networks si basa su meccanismi di auto-attenzione, in cui ciascuna posizione nella sequenza di input può occuparsi di tutte le altre posizioni.
Componenti delle reti di trasformatori:
Codificatore: il codificatore prende la sequenza di input e la elabora attraverso più livelli di autoattenzione e reti neurali feed-forward. Il meccanismo di autoattenzione consente al modello di valutare l'importanza di ciascuna posizione nella sequenza di input in base alla sua relazione con tutte le altre posizioni. L'output del codificatore è un insieme di rappresentazioni sensibili al contesto per ciascuna posizione nella sequenza di input.
Decodificatore: il decodificatore è costituito anche da più strati di auto-attenzione e reti neurali feed-forward. Prende l'uscita dell'encoder e genera la sequenza di uscita passo dopo passo. Durante la decodifica, ciascuna posizione può occuparsi solo delle posizioni precedenti nella sequenza di uscita per garantire la generazione autoregressiva.
Meccanismo di auto-attenzione: il meccanismo di auto-attenzione in Transformer Networks consente a ciascuna posizione nella sequenza di occuparsi di tutte le altre posizioni, catturando le dipendenze e il contesto in modo più efficace rispetto alle tradizionali reti neurali ricorrenti.
Reti neurali feed-forward: le reti neurali feed-forward all'interno di ogni strato del codificatore e del decodificatore forniscono ulteriori trasformazioni non lineari alle rappresentazioni della sequenza.
I trasformatori hanno rivoluzionato le attività di elaborazione del linguaggio naturale come la traduzione automatica, la generazione di testo e l'analisi del sentiment. Vengono utilizzati anche nell'elaborazione delle immagini (ad esempio, nella didascalia delle immagini) e nell'apprendimento per rinforzo.
Cosa sono le Reti avversarie generative o GAN
Le GAN comprendono due reti: un generatore e un discriminatore. Il generatore cerca di creare dati che siano indistinguibili dai dati reali, mentre il discriminatore mira a distinguere il reale dal falso. Competono e si migliorano a vicenda in modo iterativo.
Componenti dei GAN:
Rete del generatore: il generatore è responsabile della creazione di campioni di dati falsi che assomigliano a dati reali. Prende il rumore casuale come input e lo trasforma in campioni di dati che dovrebbero sembrare appartenenti al set di dati originale. Il generatore è costituito da diversi strati che trasformano gradualmente il rumore in schemi più complessi, generando campioni di dati che diventano sempre più realistici man mano che l'addestramento procede.
Rete discriminatrice: il discriminatore è l'avversario del generatore. Funziona come un classificatore binario ed è addestrato a distinguere tra campioni di dati reali dal set di dati originale e campioni di dati falsi generati dal generatore. Il discriminatore è costituito anche da diversi livelli che elaborano i dati di input e prendono una decisione sulla loro autenticità.
I GAN sono ideali per generare dati realistici, potenziamento dei dati, trasferimento di stili e applicazioni artistiche.
Conclusione sui Tipi di architetture di rete neurale
Di seguito sono riportati i tipi di architetture di rete neurale nell'apprendimento automatico che dovresti conoscere:
Reti neurali feedforward: utilizzare le FNN per attività in cui le relazioni tra input e output sono complesse ma possono essere apprese attraverso la formazione, come la classificazione, l'analisi del sentiment o la previsione.
Reti neurali convoluzionali: scegli le CNN quando lavori con dati strutturati a griglia, in particolare per attività di immagini e video come il riconoscimento di immagini, il rilevamento di oggetti e il riconoscimento facciale.
Reti neurali ricorrenti: scegli le RNN quando lavori con dati sequenziali, inclusa l'elaborazione del linguaggio naturale e il riconoscimento vocale.
Reti di memoria a breve termine: gli LSTM sono preferiti quando si lavora con attività che richiedono la memoria di stati passati, come la traduzione automatica, il riconoscimento vocale e l'analisi dei sentimenti.
Reti di trasformatori: i trasformatori hanno rivoluzionato le attività di elaborazione del linguaggio naturale come la traduzione automatica, la generazione di testo e l'analisi del sentiment. Vengono utilizzati anche nell'elaborazione delle immagini (ad esempio, nella didascalia delle immagini) e nell'apprendimento per rinforzo.
Reti avversarie generative: i GAN sono ideali per generare dati realistici, aumento dei dati, trasferimento di stili e applicazioni artistiche.
Spero ti sia piaciuto questo articolo sulle tipologie di architetture di rete neurale e su come sceglierle. Sentiti libero di porre domande preziose nella sezione commenti qui sotto.
Bell'articolo, semplice, chiaro e riassuntivo
(sarebbe interessante un approfondimento al modello transformer che ormai viene usato ovunque)...