Tipi di funzioni di attivazione nelle reti neurali

Tipi di funzioni di attivazione nelle reti neurali

Le funzioni di attivazione per le reti neurali sono una parte essenziale dell’apprendimento profondo poiché influiscono sull’accuratezza e sull’efficienza del modello di addestramento utilizzato per creare o suddividere una rete neurale di grandi dimensioni e sull’output dei modelli di apprendimento profondo. La funzione di attivazione è uno strumento prezioso per le reti neurali poiché consente loro di concentrarsi sui dati rilevanti scartando il resto. Come qualsiasi altra funzione, la funzione di attivazione (la funzione di trasferimento) prende un input e restituisce un output proporzionale a quell’input. La funzione di attivazione di un nodo in una rete neurale specifica l’output del nodo in risposta a un determinato input o gruppo di input.

Effettivamente scelgono quali neuroni attivare o disattivare per ottenere il risultato desiderato. L’input viene anche trasformato in modo non lineare per migliorare le prestazioni di una rete neurale complessa. Qualsiasi informazione nell’intervallo da 1 a -1 può avere il suo output normalizzato con la funzione di attivazione. Poiché le reti neurali vengono spesso addestrate su milioni di punti dati, è essenziale che la funzione di attivazione sia veloce e che minimizzi il tempo necessario per calcolare i risultati.

Esaminiamo ora la struttura delle reti neurali e vediamo come viene realizzata l’architettura delle reti neurali e quali elementi sono presenti nelle reti neurali.

Una rete neurale artificiale contiene un gran numero di neuroni individuali collegati. Sono specificati la funzione di attivazione, il bias e il peso di ciascuno.

  • Layer di input: i dati grezzi del dominio vengono inviati al layer di input. Questo layer è il livello più basso in cui avviene qualsiasi calcolo. L’unica cosa che fanno questi nodi è inoltrare i dati al livello successivo nascosto.
  • Hidden layer: dopo aver ricevuto le caratteristiche dal layer di input, il layer nascosto esegue varie operazioni prima di passare il risultato al layer di output. I nodi del secondo layer sono nascosti alla vista, fornendo uno strato di astrazione per la rete neurale sottostante.
  • Layer di output: l’output del layer nascosto della rete viene riunito in questo layer, che fornisce il valore finale della rete.

Importanza delle funzioni di attivazione

Poiché un’equazione lineare è un polinomio di solo un grado, una rete neurale senza una funzione di attivazione è semplicemente un modello di regressione lineare. È facile da risolvere ma limitato nella capacità di affrontare problemi complicati o polinomi di grado superiore.

Una funzione di attivazione viene utilizzata in una rete neurale per fornire non linearità. Sebbene il calcolo della funzione di attivazione aggiunga un passaggio extra a ogni layer durante la propagazione in avanti, ne vale la pena.

In assenza di una funzione di attivazione, ogni neurone eseguirebbe una trasformazione lineare sugli input utilizzando i pesi e i bias. La composizione di due funzioni lineari è a sua volta una funzione lineare; quindi il numero totale di layer nascosti nella rete neurale non influisce sul suo comportamento.

Tipi di funzioni di attivazione

Le reti neurali sono classificate principalmente in tre parti in cui vengono utilizzate diverse funzioni di attivazione.

  1. Binary step function
  2. Linear function
  3. Non-linear activation function

Binary Step Neural Network Activation Function

  1. Binary Step Function

Questa funzione di attivazione è piuttosto semplice e serve principalmente come classificatore basato su una soglia in cui viene impostato un valore di soglia per determinare se l’output di un determinato neurone è attivato. Se il valore dell’input per la funzione di attivazione è maggiore di una determinata soglia, il neurone viene attivato e il suo output viene trasmesso al prossimo layer nascosto; altrimenti, il neurone viene disattivato.

Limitazioni:

  • Non è adatto per problemi che richiedono valori multipli, come la classificazione multiclasse, poiché fornisce solo risultati monovalori.
  • Poiché la funzione di passo non ha un gradiente, la retropropagazione incontra difficoltà.

Linear Neural Network Action Function

  1. Linear Function

