top of page

Funzioni di Attivazione nel deep learning la Guida Completa



Iniziamo con una definizione di funzione di attivazione


"Nelle reti neurali artificiali, ogni neurone forma una somma ponderata dei suoi input e trasmette il valore scalare risultante attraverso una funzione denominata funzione di attivazione". Definizione da Wikipedia

Suona un po' complicato? Non preoccuparti! Dopo aver letto questo articolo, avrai una migliore comprensione delle funzioni di attivazione. Negli esseri umani, il nostro cervello riceve input dal mondo esterno, esegue l'elaborazione sul neurone che riceve input e attiva la coda del neurone per generare le decisioni richieste. Allo stesso modo, nelle reti neurali, forniamo input come immagini, suoni, numeri, ecc., e l'elaborazione viene eseguita sul neurone artificiale, con un algoritmo che attiva lo strato di neurone finale corretto per generare risultati.

Funzioni di Attivazione nel deep learning la Guida Completa
Funzioni di Attivazione nel deep learning la Guida Completa

Prerequisiti :


Perché abbiamo bisogno di funzioni di attivazione?

Una funzione di attivazione determina se un neurone deve essere attivato o meno . Ciò implica che utilizzerà alcune semplici operazioni matematiche per determinare se l'input del neurone alla rete è rilevante o meno nel processo di previsione. La capacità di introdurre la non linearità in una rete neurale artificiale e generare output da una raccolta di valori di input alimentati a uno strato è lo scopo della funzione di attivazione.

Tipi di funzioni di attivazione

Le funzioni di attivazione possono essere suddivise in tre tipi:

Funzioni di Attivazione nel deep learning la Guida Completa
Funzioni di Attivazione nel deep learning la Guida Completa

Funzione di attivazione lineare

La funzione di attivazione lineare, spesso chiamata funzione di attivazione dell'identità , è proporzionale all'input. L'intervallo della funzione di attivazione lineare sarà (da -∞ a ∞). La funzione di attivazione lineare somma semplicemente il totale ponderato degli input e restituisce il risultato.

Funzione di attivazione lineare — Grafico
Funzione di attivazione lineare — Grafico

Matematicamente, può essere rappresentato come:

Funzione di attivazione lineare — Equazione
Funzione di attivazione lineare — Equazione

Pro e contro

  • Non è un'attivazione binaria perché la funzione di attivazione lineare fornisce solo una serie di attivazioni. Possiamo sicuramente connettere alcuni neuroni insieme e, se ci sono più attivazioni, possiamo calcolare il massimo (o il massimo morbido) in base a quello.

  • La derivata di questa funzione di attivazione è una costante. Vale a dire, il gradiente non è correlato alla x (input).


 

Funzione di attivazione passo binario


Un valore di soglia determina se un neurone deve essere attivato o meno in una funzione di attivazione a passi binari.

La funzione di attivazione confronta il valore di ingresso con un valore di soglia. Se il valore di input è maggiore del valore di soglia, il neurone viene attivato. È disabilitato se il valore di input è inferiore al valore di soglia, il che significa che il suo output non viene inviato al livello successivo o nascosto.

Funzione passo binario — Grafico
Funzione passo binario — Grafico

Matematicamente, la funzione di attivazione binaria può essere rappresentata come:

Funzione di attivazione del passaggio binario — Equazione
Funzione di attivazione del passaggio binario — Equazione

Pro e contro

  • Non può fornire output multivalore, ad esempio non può essere utilizzato per problemi di classificazione multiclasse.

  • Il gradiente della funzione passo è zero, il che rende difficile la procedura di propagazione all'indietro.



 

Funzioni di attivazione non lineare


Le funzioni di attivazione non lineare sono le funzioni di attivazione più utilizzate. Semplificano l'adattamento di un modello di rete neurale artificiale a una varietà di dati e la differenziazione tra gli output.

