Le 4 funzioni di attivazione neuronale più usate negli Artificial Neural Network

Source: Deep Learning on Medium

Le 4 funzioni di attivazione neuronale più usate negli Artificial Neural Network

Nell’articolo come funziona un Artificial Neural Network (spiegato in maniera semplice) abbiamo visto quale sia il meccanismo con cui una rete neurale artificiale analizzi un problema basandosi su differenti “concetti”. Abbiamo visto inoltre come, in questo processo, un ruolo cruciale sia giocato dalla funzione di attivazione.

La funzione di attivazione “f()”, in inglese Activation Function, determina il valore del segnale in uscita “Y in base alla somma dei valori in ingresso moltiplicati per i relativi pesi, ovvero “ΣwX”. Vale pertanto la relazione Y=f(ΣwX).

Ci sono diverse funzioni di attivazione, ma le più utilizzate possono essere considerate le seguenti quattro.

1. La funzione “soglia” (Threshold Function)

Il suo meccanismo è molto semplice, la funzione restituisce 1 nel caso in cui la somma pesata dei segnali in input è maggiore o uguale a zero, e 0 nei restanti casi. Il suo utilizzo è molto utile qualora si ha bisogno di un segnale in output binario del tipo Y/N.

2. Funzione di Sigmund (Sigmund Function)

Un po’ più complessa rispetto alla Threshold Function abbiamo la Sigmund Function (la stessa usata nella Regressione Logistica). Anche in questo caso il codominio della funzione, ovvero i valori che può restituire il neurone, spazia tra 0 ed 1 in un intervallo continuo. Infatti, la caratteristica di questa funzione è che smussata. Può essere utilizzata al posto della Threshold Function considerando il valore in uscita non come Y ma come probabilità che Y sia uguale ad uno, ovvero Prob(Y=1).

3. Funzione Rettificatrice (Rectifier Function)

La Rectifier Function è la funzione di attivazioni più utilizzata. Restituisce 0 qualora la somma pesata dei segnali in input è minore o uguale a zero, oppure ΣwX negli altri casi. Il codominio della funzione spazia in questo caso da 0 ad infinito.

4. Funzione Tangente Iperbolica (Hyperbolic Tangent Function)

Infine abbiamo la Hyperbolic Tangent Function, che è simile alla Sigmund dalla quale differisce per il semplice fatto che il suo codominio va da -1 a +1; caratteristica che la rende utile in determinate applicazioni.

Esempio

La nostra rete neurale, formata da un solo neurone, deve prevedere se gli utenti di un ecommerce compreranno oppure no un prodotto in base al loro comportamento. Quale activation function utilizzeremo per il neurone?

4

3

2

1

Soluzione:

Poiché per ogni utente ci sono solo due risultati possibili, ovvero COMPRA oppure NON COMPRA, il problema può essere modellizato con una variabile binaria [0/1]. Allora abbiamo due possibili opzioni nella scelta dell’activation function da utilizzare:

  • La Threshold function
  • La Sigmund function considerando il valore in output come la probabilità che avvenga l’acquisto, ovvero Y=Prob(Acquisto).

Quindi, quali funzioni di attivazione utilizzare nella rete?

Non c’è una regola definita, ma un setup molto frequente è quello di utilizzare la Rectifier Function per gli Hidden Layer e la Sigmund Function per l’ Output Layer. In un paper intitolato Deep Sparse Rectifier Neural Networks, Xavier Glorot individua i Rectifier Neurons come rappresentazione migliore dei neuroni biologici, motivo per cui tale configurazione è tra le più popolari.