Una funzione di attivazione in cui l’output è uguale all’input viene chiamata funzione di attivazione lineare. Questa funzione è anche chiamata “nessuna attivazione” o “funzione identità” (x1.0). La funzione prende la somma pesata dell’input e restituisce il valore senza modificarlo. In altre parole, la nostra funzione è proporzionale al totale dei neuroni o dell’input. Pertanto, abbiamo una funzione di attivazione lineare. La generazione di una vasta gamma di attivazioni è più efficiente utilizzando funzioni di attivazione lineari. Una linea con una pendenza positiva può aumentare il tasso di attivazione in risposta a un aumento del tasso di input.

Limitazioni:

  • La retropropagazione non può essere utilizzata poiché la derivata della funzione è una costante senza alcuna influenza sull’input x.
  • L’ultimo strato della rete neurale è sempre una funzione lineare del primo strato. Una funzione di attivazione lineare elimina tutti i suoi strati per ridurre la rete neurale alla sua forma più semplice. Quando una funzione di attivazione lineare viene applicata a una rete neurale, tutti gli strati si fondono efficacemente in un unico super strato.

Funzione di Attivazione Non Lineare della Rete Neurale

  1. Funzione di Attivazione Sigmoidale

Questa funzione accetta numeri reali come input e restituisce interi compresi tra 0 e 1. Il valore di output sarà più vicino a 1.0 quanto più grande (più positivo) è l’input e sarà più vicino a 0.0 quanto più piccolo (più negativo) è l’input. Di conseguenza, trova la sua applicazione più comune nei modelli il cui output richiede una previsione di probabilità. Una distribuzione sigmoide è appropriata poiché tutte le probabilità si trovano tra 0 e 1. Viene anche chiamata funzione logistica.

Limitazioni:

  • Le funzioni logistiche non producono risultati simmetrici vicino allo zero. Ciò garantisce che tutti gli output dei neuroni abbiano lo stesso segno. Ciò complica l’addestramento intrinsecamente instabile della rete neurale.

2.  Funzione di Attivazione ReLU (Unità Lineare Rettificata)

Oggi, la ReLU è la funzione di attivazione più popolare. Poiché è un componente cruciale di qualsiasi sistema di deep learning o rete neurale convoluzionale. Sebbene l’intervallo 0-infinito della funzione presenti alcune sfide, il fatto che i valori negativi vengano convertiti in zero con un tasso così elevato significa che non si adatta né si adatta correttamente ai dati. Il problema critico è che la funzione ReLU non attiva tutti i neuroni contemporaneamente. I neuroni vengono disattivati quando la trasformazione lineare produce un valore inferiore a 0. Poiché ReLU è lineare e non satura, accelera l’avvicinamento del gradiente alla minima globale della funzione di perdita.

Limitazioni:

  • A causa della possibilità che i pesi diventino negativi con un tasso di apprendimento elevato, il termine di output potrebbe anche essere dannoso. Ridurre il tasso di apprendimento è una possibile soluzione per lo stesso problema.
  • La capacità del modello di adattarsi o apprendere correttamente dai dati è compromessa poiché tutti i valori di input negativi vengono immediatamente impostati a zero.

3.  Funzione Tanh

La funzione Tanh è anche chiamata funzione iperbolica. Tanh è una versione migliorata della Sigmoid logistica. La funzione Tanh ha un intervallo da -1 a 1. Tanh è anche sigmoidale (a forma di s). Gli input negativi vengono mappati fortemente negativamente, mentre gli input zero vengono mappati vicino a zero, il che è un vantaggio quando si traccia un grafico tanh. Possiamo differenziare la funzione. Anche se la funzione stessa è monotona, la sua derivata non lo è.

Limitazioni:

  • Simile alla funzione di attivazione sigmoidale, soffre del problema dei gradienti che scompaiono. E il gradiente della funzione tanh è molto più ripido rispetto a quello della Sigmoid.

4.  Funzione Leaky ReLU

A causa della sua leggera pendenza positiva nell’area negativa, Leaky ReLU è una variante migliorata della funzione ReLU che può essere utilizzata per evitare il problema del Dying ReLU. Di conseguenza, i nodi non vengono disattivati e si evita il problema dei nodi morti di ReLU poiché i valori negativi non vengono convertiti in 0.

