I matematikk er **softmax-funksjonen**, eller **den normaliserte eksponentielle funksjonen**:198, en generalisering av den logistiske funksjonen, som «skviser sammen» en *K*-dimensjonal vektor {\displaystyle \mathbf {z} } av vilkårlige reelle verdier til en *K*-dimensjonal vektor {\displaystyle \sigma (\mathbf {z} )} av reelle verdier i intervallet (0, 1) med sum 1. Funksjonen er gitt ved

{\displaystyle \sigma (\mathbf {z} )\_{j}={\frac {e^{z\_{j}}}{\sum \_{k=1}^{K}e^{z\_{k}}}}}    for *j* = 1, …, *K*.
I sannsynlighetsteori blir output av softmax-funksjonen brukt til å representere en kategorisk fordeling – altså en sannsynlighetsfordeling over *k* ulike mulige utfall. Faktisk er det en gradient-log-normalisator av den kategoriske sannsynlighetsfordelingen.

Softmax-funksjonen blir brukt i ulike flerklassesklassifiseringsmetoder, som for eksempel multinomial logistisk regresjon,:206–209 flerklasses lineær diskriminantanalyse, naiv Bayes-klassifikatorer, og kunstige nevrale nettverk. I multinomial logistisk regresjon og lineær diskriminantanalyse er input til funksjonen resultatet av *K* forskjellige lineære funksjoner; da er den predikerte sannsynligheten for den *j*-te klassen gitt en vektor **x** for utvalget og en vektor **w** for vektingen lik:

{\displaystyle P(y=j|\mathbf {x} )={\frac {e^{\mathbf {x} ^{\mathsf {T}}\mathbf {w} \_{j}}}{\sum \_{k=1}^{K}e^{\mathbf {x} ^{\mathsf {T}}\mathbf {w} \_{k}}}}}
Dette kan sees på som sammensetningen (komposisjonen) av K lineære funksjoner {\displaystyle \mathbf {x} \mapsto \mathbf {x} ^{\mathsf {T}}\mathbf {w} \_{1},\ldots ,\mathbf {x} \mapsto \mathbf {x} ^{\mathsf {T}}\mathbf {w} \_{K}} og softmax-funksjonen (der {\displaystyle \mathbf {x} ^{\mathsf {T}}\mathbf {w} } betegner det indre produktet av {\displaystyle \mathbf {x} } og \mathbf{w}).

Eksempel
--------

Hvis vi lar input være [1,2,3,4,1,2,3], vil softmax av det være [0.024, 0.064, 0.175, 0.475, 0.024, 0.064, 0.175]. Output har det meste av vekten der tallet *4* var i det opprinnelige input. Det er dette funksjonen normalt blir brukt til: å vektlegge den største verdien, og dempe verdier som er betydelig lavere enn maksimumsverdien.

Kunstige nevrale nettverk
-------------------------

Softmax-funksjonen blir ofte brukt i det siste laget av nevrale nettverk brukt i klassifiseringsproblemer. Slike nettverk er vanligvis trent med kryssentropi/logistisk tap, noe som gir en ikke-lineær variant av multinomial logistisk regresjon.

Siden softmax-funksjonen tilordner en vektor og en bestemt indeks *j* til en reell verdi, må derivasjonen ta høyde for indeksen:

{\displaystyle {\frac {\partial }{\partial q\_{k}}}\sigma ({\textbf {q}},i)=\dots =\sigma ({\textbf {q}},i)(\delta \_{ik}-\sigma ({\textbf {q}},k))}
Her brukes Kronecker-deltaet for enkelthets skyld (jamfør den deriverte av en sigmoid-funksjon, som blir uttrykt via funksjonen selv).

Multinomial logit er en sannsynlighetsmodell som bruker softmax-aktiveringsfunksjonen.

Forsterkende læring
-------------------

I feltet forsterkende læring brukes softmax funksjonen til å konvertere verdier til handlingssannsynligheter. Funksjonen som ofte brukes er:

