Reti neurali: nodi e strati nascosti

Per costruire una rete neurale che apprenda le non linearità , si parte dalla seguente struttura di modello familiare: un modello lineare della forma $y' = b + w_1x_1 + w_2x_2 + w_3x_3$.

Possiamo visualizzare questa equazione come mostrato di seguito, dove $x_1$, $x_2$ e $x_3$ sono i nostri tre nodi di input (in blu) e $y'$ è il nostro nodo di output (in verde).

Esercizio 1

Nel modello sopra, i valori di peso e bias sono stati inizializzati in modo casuale. Eseguite le seguenti attività per familiarizzare con l'interfaccia ed esplorare il modello lineare. Per ora potete ignorare il menu a discesa "Funzione di attivazione" ; ne parleremo più avanti nel modulo.

  1. Fare clic sul pulsante Riproduci (▶️) sopra la rete per calcolare il valore del nodo di output per i valori di input $x_1 = 1,00$, $x_2 = 2,00$ e $x_3 = 3,00$.

  2. Fare clic sul secondo nodo nel layer di input e aumentare il valore da 2,00 a 2,50. Notare che il valore del nodo di output cambia. Selezionare i nodi di output (in verde) e rivedere il pannello Calcoli per vedere come è stato calcolato il valore di output.

  3. Fare clic sul nodo di output (in verde) per visualizzare i valori dei parametri di peso ($w_1$, $w_2$, $w_3$) e di bias ($b$). Ridurre il valore di peso per $w_3$ (notare ancora una volta che il valore del nodo di output e i calcoli seguenti sono cambiati). Quindi, aumentare il valore di bias. Esaminare l'impatto di queste modifiche sull'output del modello.

Aggiunta di livelli alla rete

Si noti che, modificando i valori di peso e bias della rete nell'Esercizio 1 , la relazione matematica complessiva tra input e output non è cambiata. Il nostro modello è ancora un modello lineare.

Ma cosa succede se aggiungiamo un altro livello alla rete, tra quello di input e quello di output? Nella terminologia delle reti neurali, i livelli aggiuntivi tra quello di input e quello di output sono chiamati livelli nascosti , e i nodi di questi livelli sono chiamati neuroni .

Il valore di ciascun neurone nello strato nascosto viene calcolato allo stesso modo dell'output di un modello lineare: si prende la somma del prodotto di ciascuno dei suoi input (i neuroni nello strato di rete precedente) e un parametro di peso univoco, più il bias. Analogamente, i neuroni nello strato successivo (in questo caso, lo strato di output) vengono calcolati utilizzando i valori dei neuroni dello strato nascosto come input.

Questo nuovo livello nascosto consente al nostro modello di ricombinare i dati di input utilizzando un altro set di parametri. Questo può aiutare il nostro modello ad apprendere relazioni non lineari?

Esercizio 2

Abbiamo aggiunto al modello uno strato nascosto contenente quattro neuroni.

Fare clic sul pulsante Riproduci (▶️) sopra la rete per calcolare il valore dei quattro nodi dello strato nascosto e del nodo di output per i valori di input $x_1 = 1,00$, $x_2 = 2,00$ e $x_3 = 3,00$.

Quindi esplora il modello e utilizzalo per rispondere alle seguenti domande.

Quanti parametri (pesi e bias) ha questo modello di rete neurale?
4
Il nostro modello originale nell'esercizio 1 aveva quattro parametri: w 11 , w 21 , w 31 e b. Poiché questo modello contiene uno strato nascosto, ci sono più parametri.
12
Si noti che il numero totale di parametri include sia i parametri utilizzati per calcolare i valori dei nodi nel livello nascosto dai valori di input, sia i parametri utilizzati per calcolare il valore di output dai valori dei nodi nel livello nascosto.
16
Si noti che il numero totale di parametri include sia i parametri di peso che quelli di bias.
21
Per calcolare ciascuno dei 4 valori dei nodi nel livello nascosto vengono utilizzati 4 parametri: 3 pesi (uno per ciascun valore di input) e un bias, per un totale di 16 parametri. Per calcolare il valore di output vengono utilizzati 5 parametri: 4 pesi (uno per ciascun nodo nel livello nascosto) e un bias. In totale, questa rete neurale ha 21 parametri.

Prova a modificare i parametri del modello e osserva l'effetto sui valori dei nodi del livello nascosto e sul valore di output (puoi consultare il pannello Calcoli qui sotto per vedere come sono stati calcolati questi valori).

Questo modello può apprendere le non linearità?

Fai clic su ciascuno dei nodi nel livello nascosto e sul nodo di output e analizza i calcoli seguenti. Cosa noti in tutti questi calcoli?
NO

Se fai clic su ciascuno dei nodi nel livello nascosto e rivedi i calcoli sottostanti, vedrai che sono tutti lineari (comprese le operazioni di moltiplicazione e addizione).

Se clicchi sul nodo di output e rivedi il calcolo sottostante, noterai che anche questo calcolo è lineare. I calcoli lineari eseguiti sull'output di calcoli lineari sono anch'essi lineari, il che significa che questo modello non può apprendere non linearità.