Skip to content

Reti neurali, perceptron MLP e backpropagation

Il nostro cervello è composto da circa 1011 neuroni (unità computazionali) e 1015 sinapsi (connessioni).

Il neurone ha un funzionamento molto semplice: in base allo stimolo che riceve, è in grado di inviare o meno uno stimolo elettrico ai suoi vicini.

Sistemi complessi come il cervello umano si formano dall’interazione di un gran numero di unità semplici.

Il neurone artificiale (detto perceptron) è riprodotto con 2 operazioni matematiche in sequenza:

  • prodotto scalare 𝑾⋅𝒙;
  • funzione sigmoidale;

In questo modo abbiamo creato una funzione in grado di dividere uno spazio in 2 a seconda dell’input dato:

  • a sinistra si vede lo spazio diviso usando solo il prodotto scalare;
  • a destra è stata applicata la funzione sigmoidale;
Divisione del piano con gradino e sigmoidale

La funzione sigmoidale imita il comportamento di un neurone naturale: il segnale che esso invia cresce gradualmente tra l’intensità minima e la massima.

Essa fa parte di una famiglia di funzioni non lineari dette funzioni di squashing. Queste funzioni sono limitate superiormente e inferiormente. Quella usata più comunemente è:

𝑓(𝑥)=11+𝑒−𝑥Grafico funzione sigmoidale

Applicando la funzione sigmoidale, si può far rientrare l’output del prodotto scalare in un intervallo [0,1]. L’output della funzione può essere interpretato come una probabilità.

Rappresentazione di una rete a strati

Gli MLP sono composti da un gran numero di unità parallele interconnesse, organizzate in strati. L’output di uno strato diventa l’input dello strato successivo.

In un modello con almeno uno strato nascosto (né di input né di output), si può ottenere un modello flessibile capace di approssimare qualsiasi funzione ∈𝐶1.

  • Si prende una funzione di errore da ottimizzare (come la somma degli errori quadrati vista in precedenza (𝐸(𝑤))).
  • Si usa il gradient descent per trovare il valore ottimale dei pesi.

La backpropagation è l’operazione di calcolo del gradiente della funzione di errore rispetto ai pesi; il gradient descent usa il gradiente calcolato per spostare i pesi di un piccolo passo verso il punto di minimo.

Dato che il nostro modello è una composizione di funzioni, si deve usare la regola della catena per trovare il gradiente.

d𝑓d𝑥=d𝑓d𝑔d𝑔d𝑥

È un problema non ancora risolto; i risultati sul campo dimostrano però che è possibile allenare modelli affidabili anche quando la discesa si ferma su punti di minimo locale.