Le funzioni di attivazione non lineare consentono l'impilamento di più livelli di neuroni, poiché l'output sarebbe ora una combinazione non lineare di input passati attraverso più livelli. Qualsiasi output può essere rappresentato come output di calcolo funzionale in una rete neurale.

Queste funzioni di attivazione sono principalmente suddivise in base alla loro portata e alle loro curve. Il resto di questo articolo delineerà le principali funzioni di attivazione non lineare utilizzate nelle reti neurali.

1. Sigmoide

Sigmoid accetta un numero come input e restituisce un numero compreso tra 0 e 1. È semplice da usare e ha tutte le qualità desiderabili delle funzioni di attivazione: non linearità, differenziazione continua, monotonia e un intervallo di output impostato. Questo è utilizzato principalmente nei problemi di classificazione binaria. Questa funzione sigmoidea fornisce la probabilità dell'esistenza di una classe particolare.


  Funzione di attivazione sigmoidea — Grafico
Funzione di attivazione sigmoidea — Grafico

Matematicamente, può essere rappresentato come:

  Funzione di attivazione del sigmoide — Equazione
Funzione di attivazione del sigmoide — Equazione

Pro e contro

  • È di natura non lineare. Anche le combinazioni di questa funzione non sono lineari e darà un'attivazione analogica, a differenza della funzione di attivazione a passi binari. Ha anche un gradiente uniforme ed è buono per un problema di tipo classificatore.

  • L'uscita della funzione di attivazione sarà sempre nell'intervallo (0,1) rispetto a (-∞, ∞) della funzione di attivazione lineare. Di conseguenza, abbiamo definito un intervallo per le nostre attivazioni.

  • La funzione Sigmoide dà origine a un problema di "gradienti evanescenti" e i Sigmoidi saturano e uccidono i gradienti.

  • Il suo output non è centrato sullo zero e fa sì che gli aggiornamenti del gradiente vadano troppo lontano in direzioni diverse. Il valore di output è compreso tra zero e uno, quindi rende più difficile l'ottimizzazione.

  • La rete si rifiuta di saperne di più o è estremamente lenta.

2.TanH (tangente iperbolica)

TanH comprime un numero con valore reale nell'intervallo [-1, 1] . Non è lineare, ma è diverso da Sigmoid e il suo output è centrato sullo zero . Il vantaggio principale di ciò è che gli input negativi verranno mappati fortemente sugli input negativi e zero verranno mappati quasi a zero nel grafico di TanH.


Funzione di attivazione TanH — Grafico
Funzione di attivazione TanH — Grafico

Matematicamente, la funzione TanH può essere rappresentata come:

 Funzione di attivazione TanH — Equazione
Funzione di attivazione TanH — Equazione

Pro e contro

  • TanH ha anche il problema del gradiente di scomparsa, ma il gradiente è più forte per TanH rispetto al sigmoide (i derivati ​​​​sono più ripidi).

  • TanH è centrato sullo zero e i gradienti non devono spostarsi in una direzione specifica.

3.ReLU (Unità Lineare Rettificata)

ReLU sta per Rectified Linear Unit ed è una delle funzioni di attivazione più comunemente utilizzate nelle applicazioni. È stato risolto il problema della sfumatura sfumata perché il valore massimo del gradiente della funzione ReLU è uno. Ha anche risolto il problema della saturazione del neurone, poiché la pendenza non è mai zero per la funzione ReLU.


L'intervallo di ReLU è compreso tra 0 e infinito.

Funzione di attivazione ReLU — Grafico
Funzione di attivazione ReLU — Grafico

Matematicamente, può essere rappresentato come:

  Funzione di attivazione ReLU — Equazione
Funzione di attivazione ReLU — Equazione