{\displaystyle P\_{t}(a)={\frac {\exp(q\_{t}(a)/\tau )}{\sum \_{i=1}^{n}\exp(q\_{t}(i)/\tau )}}{\text{,}}}
der handlingsverdien {\displaystyle q\_{t}(a)} tilsvarer forventet belønning av en påfølgende handling a, og {\displaystyle \tau } kalles en temperaturparameter (jamfør statistisk mekanikk). For høye temperaturer ({\displaystyle \tau \to \infty }) har alle handlinger nesten samme sannsynlighet. Desto lavere temperaturen er, desto mer forventes belønninger å påvirke sannsynligheten. For en svært lav temperatur ({\displaystyle \tau \to 0^{+}}) vil sannsynligheten for en handling med høyest forventet belønning tendere mot 1.

Softmax-normalisering
---------------------

Sigmoidal- eller softmax-normalisering lar deg redusere påvirkningen av ekstreme verdier eller utliggere i data uten å fjerne dem fra datasettet. Det er nyttig når vi ønsker å ta med utliggere i datasettet mens vi fortsatt bevarer betydningen av data innenfor et standardavvik fra gjennomsnittet. Data blir ikke-lineært transformert ved hjelp av en av de følgende sigmoidal-funksjonene. 

Den logistiske sigmoid-funksjonen:

{\displaystyle x\_{i}'\equiv {\frac {1}{1+e^{-{\frac {x\_{i}-\mu \_{i}}{\sigma \_{i}}}}}}}
Den hyperbolske tangens-funksjonen, *tanh*:

{\displaystyle x\_{i}'\equiv {\frac {1-e^{-{\frac {x\_{i}-\mu \_{i}}{\sigma \_{i}}}}}{1+e^{-{\frac {x\_{i}-\mu \_{i}}{\sigma \_{i}}}}}}}
Sigmoid-funksjonen begrenser rekkevidden av normalisert data til verdier mellom 0 og 1. Sigmoid-funksjonen er nesten lineær nær gjennomsnittet og har glatt ikke-linearitet på begge ytterpunktene, og sikrer at alle datapunkt er innenfor et begrenset område. Dette opprettholder oppløsningen for de fleste verdier innenfor et standardavvik over gjennomsnittet.

Den hyperbolske tangens-funksjonen, *tanh*, begrenser rekkevidden av normalisert data til verdier mellom -1 og 1. Den hyperbolske tangens-funksjonen er nesten lineær nær gjennomsnittet, men har en stigning på halvparten av sigmoid-funksjonen. Som sigmoid-funksjonen har den glatt, monoton ikke-linearitet i begge ytterpunktene. Og, som sigmoid-funksjonen, er den fortsatt deriverbar overalt og tegnet (+/-) på den deriverte (stigningen) er upåvirket av normalisering. Dette sikrer at algoritmer for optimalisering og numerisk integrasjon kan stole på derivat for å estimere endringer i output (normalisert verdi) produsert av endringer i input i regionen i nærheten av ethvert lineæriseringspunkt.

Forhold til Boltzmann-distribusjonen
------------------------------------

Softmax-funksjonen er i tillegg sannsynligheten for at et atom blir funnet i en kvantetilstand med energi {\displaystyle \epsilon \_{i}} når atomet er en del av et ensemble som har nådd termisk likevekt med temperatur {\displaystyle T}. Dette er kjent som Boltzmann-distribusjonen. Det forventede relative belegget til hver tilstand er {\displaystyle e^{-{\frac {\epsilon \_{i}}{k\_{B}T}}}} og dette er normalisert slik at summen over energinivåene blir til 1. I denne analogien er input til softmax-funksjonen den negative energien til hver kvantetilstand delt på {\displaystyle k\_{B}T}.

Referanser
----------

1. 1 2  Bishop, Christopher M. *Pattern Recognition and Machine Learning*. Springer.
2. ↑  ai-faq What is a softmax activation function?
3. ↑  Sutton, R. S. and Barto A. G. *Reinforcement Learning: An Introduction*.
4. ↑  *Artificial Neural Networks: An Introduction*.
5. ↑  *Artificial Neural Networks: An Introduction*.