Reti neurali feed-forward e feedback
La struttura delle reti neurali sta diventando sempre più importante nella ricerca sulla modellazione dell'intelligenza artificiale per molte applicazioni. Sono stati sviluppati due paradigmi strutturali opposti: reti neurali feedback (ricorrenti) e reti neurali feed-forward. In questo articolo, presentiamo un confronto approfondito di entrambe le architetture dopo averle analizzate attentamente. Quindi, confrontiamo, attraverso alcuni casi d'uso, le prestazioni di ciascuna struttura di rete neurale.
Prerequisiti
Questo è un articolo introduttivo sull'ottimizzazione degli algoritmi di deep learning progettato per i principianti in questo ambito e non richiede ulteriore esperienza da seguire.
Innanzitutto, iniziamo con le basi.
Cos'è una rete neurale?
Elemento fondamentale del deep learning, le reti neurali sono rinomate per simulare il comportamento del cervello umano affrontando al contempo problematiche complesse basate sui dati.
Per creare l'output richiesto, i dati di input vengono elaborati attraverso diversi strati di neuroni artificiali impilati uno sopra l'altro. Le applicazioni spaziano dalla semplice classificazione delle immagini a problemi più critici e complessi come l'elaborazione del linguaggio naturale, la produzione di testi e altri problemi legati al mondo.
Elementi di Reti Neurali
I neuroni che compongono l’architettura della rete neurale replicano il comportamento organico del cervello.
Struttura elementare di un singolo neurone in una rete neurale
Ora definiremo i vari componenti legati alla rete neurale e mostreremo come, partendo da questa rappresentazione di base di un neurone, possiamo costruire alcune delle architetture più complesse.
Ingresso
È la raccolta di dati (ovvero caratteristiche) che vengono immessi nel modello di apprendimento. Ad esempio, una serie di misurazioni atmosferiche attuali può essere utilizzata come input per un modello di previsione meteorologica.
Peso
Dare importanza alle caratteristiche che aiutano maggiormente il processo di apprendimento è lo scopo primario dell’utilizzo dei pesi. Aggiungendo la moltiplicazione scalare tra il valore di input e la matrice del peso, possiamo aumentare l'effetto di alcune funzionalità riducendolo per altre. Ad esempio, la presenza di una nota alta influenzerebbe la scelta del modello di classificazione del genere musicale più di altre note medie comuni tra i generi.
Funzione di attivazione
Per tenere conto del cambiamento della linearità con gli input, la funzione di attivazione introduce la non linearità nel funzionamento dei neuroni. Senza di essa, l’output sarebbe semplicemente una combinazione lineare dei valori di input e la rete non sarebbe in grado di gestire la non linearità.
Le funzioni di attivazione più comunemente utilizzate sono: passo unitario, sigmoide, lineare a tratti e gaussiana.
Illustrazioni delle funzioni di attivazione comuni
Pregiudizio
Lo scopo del bias è modificare il valore generato dalla funzione di attivazione. La sua funzione è paragonabile a quella di una costante in una funzione lineare. Quindi, è fondamentalmente uno spostamento per l’output della funzione di attivazione.
Strati
Una rete neurale artificiale è composta da più strati neurali impilati uno sopra l’altro. Ogni strato è costituito da diversi neuroni impilati in fila. Distinguiamo tre tipi di livelli: livello di input, nascosto e di output.
Livello di input
Il livello di input del modello riceve i dati che gli introduciamo da fonti esterne come immagini o un vettore numerico. È l'unico livello visibile nell'intera progettazione di una rete neurale che trasmette tutte le informazioni dal mondo esterno senza alcuna elaborazione.
Strati nascosti
Gli strati nascosti sono ciò che rende il deep learning quello che è oggi. Sono livelli intermedi che eseguono tutti i calcoli ed estraggono le caratteristiche dei dati. La ricerca di caratteristiche nascoste nei dati può comprendere molti livelli nascosti interconnessi. Nell'elaborazione delle immagini, ad esempio, i primi strati nascosti sono spesso responsabili di funzioni di livello superiore come il rilevamento di bordi, forme e limiti. Gli strati nascosti successivi, invece, svolgono compiti più sofisticati, come classificare o segmentare interi oggetti.
Livello di uscita
La previsione finale viene effettuata dal livello di output utilizzando i dati dei livelli nascosti precedenti. È lo strato da cui acquisiamo il risultato finale, quindi è il più importante.
Nel livello di output, i modelli di classificazione e regressione hanno in genere un singolo nodo. Tuttavia, dipende completamente dalla natura del problema in questione e da come è stato sviluppato il modello. Alcuni dei modelli più recenti hanno uno strato di output bidimensionale. Ad esempio, il nuovo modello Make-A-Scene di Meta che genera immagini semplicemente da un testo in input.
Come funzionano questi strati insieme?
I nodi di input ricevono i dati in una forma che può essere espressa numericamente. Ad ogni nodo viene assegnato un numero; più alto è il numero, maggiore è l'attivazione. Le informazioni vengono visualizzate come valori di attivazione. La rete poi diffonde queste informazioni verso l'esterno. Il valore di attivazione viene inviato da nodo a nodo in base alla forza della connessione (pesi) per rappresentare l'inibizione o l'eccitazione.
Ogni nodo aggiunge i valori di attivazione che ha ricevuto prima di modificare il valore in conformità con la sua funzione di attivazione. L’attivazione viaggia attraverso i livelli nascosti della rete prima di arrivare ai nodi di output. L'input viene quindi riflesso in modo significativo nel mondo esterno dai nodi di output. L'errore, che è la differenza tra il valore previsto e il valore effettivo, viene propagato all'indietro assegnando i pesi di ciascun nodo alla proporzione dell'errore di cui ciascun nodo è responsabile.
Esempio di una rete neurale di base
La rete neurale nell'esempio precedente comprende uno strato di input composto da tre nodi di input, due strati nascosti basati su quattro nodi ciascuno e uno strato di output costituito da due nodi.
Struttura delle reti neurali feed-forward
In una rete feed-forward, i segnali possono muoversi solo in una direzione. Queste reti sono considerate reti non ricorrenti con input, output e livelli nascosti. Uno strato di unità di elaborazione riceve i dati di input ed esegue i calcoli lì. Sulla base di un totale ponderato dei suoi input, ciascun elemento di elaborazione esegue il proprio calcolo. I valori appena derivati vengono successivamente utilizzati come nuovi valori di input per il livello successivo. Questo processo continua finché non viene determinato l'output dopo aver attraversato tutti gli strati.
Le reti Perceptron (lineare e non lineare) e Radial Basis Function sono esempi di reti feed-forward. In effetti, una rete perceptron a strato singolo è il tipo più elementare di rete neurale. Ha un singolo livello di nodi di output e gli input vengono immessi direttamente negli output tramite una serie di pesi. Ciascun nodo calcola il totale dei prodotti dei pesi e degli input. Questa struttura di rete neurale è stata una delle prime e più basilari architetture ad essere costruita.
L'apprendimento viene effettuato su una rete neurale feed-forward multistrato utilizzando la tecnica della back-propagation. Le proprietà generate per ciascun campione di addestramento vengono stimolate dagli input. Lo strato nascosto riceve contemporaneamente gli output ponderati dello strato di input. L'output ponderato dello strato nascosto può essere utilizzato come input per strati nascosti aggiuntivi, ecc. L'impiego di molti strati nascosti è arbitrario; spesso ne viene impiegato solo uno per le reti di base.
Le unità che compongono lo strato di output utilizzano gli output ponderati dello strato nascosto finale come input per diffondere la previsione della rete per determinati campioni. Le unità negli strati nascosti e nello strato di output, a causa delle loro componenti biologiche simboliche, vengono rappresentate come neurodi o unità di output.
Le reti neurali a convoluzione (CNN) sono una delle iterazioni più conosciute dell'architettura feed-forward. Offrono una tecnica più scalabile per la classificazione delle immagini e le attività di riconoscimento degli oggetti utilizzando concetti dell'algebra lineare, in particolare la moltiplicazione di matrici, per identificare modelli all'interno di un'immagine.
Di seguito è riportato un esempio di un'architettura CNN che classifica le cifre scritte a mano
Un esempio di architettura CNN per un'attività di riconoscimento di cifre scritte a mano (fonte)
Attraverso l'uso di filtri pertinenti, una CNN può catturare efficacemente le dipendenze spaziali e temporali in un'immagine. Poiché ci sono meno fattori da considerare e i pesi possono essere riutilizzati, l'architettura fornisce un adattamento migliore al set di dati dell'immagine. In altre parole, la rete può essere addestrata a comprendere meglio il livello di complessità dell'immagine.
Come viene addestrata una rete neurale feed-forward?
L'algoritmo tipico per questo tipo di rete è la propagazione all'indietro. È una tecnica per regolare i pesi di una rete neurale in base al tasso di errore registrato nell’epoca precedente (cioè l’iterazione). Regolando adeguatamente i pesi, è possibile ridurre i tassi di errore e migliorare l'affidabilità del modello ampliandone l'applicabilità.
Il gradiente della funzione di perdita per un singolo peso viene calcolato dall’algoritmo di propagazione all’indietro della rete neurale utilizzando la regola della catena. A differenza di un calcolo diretto nativo, calcola in modo efficiente uno strato alla volta. Sebbene calcoli il gradiente, non specifica come applicarlo. Amplia la portata del calcolo della regola delta.
Illustrazione dell'algoritmo di retropropagazione
Struttura delle reti neurali di feedback
Una rete di feedback, come una rete neurale ricorrente (RNN), presenta percorsi di feedback che consentono ai segnali di utilizzare circuiti per viaggiare in entrambe le direzioni. Le connessioni neuronali possono essere stabilite in qualsiasi modo. Poiché questo tipo di rete contiene dei loop, si trasforma in un sistema dinamico non lineare che evolve continuamente durante l'allenamento fino a raggiungere uno stato di equilibrio.
Nella ricerca, le RNN sono il tipo più importante di reti di feed-back. Sono una rete neurale artificiale che forma connessioni tra i nodi in un grafico diretto o non orientato lungo una sequenza temporale. Di conseguenza può mostrare un comportamento dinamico temporale. Gli RNN possono elaborare sequenze di input di diversa lunghezza utilizzando il loro stato interno, che può rappresentare una forma di memoria. Possono quindi essere utilizzati per applicazioni come il riconoscimento vocale o il riconoscimento della scrittura.
Esempio di rete neurale a feed-back
Come viene addestrata una rete neurale di feed-back?
La propagazione all'indietro nel tempo o BPTT è un algoritmo comune per questo tipo di reti. È un metodo basato sul gradiente per l'addestramento di specifici tipi di reti neurali ricorrenti. Ed è considerato come un’espansione della propagazione all’indietro delle reti feed-forward con un adattamento alla ricorrenza presente nelle reti feed-back.
CNN contro RNN
Come già accennato, le CNN non sono costruite come una RNN. Le RNN inviano i risultati alla rete, mentre le CNN sono reti neurali feed-forward che utilizzano filtri e livelli di pooling.
Dal punto di vista applicativo, le CNN vengono spesso utilizzate per modellare problemi che coinvolgono dati spaziali, come le immagini. Quando si elaborano dati temporali e sequenziali, come sequenze di testo o immagini, gli RNN funzionano meglio.
Queste differenze possono essere raggruppate nella tabella seguente:
Convolution Neural Networks (CNNs) | Recurrent Neural Networks (RNNs) | |
---|---|---|
Architecture | Feed-forward neural network | Feed-back neural network |
Layout | Multiple layers of nodes including convolutional layers | Information flows in different directions, simulating a memory effect |
Data type | Image data | Sequence data |
Input/Output | The size of the input and output are fixed (i.e input image with fixed size and outputs the classification) | The size of the input and output may vary (i.e receiving different texts and generating different translations for example) |
Use cases | Image classification, recognition, medical imagery, image analysis, face detection | Text translation, natural language processing, language translation, sentiment analysis |
Drawbacks | Large training data | Slow and complex training procedures |
Description | CNN employs neuronal connection patterns. And, they are inspired by the arrangement of the individual neurons in the animal visual cortex, which allows them to respond to overlapping areas of the visual field. | Time-series information is used by recurrent neural networks. For instance, a user’s previous words could influence the model prediction on what he can says next. |
Esempi di architettura: AlexNet
Un'architettura di rete neurale convoluzionale (CNN) nota come AlexNet è stata creata da Alex Krizhevsky. Otto strati costituivano AlexNet; i primi cinque erano strati convoluzionali, alcuni di essi erano seguiti da strati di max-pooling e gli ultimi tre erano strati completamente connessi. Ha utilizzato la funzione di attivazione non saturante ReLU, che ha superato tanh e sigmoid in termini di efficienza dell'allenamento. Considerato uno degli studi più influenti sulla visione artificiale, AlexNet ha dato il via alla pubblicazione di numerose ulteriori ricerche che hanno utilizzato CNN e GPU per accelerare il deep learning. Infatti, secondo F, la pubblicazione AlexNet ha ricevuto più di 69.000 citazioni nel 2022.
Architettura AlexNet con pooling e supervisione piramidale (fonte)
LeNet
Yann LeCun ha suggerito la topologia della rete neurale convoluzionale nota come LeNet. Una delle prime reti neurali convoluzionali, LeNet-5, ha contribuito al progresso del deep learning. LeNet, un prototipo della prima rete neurale convoluzionale, possiede i componenti fondamentali di una rete neurale convoluzionale, inclusi lo strato convoluzionale, lo strato di pooling e lo strato di connessione completa, fornendo le basi per il suo futuro avanzamento. LeNet-5 è composto da sette strati, come illustrato in figura.
Struttura di LeNet-5 (fonte)
Memoria a lungo termine (LSTM)
La rete LSTM è uno degli esempi più importanti di RNN. Queste architetture possono analizzare sequenze di dati complete oltre a singoli punti dati. Ad esempio, LSTM può essere utilizzato per eseguire attività come l'identificazione della grafia non segmentata, il riconoscimento vocale, la traduzione linguistica e il controllo dei robot.
Cella di memoria a breve termine (LSTM) (sorgente)
Le reti LSTM sono costruite da celle (vedi figura sopra), i componenti fondamentali di una cella LSTM sono generalmente: dimenticare gate, input gate, output gate e uno stato della cella.
Unità ricorrenti recintate (GRU)
Questo derivato RNN è paragonabile agli LSTM poiché tenta di risolvere il problema della memoria a breve termine che caratterizza i modelli RNN. Il GRU ha meno parametri di un LSTM perché non ha un gate di uscita, ma è simile a un LSTM con un gate di dimenticanza. È stato scoperto che GRU e LSTM hanno funzionato in modo simile su alcuni modelli musicali, modelli di segnali vocali e attività di elaborazione del linguaggio naturale. I GRU hanno dimostrato prestazioni superiori su diversi set di dati più piccoli e meno frequenti.
Diagramma della cella unitaria ricorrente con gate (Fonte)
Casi d'uso
A seconda dell'applicazione, una struttura feed-forward può funzionare meglio per alcuni modelli mentre una progettazione feed-back può funzionare efficacemente per altri. Ecco alcuni casi in cui era preferibile scegliere un'architettura rispetto a un'altra.
Previsione dei tassi di cambio
In una ricerca per modellare i tassi di cambio dello yen giapponese, e nonostante siano estremamente diretti e semplici da applicare, i risultati dei dati fuori campione dimostrano che il modello feed-forward è ragionevolmente accurato nel prevedere sia i livelli di prezzo che la direzione dei prezzi. In effetti, il modello feed-forward ha sovraperformato le prestazioni di previsione della rete ricorrente. Ciò può essere dovuto al fatto che i modelli di feed-back, che spesso presentano confusione o instabilità, devono trasmettere i dati sia da dietro a avanti che da avanti a dietro.
Riconoscimento di oggetti parzialmente occlusi
È diffusa la percezione che l'elaborazione feed-forward venga utilizzata nell'identificazione degli oggetti. Le ricorrenti connessioni top-down per stimoli occlusi potrebbero essere in grado di ricostruire le informazioni perse nelle immagini di input. I ricercatori sull’intelligenza artificiale dell’Istituto di studi avanzati di Francoforte hanno esaminato questo argomento. Hanno dimostrato che per il rilevamento di oggetti occlusi, le architetture di rete neurale ricorrenti mostrano notevoli miglioramenti delle prestazioni. Gli stessi risultati sono stati riportati in un diverso articolo sul Journal of Cognitive Neuroscience. L'esperimento e le simulazioni modello che lo accompagnano, effettuate dagli autori, evidenziano i limiti della visione feed-forward e sostengono che il riconoscimento degli oggetti è in realtà un processo altamente interattivo e dinamico che si basa sulla cooperazione di diverse aree cerebrali.
Classificazione delle immagini
In alcuni casi, le semplici architetture feed-forward superano le reti ricorrenti se combinate con approcci di formazione adeguati. Ad esempio, ResMLP, un'architettura per la classificazione delle immagini basata esclusivamente su percettroni multistrato. Un progetto di ricerca ha mostrato le prestazioni di tale struttura se utilizzata con una formazione efficiente in termini di dati. È stato dimostrato che un'architettura residua semplice con blocchi residui costituiti da una rete feed-forward con un singolo strato nascosto e uno strato di interazione patch lineare può funzionare sorprendentemente bene sui benchmark di classificazione ImageNet se utilizzata con un metodo di addestramento moderno come quelli introdotti per architetture basate su trasformatori.
Classificazione del testo
Gli RNN sono i modelli di maggior successo per i problemi di classificazione del testo, come discusso in precedenza. In uno studio sono state proposte tre distinte strategie di condivisione delle informazioni per rappresentare il testo con livelli condivisi e specifici per attività. Tutti questi compiti vengono formati congiuntamente su tutta la rete. I modelli RNN proposti hanno mostrato prestazioni elevate per la classificazione del testo, secondo esperimenti su quattro compiti di classificazione del testo di riferimento.
Un metodo di categorizzazione del sentiment basato su LSTM per i dati di testo è stato presentato in un altro articolo. Questa tecnica LSTM ha dimostrato prestazioni per la categorizzazione del sentiment con un tasso di precisione dell'85%, considerato un livello di precisione elevato per i modelli di analisi del sentiment.
Tutorial
Con la recente acquisizione di Paperspace, stiamo rilasciando molti tutorial pubblicati sia per CNN che per RNN. Proponiamo una breve selezione in questo elenco per iniziare:
Rilevamento di oggetti utilizzando la maschera diretta R-CNN con Keras Questo tutorial spiega come indirizzare la maschera R-CNN verso le posizioni candidate degli oggetti per un rilevamento efficace degli oggetti. Codice Python completo incluso.
In questo articolo implementiamo utilizzando Keras un modello chiamato Seq2Seq, che è un modello RNN utilizzato per il riepilogo del testo.
Una guida agli RNN bidirezionali con Keras | Blog della comunità DO Questa serie fornisce una guida avanzata alle diverse reti neurali ricorrenti (RNN). Acquisirai una comprensione delle reti stesse, delle loro architetture, delle loro applicazioni e di come dare vita ai modelli utilizzando Keras.
Quindi, in questa implementazione di una RNN bidirezionale, abbiamo realizzato un modello di analisi del sentiment utilizzando la libreria Keras.
Conclusione
Per dirla semplicemente, sono necessari strumenti diversi per risolvere varie sfide. È fondamentale comprendere e descrivere il problema che stai cercando di affrontare quando inizi a utilizzare il machine learning per la prima volta. È necessaria molta pratica per diventare abbastanza competenti da costruire qualcosa da soli, quindi aumentare la conoscenza in quest'area faciliterà le procedure di implementazione.
In questo post, abbiamo esaminato le differenze tra le topologie di rete neurale feed-forward e feed-back. Successivamente abbiamo esplorato due esempi di queste architetture che hanno fatto avanzare il campo dell’intelligenza artificiale: le reti neurali convoluzionali (CNN) e le reti neurali ricorrenti (RNN). Abbiamo quindi fornito esempi di ciascuna struttura insieme a casi d'uso nel mondo reale.
Risorse
https://link.springer.com/article/10.1007/BF00868008
https://arxiv.org/pdf/2104.10615.pdf
https://dl.acm.org/doi/10.1162/jocn_a_00282
https://arxiv.org/pdf/2105.03404.pdf
https://proceedings.neurips.cc/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf
https://www.ijcai.org/Proceedings/16/Papers/408.pdf
https://www.ijert.org/research/text-based-sentiment-analysis-using-lstm-IJERTV9IS050290.pdf