Funzione softmax

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

In matematica, una funzione softmax, o funzione esponenziale normalizzata,[1] è una generalizzazione di una funzione logistica che mappa un vettore -dimensionale di valori reali arbitrari in un vettore -dimensionale di valori compresi in un intervallo la cui somma è . La funzione è data da:

   per

La funzione softmax è anche il gradiente della funzione LogSumExp. La funzione softmax è usata in vari metodi di classificazione multi-classe, come la regressione logistica multinomiale,[2] analisi discriminante lineare multiclasse, classificatori bayesiani e reti neurali artificiali.[3]

Dato in input un vettore , la funzione softmax restituirà . Il risultato assegna gran parte del peso al numero , il cui valore in uscita risulta essere circa 20 volte maggiore del valore associato a . Questo è esattamente ciò per cui la funzione solitamente è usata: mettere in evidenza i valori più grandi e nascondere quelli che sono significativamente più piccoli del valore massimo.

Reti neurali artificiali

[modifica | modifica wikitesto]

La funzione softmax è spesso usata nello strato finale dei classificatori basati su reti neurali. Tali reti sono solitamente allenate in un regime di entropia incrociata, ottenendo una variante non lineare di regressione logistica multinomiale.

Dato che la funzione mappa un vettore e una specifica posizione ad un valore reale, per derivare bisogna tener conto della posizione:

Apprendimento per rinforzo

[modifica | modifica wikitesto]

Nel campo dell'apprendimento per rinforzo, una funzione softmax può essere usata per convertire valori in probabilità. Una delle funzioni solitamente usate è:

dove è la funzione Q e è un parametro chiamato "temperatura".[4] L'uso di questa funzione è generalmente indicato in alternativa alla strategia -greedy,[4][5]

Normalizzazione softmax

[modifica | modifica wikitesto]

Una normalizzazione sigmoidale (o normalizzazione softmax) serve a ridurre l'influenza di valori estremi o di outlier nei dati senza rimuoverli dal dataset. I dati sono trasformati in maniera non lineare usando una funzione sigmoidea.

La funzione sigmoidea logistica:[6]

La funzione tangente iperbolica:[6]

La funzione sigmoidea limita fra e l'intervallo dei valori normalizzati. La funzione è approssimativamente lineare vicino alla media ed ha una non-linearità liscia presso entrambi gli estremi.

La tangente iperbolica limita fra e l'intervallo dei valori normalizzati. La funzione è approssimativamente lineare vicino alla media, ma è pendente la metà rispetto alla funzione sigmoidea. Come la sigmoidea, è non lineare, liscia e monotona in entrambi gli estremi.

  1. ^ Bishop, p. 198.
  2. ^ Bishop, pp. 206-209.
  3. ^ Raquel Urtasun, Lecture 4: Neural Networks (PDF), su Introduction to Machine Learning, cs.toronto.edu, Università di Toronto - Dipartimento di Informatica, 2015, p. 19. URL consultato il 22 aprile 2017.
  4. ^ a b R. S. Sutton, A. G. Barto, 2.3 Softmax Action Selection, in Reinforcement Learning: An Introduction, Cambridge, The MIT Press, 1998. URL consultato il 22 aprile 2017 (archiviato dall'url originale il 25 giugno 2016).
  5. ^ (EN) S. Syafiie, F. Tadeo, E. Martinez, Softmax and ε-greedy policies applied to process control, in IFAC Proceedings Volumes, vol. 32, n. 12, IFAC Publisher, agosto-settembre 2004, pp. 729-734, DOI:10.1016/S1474-6670(17)31556-2.
  6. ^ a b Priddy, Keller, pp. 16–17.