Reti neurali: esercizi interattivi

Negli esercizi interattivi che seguono, analizzerai ulteriormente i meccanismi interni di neurali profonde. Innanzitutto, vedrai come i parametri e gli iperparametri cambiano influire sulle previsioni della rete. Utilizzerai ciò che hai imparato per addestrare un neurali profonde per i dati non lineari.

Esercizio 1

Il widget seguente 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
  • Livello di output con 1 neurone
  • Funzione di attivazione ReLU applicata a tutti i nodi degli strati nascosti e il nodo di output

Rivedi la configurazione iniziale della rete (nota: non fare clic su ▶️ o >|) e poi completa le attività sotto il widget.

Attività 1

I valori delle tre caratteristiche di input del modello di rete neurale sono tutti 0.00. Fai clic su ciascun nodo nella rete per visualizzare tutti e i relativi valori. Prima di premere il pulsante di riproduzione (▶️), rispondi a questa domanda:

Che tipo di valore di output vuoi che verrà prodotto: positivo, negativo o pari a 0?
Valore di output positivo
Valore di output negativo
Valore di output pari a 0

Ora fai clic sul pulsante Gioca (▶️) sopra la rete e guarda tutti gli e i valori dei nodi di output. La risposta precedente era corretta?

Fai clic qui per una spiegazione

Il valore di output esatto che ottieni varia in base a come il peso e i parametri di bias vengono inizializzati in modo casuale. Tuttavia, poiché ogni neurone nello strato di input ha un valore pari a 0, le ponderazioni utilizzate per calcolare i valori dei nodi a strato nascosto saranno tutti azzerati. Ad esempio, il primo il calcolo del nodo dello strato nascosto sarà:

y = ReLU(w11* 0,00 + w21* 0,00 + w31* 0,00 + b)

y = ReLU(b)

Quindi il valore di ogni nodo di strato nascosto sarà uguale al valore ReLU del bias (b), che sarà 0 se b è negativo e b se stesso se b è 0 oppure positivo.

Il valore del nodo di output verrà quindi calcolato come segue:

y = ReLU(w11* x11 + w21* x21 + W31* x31 + W41* x41 + B)

Attività 2

Prima di modificare la rete neurale, rispondi alla seguente domanda:

Se aggiungi un altro strato nascosto alla rete neurale dopo il primo strato nascosto e assegna al nuovo strato 3 nodi, mantenendo i parametri di input e di ponderazione/biasità sono gli stessi, ovvero gli altri nodi calcoli saranno interessati?
Tutti i nodi nella rete, ad eccezione dei nodi di input
Solo i nodi primo strato nascosto
Solo il nodo di output

Ora modifica la rete neurale per aggiungere un nuovo strato nascosto con 3 nodi come segue:

  1. Fai clic sul pulsante + a sinistra del testo 1 strato nascosto per aggiungerne uno nuovo strato nascosto prima dello strato di output.
  2. Fai clic due volte sul pulsante + sopra il nuovo strato nascosto per aggiungere altri due nodi. al livello.

La risposta precedente era corretta?

Fai clic qui per una spiegazione

Cambia solo il nodo di output. Poiché l'inferenza per questa rete neurale, è "feed-forward" (avanzamento dei calcoli dall'inizio alla fine), l'aggiunta di un nuovo livello nella rete interessano solo i nodi dopo il nuovo e non quelli che lo precedono.

Attività 3

Fai clic sul secondo nodo (dall'alto) nel primo strato nascosto della rete grafico. Prima di apportare modifiche alla configurazione di rete, rispondi alle seguente domanda:

Se modifichi il valore dell'attributo peso w12 (visualizzato sotto il primo nodo di input, x1), quali altri nodi potrebbero essere interessati i calcoli per alcuni input valori?
Nessuno
Il secondo nodo in il primo strato nascosto, tutti i nodi nel secondo strato nascosto e di output.
Tutti i nodi della rete il primo strato nascosto, il secondo nascosto e il livello di output.

A questo punto, fai clic nel campo di testo per la ponderazione w12 (visualizzata sotto il primo nodo di input, x1), modifica il suo valore in 5.00 e premi Invio. Osserva gli aggiornamenti del grafico.

La risposta era corretta? Fai attenzione quando verifichi la tua risposta: se un nodo questo valore non cambia, significa che il calcolo sottostante non è cambiato?

Fai clic qui per una spiegazione

L'unico nodo interessato nel primo strato nascosto è il secondo nodo (il quella su cui hai fatto clic). I calcoli dei valori per gli altri nodi nel primo strato nascosto non contengono w12 come parametro, quindi non sono interessati. Sono interessati tutti i nodi nel secondo strato nascosto, poiché i calcoli dipendono dal valore del secondo nodo nel primo strato nascosto. Analogamente, il valore del nodo di output è influenzato perché i calcoli dipendono dai valori dei nodi nel secondo strato nascosto.

Pensi che la risposta sia "nessuna" perché nessuno dei valori dei nodi rete è cambiata quando hai modificato il valore di peso? Tieni presente che viene eseguita il calcolo di un nodo può cambiare senza modificare il relativo valore (ad es. ReLU(0) e ReLU(–5) producono entrambi un output pari a 0. Non fare ipotesi su come la rete è stata influenzata solo esaminando i valori dei nodi; assicurati di rivedere anche i calcoli.

Esercizio 2

Nella sezione Esercizi incrociati sulle caratteristiche nel modulo Dati categoriali, hai creato manualmente gli incroci di caratteristiche per adattarsi ai dati non lineari. Ora vedremo se puoi creare una rete neurale in grado di apprendere automaticamente come adattare i dati non lineari durante l'addestramento.

La tua attività: configura una rete neurale in grado di separare i punti arancioni da i punti blu del diagramma seguente, ottenendo una perdita inferiore a 0,2 su i dati di addestramento e di test.

Instructions:

Nel widget interattivo in basso:

  1. Modificare gli iperparametri della rete neurale sperimentando alcuni delle seguenti impostazioni di configurazione:
    • Aggiungi o rimuovi livelli nascosti facendo clic sui pulsanti + e - in corrispondenza a sinistra dell'intestazione LIVELLI NASCOSTI nel diagramma di rete.
    • Aggiungi o rimuovi i neuroni da uno strato nascosto facendo clic su + e - sopra una colonna di livello nascosto.
    • Modifica il tasso di apprendimento scegliendo un nuovo valore da Tasso di apprendimento menu a discesa sopra il diagramma.
    • Modifica la funzione di attivazione scegliendo un nuovo valore dal Menu a discesa Attivazione sopra il diagramma.
  2. Fai clic sul pulsante di riproduzione (▶️) sopra il diagramma per addestrare la rete neurale del modello utilizzando i parametri specificati.
  3. Osserva la visualizzazione del modello che adatta i dati durante l'addestramento dell'attività, così come Perdita di test e Valori di perdita di addestramento in nella sezione Output.
  4. Se il modello non raggiunge una perdita inferiore a 0,2 sui dati di test e addestramento, fai clic su Reimposta e ripeti i passaggi da 1 a 3 con un set di impostazioni diverso impostazioni. Ripeti questo processo fino a quando non ottieni i risultati desiderati.

Fai clic qui per scoprire la nostra soluzione

Siamo riusciti a ottenere una perdita sia per i test che per l'addestramento al di sotto di 0,2 grazie a:

  • Aggiunta di 1 strato nascosto contenente 3 neuroni.
  • Scegliere un tasso di apprendimento pari a 0,01.
  • Scelta di una funzione di attivazione della funzione ReLU.