Limitazioni:

  • L’apprendimento dei parametri del modello può essere noioso quando il gradiente è minimo per i valori negativi.

5.  Funzione Parametric ReLU

La funzione P-ReLU o Parametric, poiché i valori negativi non raggiungono lo 0, i nodi non vengono disattivati e non si verifica il problema del Dying ReLU, ReLU è una variante del Leaky ReLU che cerca di sostituire la metà negativa di ReLU con una linea di pendenza.

Limitazioni:

  • In base al valore del parametro di pendenza, può produrre risultati variabili per diversi problemi.

6.  Funzione Exponential Linear Units

La funzione di attivazione ELU è un’altra opzione ed è ben nota per la sua convergenza rapida e la qualità dell’output. Un’esponenziale modificata viene sostituita al terminale negativo. Purtroppo, c’è un crescente overhead computazionale, ma almeno il problema di ReLU non è più terminale. Riduce la probabilità del problema “dead” ReLU fornendo una curva “log” per i valori di input negativi. Aiuta la rete a regolare in modo appropriato i suoi bias e pesi.

Limitazioni:

  • L’inclusione di un’operazione esponenziale provoca un aumento del tempo di elaborazione.
  • Il valore di ‘a’ non viene acquisito in alcun modo e il problema dell’esplosione del gradiente è una delle principali limitazioni.

7. Funzione di Unità Lineari Esponenziali Scalate

La normalizzazione interna è gestita da SELU, sviluppato per reti di auto-normalizzazione e garantisce il mantenimento della media e della varianza di ogni livello. Modificando la media e la varianza, SELU rende possibile questa normalizzazione. Poiché la funzione di attivazione ReLU non può produrre valori negativi, SELU può spostare la media in modi precedentemente impossibili. La varianza può essere modificata utilizzando i gradienti.

Per essere amplificata, la funzione di attivazione SELU richiede un’area con un gradiente maggiore di uno. La convergenza della rete avviene più rapidamente quando viene utilizzata una normalizzazione interna più che una normalizzazione esterna.

8. Funzione di Unità Lineari di Errore Gaussiano

Molti dei modelli NLP più popolari, tra cui BERT, ROBERTa e ALBERT, sono compatibili con la funzione di attivazione GELU. Le caratteristiche di Dropout, zoneout e ReLU sono combinate per ispirare questa funzione di attivazione. In tutti i compiti di computer vision, NLP e riconoscimento vocale, la non linearità di GELU migliora le prestazioni più delle attivazioni ReLU ed ELU.

9. Funzione di Attivazione Softmax

Proprio come l’attivazione sigmoide assegna un valore a ciascuna variabile di input in base al suo peso, softmax assegna un valore a ciascuna variabile di input in base alla somma di questi pesi, che alla fine è uno. Ecco perché softmax viene tipicamente utilizzato nel livello di output, l’ultimo livello utilizzato per la presa di decisioni.

Conclusione

Per comprendere meglio e svolgere compiti sempre più complessi, l’input viene spesso sottoposto a una trasformazione non lineare e funzioni di attivazione come queste svolgono un ruolo cruciale in questo processo. I livelli nascosti di una rete neurale avranno tipicamente la stessa funzione di attivazione. Poiché i parametri della rete possono essere appresi tramite backpropagation, questa funzione di attivazione deve essere differenziabile. Abbiamo trattato le funzioni di attivazione più comuni, le loro limitazioni (se presenti) e come vengono utilizzate.

Nonostante la diffusa familiarità con la “Funzione di Attivazione”, pochi amano contemplarne gli effetti. Perché vengono utilizzate, come contribuiscono, cosa deve essere detto, ecc. Anche se le questioni possono sembrare semplici, le dinamiche sottostanti possono essere piuttosto complesse.

Riferimenti:

  • https://www.analyticssteps.com/blogs/7-types-activation-functions-neural-network
  • https://towardsdatascience.com/activation-functions-neural-networks-1cbd9f8d91d6
  • https://thehackweekly.com/8-most-popular-types-of-activation-functions-in-neural-networks/
  • https://www.v7labs.com/blog/neural-networks-activation-functions

Il post <strong>Tipo di Funzioni di Attivazione nelle Reti Neurali</strong> è apparso per la prima volta su MarkTechPost.