Negli esercizi interattivi qui sotto, esplorerai ulteriormente il funzionamento interno delle reti neurali. Innanzitutto, vedrai come le modifiche dei parametri e degli iperparametri influenzano le previsioni della rete. Poi userai ciò che hai imparato per addestrare una rete neurale a elaborare dati non lineari.
Esercizio 1
Il seguente widget imposta una rete neurale con la seguente configurazione:
- Livello di input con 3 neuroni contenenti i valori
0.00 , 0.00 e 0.00 - Strato nascosto con 4 neuroni
- Strato di output con 1 neurone
- Funzione di attivazione ReLU applicata a tutti i nodi dello strato nascosto e al nodo di output
Rivedi la configurazione iniziale della rete (nota: non cliccare ancora sui pulsanti ▶️ o >| ), quindi completa le attività sotto il widget.
Compito 1
I valori per le tre feature di input del modello di rete neurale sono tutti pari 0.00 . Clicca su ciascun nodo della rete per visualizzare tutti i valori inizializzati. Prima di premere il pulsante Play ( ▶️ ), rispondi a questa domanda:
Quale tipo di valore di output pensi che verrà prodotto: positivo, negativo o 0?
Valore di output positivo
Hai scelto un valore di output positivo . Segui le istruzioni seguenti per eseguire l'inferenza sui dati di input e verificare se hai ragione.
Valore di output negativo
Hai scelto un valore di output negativo . Segui le istruzioni seguenti per eseguire l'inferenza sui dati di input e verificare se hai ragione.
Valore di output pari a 0
Hai scelto il valore di output 0. Segui le istruzioni sottostanti per eseguire l'inferenza sui dati di input e verificare se hai ragione.
Ora clicca sul pulsante Play (▶️) sopra la rete e osserva tutti i valori del livello nascosto e del nodo di output popolarsi. La tua risposta era corretta?
Clicca qui per una spiegazione
Il valore di output esatto ottenuto varierà in base al modo in cui i parametri di peso e bias vengono inizializzati casualmente. Tuttavia, poiché ogni neurone nel livello di input ha un valore pari a 0, i pesi utilizzati per calcolare i valori dei nodi del livello nascosto saranno tutti azzerati. Ad esempio, il calcolo del primo nodo del livello nascosto sarà:
y = ReLU(w 11 * 0,00 + w 21 * 0,00 + w 31 * 0,00 + b)
y = ReLU(b)
Quindi il valore di ciascun nodo dello strato nascosto sarà uguale al valore ReLU del bias (b), che sarà 0 se b è negativo e b stesso se b è 0 o positivo.
Il valore del nodo di output verrà quindi calcolato come segue:
y = ReLU(l 11 * x 11 + l 21 * x 21 + l 31 * x 31 + l 41 * x 41 + b)
Compito 2
Prima di modificare la rete neurale, rispondi alla seguente domanda:
Se si aggiunge un altro livello nascosto alla rete neurale dopo il primo livello nascosto e si assegnano a questo nuovo livello 3 nodi, mantenendo invariati tutti i parametri di input e di peso/bias, quali altri calcoli dei nodi saranno interessati?
Tutti i nodi della rete, eccetto i nodi di input
Hai scelto tutti i nodi della rete, tranne i nodi di input . Segui le istruzioni seguenti per aggiornare la rete neurale e verificare se hai ragione.
Solo i nodi nel primo strato nascosto
Hai scelto solo i nodi nel primo livello nascosto . Segui le istruzioni qui sotto per aggiornare la rete neurale e verificare se hai ragione.
Solo il nodo di output
Hai scelto solo il nodo di output . Segui le istruzioni qui sotto per aggiornare la rete neurale e verificare se hai ragione.
Ora modifica la rete neurale per aggiungere un nuovo livello nascosto con 3 nodi come segue:
- Fare clic sul pulsante + a sinistra del testo 1 livello nascosto per aggiungere un nuovo livello nascosto prima del livello di output.
- Fare clic due volte sul pulsante + sopra il nuovo livello nascosto per aggiungere altri 2 nodi al livello.
La tua risposta qui sopra era corretta?
Clicca qui per una spiegazione
Cambia solo il nodo di output. Poiché l'inferenza per questa rete neurale è "feed-forward" (i calcoli procedono dall'inizio alla fine), l'aggiunta di un nuovo livello alla rete influenzerà solo i nodi successivi al nuovo livello, non quelli precedenti.
Compito 3
Fare clic sul secondo nodo (dall'alto) nel primo livello nascosto del grafico di rete. Prima di apportare modifiche alla configurazione di rete, rispondere alla seguente domanda:
Se si modifica il valore del peso w 12 (visualizzato sotto il primo nodo di input, x 1 ), quali altri calcoli dei nodi potrebbero essere influenzati per alcuni valori di input?
Nessuno
Hai scelto "nessuno" . Segui le istruzioni qui sotto per aggiornare la rete neurale e verificare se hai ragione.
Il secondo nodo nel primo livello nascosto, tutti i nodi nel secondo livello nascosto e il nodo di output.
Hai scelto il secondo nodo nel primo livello nascosto, tutti i nodi nel secondo livello nascosto e il nodo di output . Segui le istruzioni seguenti per aggiornare la rete neurale e verificare se hai ragione.
Tutti i nodi nel primo strato nascosto, nel secondo strato nascosto e nello strato di output.
Hai scelto tutti i nodi nel primo livello nascosto, nel secondo livello nascosto e nel livello di output . Segui le istruzioni seguenti per aggiornare la rete neurale e verificare se hai ragione.
Ora, clicca nel campo di testo per il peso w 12 (visualizzato sotto il primo nodo di input, x 1 ), modifica il suo valore in 5.00 e premi Invio. Osserva gli aggiornamenti del grafico.
La tua risposta è corretta? Fai attenzione quando verifichi la tua risposta: se il valore di un nodo non cambia, significa che il calcolo sottostante non è cambiato?
Clicca qui per una spiegazione
L'unico nodo interessato nel primo livello nascosto è il secondo nodo (quello su cui hai cliccato). I calcoli dei valori per gli altri nodi nel primo livello nascosto non contengono w 12 come parametro, quindi non sono interessati. Tutti i nodi nel secondo livello nascosto sono interessati, poiché i loro calcoli dipendono dal valore del secondo nodo nel primo livello nascosto. Analogamente, il valore del nodo di output è interessato perché i suoi calcoli dipendono dai valori dei nodi nel secondo livello nascosto.
Pensavi che la risposta fosse "nessuno" perché nessuno dei valori dei nodi nella rete è cambiato quando hai modificato il valore del peso? Nota che un calcolo sottostante per un nodo può cambiare senza modificare il valore del nodo (ad esempio, ReLU(0) e ReLU(–5) producono entrambi un output pari a 0). Non fare supposizioni su come la rete sia stata influenzata solo osservando i valori dei nodi; assicurati di rivedere anche i calcoli.
Esercizio 2
Negli esercizi "Feature cross" nel modulo "Dati categorici" , hai costruito manualmente delle feature cross per adattare i dati non lineari. Ora, vedrai se riesci a costruire una rete neurale in grado di apprendere automaticamente come adattare i dati non lineari durante l'addestramento.
Il tuo compito: configurare una rete neurale in grado di separare i punti arancioni dai punti blu nel diagramma sottostante, ottenendo una perdita inferiore a 0,2 sia sui dati di addestramento che su quelli di test.
Istruzioni:
Nel widget interattivo qui sotto:
- Modificare gli iperparametri della rete neurale sperimentando alcune delle seguenti impostazioni di configurazione:
- Aggiungere o rimuovere livelli nascosti facendo clic sui pulsanti + e - a sinistra dell'intestazione LIVELLI NASCOSTI nel diagramma di rete.
- Aggiungi o rimuovi neuroni da un livello nascosto cliccando sui pulsanti + e - sopra una colonna del livello nascosto.
- Modificare il tasso di apprendimento scegliendo un nuovo valore dal menu a discesa Tasso di apprendimento sopra il diagramma.
- Modificare la funzione di attivazione scegliendo un nuovo valore dal menu a discesa Attivazione sopra il diagramma.
- Fare clic sul pulsante Riproduci (▶️) sopra il diagramma per addestrare il modello di rete neurale utilizzando i parametri specificati.
- Osservare la visualizzazione del modello che adatta i dati man mano che l'addestramento procede, nonché i valori di Perdita di test e Perdita di addestramento nella sezione Output .
- Se il modello non raggiunge una perdita inferiore a 0,2 sui dati di test e di addestramento, fare clic su "Reimposta" e ripetere i passaggi da 1 a 3 con un diverso set di impostazioni di configurazione. Ripetere questa procedura fino a ottenere i risultati desiderati.
Clicca qui per la nostra soluzione
Siamo riusciti a ottenere una perdita sia nei test che nell'addestramento inferiore a 0,2 tramite:
- Aggiunta di 1 livello nascosto contenente 3 neuroni.
- Scegliendo un tasso di apprendimento pari a 0,01.
- Scelta di una funzione di attivazione di ReLU.