Pro e contro

  • Poiché solo un certo numero di neuroni viene attivato, la funzione ReLU è molto più efficiente dal punto di vista computazionale rispetto alle funzioni sigmoide e TanH.

  • ReLU accelera la convergenza della discesa del gradiente verso il minimo globale della funzione di perdita grazie alla sua proprietà lineare e non saturante.

  • Uno dei suoi limiti è che dovrebbe essere utilizzato solo all'interno di livelli nascosti di un modello di rete neurale artificiale.

  • Alcuni gradienti possono essere fragili durante l'allenamento.

  • In altre parole, per le attivazioni nella regione (x<0) di ReLu, la pendenza sarà 0 per cui i pesi non verranno regolati durante la discesa. Ciò significa che quei neuroni che entrano in quello stato smetteranno di rispondere alle variazioni di input (semplicemente perché il gradiente è 0, non cambia nulla). Questo è chiamato problema ReLu morente .


4. ReLU che perde

Leaky ReLU è una versione aggiornata della funzione di attivazione ReLU per risolvere il problema ReLU morente, poiché ha una piccola pendenza positiva nell'area negativa. Tuttavia, la coerenza del vantaggio tra le attività è attualmente ambigua.


    Funzione di attivazione ReLU che perde — Grafico
Funzione di attivazione ReLU che perde — Grafico

Matematicamente, può essere rappresentato come

    Funzione di attivazione ReLU che perde — Equazione
Funzione di attivazione ReLU che perde — Equazione

Pro e contro

  • I vantaggi di Leaky ReLU sono gli stessi di ReLU, oltre al fatto che consente la backpropagation, anche per valori di input negativi.

  • Apportando piccole modifiche ai valori di input negativi, il gradiente del lato sinistro del grafico risulta essere un valore reale (diverso da zero). Di conseguenza, non ci sarebbero più neuroni morti in quell'area.

  • Le previsioni potrebbero non essere stabili per valori di input negativi.

5.ELU (Unità lineari esponenziali)

ELU è anche una delle varianti di ReLU che risolve anche il problema ReLU morto. ELU, proprio come ReLU che perde, considera anche i valori negativi introducendo un nuovo parametro alfa e moltiplicandolo per un'altra equazione. ELU è leggermente più costoso dal punto di vista computazionale rispetto a ReLU che perde ed è molto simile a ReLU ad eccezione degli input negativi. Sono entrambi in forma di funzione identità per input positivi.


  Grafico funzione di attivazione ELU
Grafico funzione di attivazione ELU

Matematicamente, può essere rappresentato come:

  Funzione di attivazione ELU — Equazione
Funzione di attivazione ELU — Equazione

Pro e contro

  • ELU è una forte alternativa a ReLU. Diversamente dalla ReLU, ELU può produrre uscite negative.

  • Le operazioni esponenziali sono presenti in ELU, quindi aumenta il tempo di calcolo.

  • Non avviene alcuna conoscenza del valore 'a' e il problema del gradiente di esplosione.


6. Softmax

Una combinazione di molti sigmoidi viene definita funzione Softmax. Determina la probabilità relativa. Simile alla funzione di attivazione sigmoidea, la funzione Softmax restituisce la probabilità di ciascuna classe/etichetta. Nella classificazione multiclasse, la funzione di attivazione softmax è più comunemente utilizzata per l'ultimo livello della rete neurale.

La funzione softmax fornisce la probabilità della classe corrente rispetto alle altre. Ciò significa che considera anche la possibilità di altre classi.


  Funzione di attivazione Softmax — Grafico
Funzione di attivazione Softmax — Grafico

Matematicamente, può essere rappresentato come:

    Funzione di attivazione Softmax — Equazione
Funzione di attivazione Softmax — Equazione

Pro e contro

  • Imita l'unica etichetta codificata meglio dei valori assoluti.

  • Perderemmo informazioni se usiamo valori assoluti (modulo), ma l'esponenziale si occupa di questo da solo.

  • La funzione softmax dovrebbe essere utilizzata anche per la classificazione multi-etichetta e l'attività di regressione.

7. Swish

