Reti Neurali Artificiali (ANN)
In questo blog capiremo uno dei concetti e delle basi più importanti del Deep Learning che è la rete neurale artificiale, a volte chiamata anche reti neurali, perceptron multistrato ecc.
Perché le reti neurali?
Torniamo dunque indietro nel tempo e capiamo come è nato questo concetto. C'era una volta in cui gli algoritmi di apprendimento automatico smettevano di fornire buone prestazioni su un'enorme quantità di dati poiché man mano che avanzi nel futuro i dati tendono a diventare più grandi e quindi gli scienziati hanno avuto l'idea di creare un nuovo algoritmo in grado di imitare il cervello umano e imparare come impariamo noi umani. Hanno pensato di creare neuroni artificiali che agissero in modo simile a una cellula neuronale che è l'unità fondamentale del nostro sistema nervoso e del nostro cervello ed è così che sono nate le reti neurali ed è emerso un campo completamente nuovo dall'apprendimento automatico che è Deep Learning uno studio di artificiale reti neurali.
In Deep Learning ci sono molti tipi diversi di architettura di reti neurali per risolvere vari casi d'uso come ANN, CNN, RNN, GRU... e così via, ma il nostro obiettivo principale per questo blog è capire ANN.
Tornando indietro, la prima rete neurale in assoluto è nota come Perceptron, aveva un design molto simile a quello di un neurone, come mostrato nell'illustrazione sottostante.
Perceptron
Proviamo a capirlo un po' in dettaglio. Quindi il perceptron è un neurone artificiale progettato da ricercatori e scienziati che è anche noto come rete neurale a strato singolo poiché questa rete neurale ha solo un singolo strato e un singolo neurone. Viene utilizzato principalmente come classificatore binario per risolvere problemi di classificazione binaria supervisionata.
Ora cerchiamo di capire come funziona, prima di andare avanti ci sono alcuni componenti del perceptron che è necessario conoscere e sono menzionati di seguito:
- Livello di input: questo è il livello in cui passiamo l'input iniziale ai neuroni o ai livelli nascosti per l'elaborazione
- Livello nascosto: questo è il livello in cui avviene l'elaborazione e il calcolo principali sui dati di input
- Pesi e distorsioni: i pesi sono i parametri che aiutano a dare a un neurone un'influenza o una grandezza di importanza che aiuta a decidere l'output e i pregiudizi sono lo stesso parametro della regressione lineare che aiuta ad adattare la linea a qualche intercetta.
- Funzione di attivazione: questo componente determina l'output di un determinato neurone dopo aver calcolato "wx+b" e aver applicato una funzione di attivazione, ad esempio la funzione step.
- Livello di output: questo è il livello finale in cui otteniamo l'output dai neuroni nel livello finale dopo il quale applichiamo una soglia e determiniamo la classe dei dati.
Dal diagramma sopra possiamo vedere un perceptron che prende due input come x1 e x2 che è connesso a un neurone che è uno strato nascosto che esegue alcuni calcoli e quindi otteniamo un output y hat, w1 e w2 sono pesi e b è bias .
Nel livello Nascosto vengono eseguiti due passaggi:
Passo 1 — Qui calcoliamo la seguente equazione:
z = w1x1 + w2x2 + b che può anche essere scritto come
Passaggio 2 — Dopo aver calcolato z, lo passiamo a una funzione di attivazione Act ( z ) che risulta in un valore e questo valore in realtà indica la probabilità prevista di un'etichetta di classe specifica, ad esempio una funzione a gradino che è
f(x) = 1, se x ≥ 0
f(x) = 0, se x < 0
Esistono diversi tipi di funzioni di attivazione, ad esempio sigmoid, Relu, softmax, Linear ecc.
Quindi questo è il funzionamento di un perceptron e anche questo accade in una sola direzione significa che dall'input all'output si verifica una singola propagazione direzionale nota anche come Forward Propagation, che nello scenario del mondo reale ci darà il modello meno generalizzato che tenderà a sottovalutare in forma sempre. Quindi, per risolvere questo problema, gli scienziati sono usciti con una soluzione nota come Multi Layered Perceptron o in altre parole che possiamo anche chiamare ANN.
Quindi fondamentalmente hanno introdotto più percettroni che prendono parte all'architettura con un'architettura densa a più strati che imitava più un cervello umano poiché il nostro cervello è costituito da più neuroni. In aggiunta a ciò il nostro cervello tende sempre ad imparare dai suoi errori, allo stesso modo in ANN quando il modello fornisce un output cercherà di fare previsioni più vicine al valore effettivo e per farlo deve propagarsi all'indietro per ottimizzare i pesi di conseguenza per produrre risultati più accurati che possiamo anche dire come riduzione della perdita.
Di seguito è riportata un'illustrazione per ANN
Nel diagramma sopra x1,x2,x3 sono caratteristiche di input w1,w2,w3,w4 sono pesi b1,b2 sono bias e yhat è l'output previsto.
Quindi sommando tutti i punti insieme con riferimento all'illustrazione sopra in ANN abbiamo più neuroni o percettroni collegati tra loro che propagheremo in avanti per produrre previsioni e quindi controllerà la perdita dal valore effettivo ed eseguirà la propagazione all'indietro in cui ottimizzerà i pesi e le distorsioni e di nuovo si propagano in avanti per calcolare la perdita. E questo continuerà ad accadere finché la perdita non sarà minima.
Propagazione all'indietro e aggiornamenti del peso
Ora diamo un'occhiata alla propagazione all'indietro in dettaglio.
Dopo la propagazione in avanti, l'output previsto viene confrontato con il valore effettivo e la perdita viene calcolata utilizzando vari tipi di metriche per la perdita come MSE, MAE, entropia incrociata binaria, entropia incrociata categorica ecc. perdita con l'aiuto di diversi tipi di ottimizzatori come SGD, RMSProp, Adam ecc. E questo ciclo continuerà a ripetersi fino a quando la perdita non sarà ridotta al minimo.
Come mostrato nel diagramma sopra, una volta che l'alimentazione in avanti è stata eseguita per ridurre la perdita, l'ANN si propaga all'indietro e trova il giusto peso per le connessioni tra i neuroni in modo da poter ottenere previsioni accurate.
Quindi, come viene effettivamente aggiornato il peso?
La risposta è molto semplice, dobbiamo costruire un'equazione in modo tale da sottrarre un valore dal vecchio peso, ora qual è quel valore diamo un'occhiata.
Diciamo che dobbiamo trovare il peso minimo in cui la perdita è minima come mostrato nel diagramma sopra, quindi quello che faremo è provare a convergere ai minimi globali facendo alcuni piccoli passi che saranno chiamati tasso di apprendimento e anche convergenza avviene con l'ausilio della pendenza che in questo caso è differenziale di Perdita rispetto al peso. Quindi, per riassumere questo con un'equazione matematica, la formula di aggiornamento del peso sarà simile alla seguente:
Qui il simbolo η è il tasso di apprendimento che è un iperparametro per fare passi durante la convergenza.
E questo concetto di trovare i minimi globali utilizzando la pendenza e il tasso di apprendimento è chiamato Gradient Descent nel mondo di AI/ML.
Come per i pesi, calcoli simili si verificano anche per i bias.
Ecco come funziona ANN. La propagazione in avanti e la propagazione all'indietro sono i due processi in cui il neurone calcola e ottimizza per prevedere risultati accurati.
E per fare ciò richiede alcuni componenti e iperparametri che sono:
- Livello di input
- Pesi e pregiudizi
- Strati nascosti
- Funzioni di attivazione
- Funzioni di perdita
- Ottimizzatori
- Tecniche di inizializzazione del peso
- Livello di output
Questo segna la fine del blog, ci vediamo presto nel prossimo fino ad allora "Happy Learning" .

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































