Pensa a ciascun singolo nodo come al proprio modello di regressione lineare, composto da dati di input, pesi, distorsioni (o soglie) e un output. La formula sarebbe simile a questa:
∑wixi + bias = w1x1 + w2x2 + w3x3 + bias
output = f(x) = 1 if ∑w1x1 + b>= 0; 0 if ∑w1x1 + b < 0
Una volta determinato un livello di input, vengono assegnati i pesi. Questi pesi aiutano a determinare l'importanza di una determinata variabile, con quelli più grandi che contribuiscono in modo più significativo all'output rispetto ad altri input. Tutti gli input vengono poi moltiplicati per i rispettivi pesi e poi sommati. In seguito, l'output viene passato attraverso una funzione di attivazione, che determina l'output. Se l'output supera una determinata soglia, "innesca" o attiva il nodo, passando i dati al livello successivo della rete. In questo modo, l'output di un nodo diventa l'input del nodo successivo. Questo processo di passaggio dei dati da un livello a quello successivo definisce questa rete neurale come una rete feedforward.
Vediamo come potrebbe apparire un singolo nodo utilizzando i valori binari. Possiamo applicare questo concetto a un esempio più tangibile, come la scelta di andare a fare surf (Sì: 1, No: 0). La decisione di andare o non andare è il nostro risultato previsto, o ŷ. Supponiamo che ci siano tre fattori che influenzano il tuo processo decisionale:
- Le onde sono buone? (Sì: 1, No: 0)
- La line-up è vuota? (Sì: 1, No: 0)
- C'è stato un recente attacco di squalo? (Sì: 0, No: 1)
Quindi, supponiamo quanto segue, assegnando i seguenti input:
- X1 = 1, visto che le onde sono belle e potenti
- X2 = 0, visto che c'è tanta gente
- X3 = 1, visto che non c'è stato un recente attacco di squalo
Ora dobbiamo assegnare dei pesi per determinare l'importanza. Pesi maggiori significano che particolari variabili sono di maggiore importanza per la decisione o il risultato.
- W1 = 5, visto che delle onde belle e potenti non sono frequenti
- W2 = 2, visto che le folle non sono una novità per te
- W3 = 4, visto che hai paura degli squali
Infine, assumeremo anche un valore di soglia pari a 3, che si tradurrebbe in un valore di distorsione pari a -3. Con tutti i vari input, possiamo iniziare a inserire i valori nella formula per ottenere l'output desiderato.
Ŷ = (1*5) + (0*2) + (1*4) - 3 = 6
Se utilizziamo la funzione di attivazione dall'inizio di questa sezione, possiamo determinare che l'output di questo nodo sarebbe 1, poiché 6 è maggiore di 0. In questo caso, andresti a fare surf; ma se modifichiamo i pesi o la soglia, possiamo ottenere risultati diversi dal modello. Quando osserviamo una decisione, come nell'esempio precedente, possiamo vedere come una rete neurale possa prendere decisioni sempre più complesse a seconda dell'output di decisioni o livelli precedenti.
Nell'esempio sopra, abbiamo utilizzato i percettroni per illustrare parte della matematica in gioco qui, ma le reti neurali sfruttano i neuroni sigmoidi, che si distinguono per avere valori compresi tra 0 e 1. Poiché le reti neurali si comportano in modo simile alle strutture ad albero decisionali, trasmettendo dati a cascata da un nodo all'altro, avere dei valori x compresi tra 0 e 1 ridurrà l'impatto di qualsiasi modifica di una singola variabile sull'output di qualsiasi nodo e, di conseguenza, sull'output della rete neurale.
Quando inizieremo a pensare a casi d'uso più pratici per le reti neurali, come il riconoscimento o la classificazione delle immagini, utilizzeremo l'apprendimento supervisionato, o set di dati etichettati, per addestrare l'algoritmo. Mentre addestriamo il modello, vorremo valutarne l'accuratezza utilizzando una funzione di costo (o perdita). Questo è comunemente indicato anche come errore quadrato medio (MSE, Mean Squared Error). Nell'equazione seguente,
- i rappresenta l'indice del campione,
- ŷ è il risultato previsto,
- y è il valore effettivo, e
- m è il numero di campioni.
= =1/2 ∑129_(=1)^▒( ̂^(() )−^(() ) )^2
In definitiva, l'obiettivo è minimizzare la nostra funzione di costo per garantire la correttezza dell'adattamento per ogni data osservazione. Man mano che il modello regola i suoi pesi e la sua distorsione, utilizza la funzione di costo e l'apprendimento per rinforzo per raggiungere il punto di convergenza, o il minimo locale. Il processo in cui l'algoritmo regola i suoi pesi è attraverso la discesa del gradiente, consentendo al modello di determinare la direzione da seguire per ridurre gli errori (o ridurre al minimo la funzione di costo). Con ogni esempio di addestramento, i parametri del modello si adattano per convergere gradualmente al minimo.
Consulta questo articolo di IBM Developer per una spiegazione più approfondita dei concetti quantitativi coinvolti nelle reti neurali.
La maggior parte delle reti neurali profonde sono feedforward, nel senso che fluiscono in una sola direzione, dall'input all'output. Tuttavia, è anche possibile addestrare il modello tramite la retropropagazione, ossia con uno spostamento nella direzione opposta, dall'output all'input. La retropropagazione ci consente di calcolare e attribuire l'errore associato a ciascun neurone, permettendoci di regolare e adattare adeguatamente i parametri del modello o dei modelli.