Swish consente la propagazione di alcuni numeri di pesi negativi, mentre ReLU imposta tutti i pesi non positivi a zero. Questa è una proprietà cruciale che determina il successo delle funzioni di attivazione regolare non monotoniche, come quelle di Swish, in reti neurali progressivamente profonde.

È una funzione di attivazione automatica creata dai ricercatori di Google.

  Funzione di attivazione Swish — Grafico
Funzione di attivazione Swish — Grafico

Matematicamente, può essere rappresentato come:


  Funzione di attivazione Swish — Grafico
Funzione di attivazione Swish — Grafico

Pro e contro

  • Swish è una funzione di attivazione regolare che significa che non cambia improvvisamente direzione come fa ReLU vicino a x uguale a zero. Piuttosto, si piega dolcemente da 0 verso valori < 0 e poi di nuovo verso l'alto.

  • I valori non positivi sono stati azzerati nella funzione di attivazione ReLU. I numeri negativi, d'altra parte, possono essere utili per rilevare i modelli nei dati. A causa della scarsità, i grandi numeri negativi vengono spazzati via, risultando in una situazione vantaggiosa per tutti.

  • La funzione di attivazione del fruscio non essendo monotona migliora il termine dei dati di input e il peso da apprendere.

  • Con il tempo, probabilmente sorgeranno problemi leggermente più costosi dal punto di vista computazionale e più problemi con l'algoritmo.

Considerazioni importanti sulle funzioni di Attivazione

Nella scelta della corretta funzione di attivazione, è necessario considerare i seguenti problemi e problematiche:

Il gradiente di fuga è un problema comune riscontrato durante l'allenamento della rete neurale. Come una funzione di attivazione sigmoidea, alcune funzioni di attivazione hanno un piccolo intervallo di uscita (da 0 a 1). Quindi un enorme cambiamento nell'input della funzione di attivazione del sigmoide creerà una piccola modifica nell'output. Pertanto, anche la derivata diventa piccola. Queste funzioni di attivazione vengono utilizzate solo per reti poco profonde con solo pochi livelli. Quando queste funzioni di attivazione vengono applicate a una rete multistrato, il gradiente potrebbe diventare troppo piccolo per l'allenamento previsto.

I gradienti esplosivi sono situazioni in cui si accumulano enormi gradienti errati durante l'allenamento, con conseguenti enormi aggiornamenti dei pesi del modello di rete neurale. Quando ci sono gradienti esplosivi, potrebbe formarsi una rete instabile e la formazione non può essere completata. A causa dell'esplosione dei gradienti, i valori dei pesi possono potenzialmente crescere fino al punto in cui traboccano, con conseguente perdita di valori di NaN .

Note finali sulle funzioni di Attivazione

  • Tutti i livelli nascosti utilizzano generalmente le stesse funzioni di attivazione. La funzione di attivazione ReLU deve essere utilizzata solo nel livello nascosto per ottenere risultati migliori.

  • Le funzioni di attivazione Sigmoid e TanH non dovrebbero essere utilizzate negli strati nascosti a causa del gradiente di fuga, poiché rendono il modello più suscettibile ai problemi durante l'allenamento.

  • La funzione Swish viene utilizzata nelle reti neurali artificiali con una profondità superiore a 40 strati.

  • I problemi di regressione dovrebbero utilizzare funzioni di attivazione lineare

  • I problemi di classificazione binaria dovrebbero utilizzare la funzione di attivazione sigmoidea

  • I problemi di classificazione multiclasse possono utilizzare la funzione di attivazione softmax

Architettura della rete neurale e loro funzioni di attivazione utilizzabili:

  • Rete neurale convoluzionale (CNN): funzione di attivazione ReLU

  • Recurrent Neural Network (RNN): funzioni di attivazione di TanH o sigmoide



Vuoi mettere in pratica quello che hai letto ?


Oppure segui i tutorial correlati :