Backpropagation: Come apprende una rete neurale?

Original article was published on Deep Learning on Medium


Notazione

  • a: output della funzione di attivazione del neurone
  • z: somma pesata degli input del neurone
  • x: campione di training con features x1, x2
  • apice (l): layer l di riferimento
  • pedice: neurone di riferimento

Ex:

1. Apprendimento, un processo di ottimizzazione

L’obiettivo di una Multi Layers Perceptrons (MLPs), ma in generale di ogni rete neurale, è quello di stimare i valori W e b tali per cui ad un’input x, venga associato un output y_pred. Matematicamente questo mapping è definito attraverso la funzione f:

Formula (1)

I valori di W, detti pesi, costituiscono le connessioni tra i neuroni. Il loro valore è determinato durante la fase di allenamento (training) in modo tale da minimizzare la funzione di perdita. Formalmente questo processo è espresso:

Formula (2)

dove il primo termine della somma costituisce la funzione di Loss (L) calcolata tra la predizione della rete (y_pred) e il relativo output target (y_true), R(W) è il termine di regolarizzazione mentre λ è il relativo parametro di regolarizzazione. J(W) esprime la funzione di costo complessiva calcolata sugli N campioni di batch.

La minimizzazione è un processo di ottimizzazione iterativo. In breve possiamo descriverlo così: nella prima iterazione, i pesi sono inizializzati con valori casuali. I dati, vengono fatti passare in foward lungo gli strati della rete ottenendo una predizione. La predizione viene poi confrontata con l’output target, calcolando attraverso la funzione di loss l’errore di predizione. Sulla base della perdita ottenuta, ad ogni iterazione, andremo a propagare in backward l’errore effettuando l’aggiornamento dei pesi.

Teoricamente…il processo di training termina quando sono stati determinati i valori di W tali per cui l’errore di predizione è il più basso possibile, o meglio, è stato raggiunto il minimo globale (ottimo) della funzione di loss L.

In realtà… per evitare l’overfitting, siamo alla ricerca di un Trade-off tra un basso valore di loss sul set di train ed un elevato valore di accuratezza sul test di validazione.

2. Backward pass

2.1 Regola di aggiornamento – Delta rule

Possiamo pensare al problema di ottimizzazione come ad un uomo che cammina in una valle in cui intorno ci sono delle montagne. Ognuno dei punti di questa valle corrisponde ad un certo valore di Loss calcolata in funzione dei pesi wi e del termine di bias bi. L’obiettivo del nostro amico è quello di trovare un percorso per arrivare in pianura. Per raggiungere il suo scopo dovrà percorrere una direzione di discesa. Matematicamente la direzione di discesa è data dal gradiente negativo. Quest’ultimo è il vettore delle derivate parziali della funzione di Loss lungo ogni dimensione wi e bi. Formalmente: