AI Ordbog
Softmax
En matematisk funktion der konverterer rå tal til sandsynligheder der summerer til 1.
Skrevet og redigeret af Kristian Primdal · Sidst opdateret 3. oktober 2026Indhold
Hvad er softmax?
Softmax er en funktion der tager en liste af rå tal og konverterer dem til sandsynligheder. Uanset hvad tallene er (positive, negative, store, små) giver softmax dig en liste af tal mellem 0 og 1 der summerer til præcis 1.
Når en sprogmodel skal vælge det næste ord, beregner den først en rå score for hvert muligt ord i sit vokabular (typisk 50.000-100.000 ord). Disse rå scores (kaldet logits) kan være hvad som helst: 8.3, -2.1, 15.7, 0.4. De er ikke sandsynligheder. Softmax konverterer dem til sandsynligheder: “ord A har 72% chance, ord B har 15% chance, ord C har 8% chance…” Nu kan modellen vælge det næste ord baseret på en meningsfuld sandsynlighedsfordeling.
Hvordan fungerer softmax?
Formlen
For en liste af tal z₁, z₂, …, zₙ beregner softmax sandsynligheden for hvert element som:
softmax(zᵢ) = e^zᵢ / Σ(e^zⱼ)
Med ord: tag e (Eulers tal, ca. 2.718) opløftet i hvert tal, og divider med summen af alle e-opløftede tal.
Et konkret eksempel
Modellen har beregnet logits for tre mulige næste ord:
- “hund”: 5.0
- “kat”: 3.0
- “bil”: 1.0
Trin 1: beregn e^z for hvert:
- e^5.0 = 148.4
- e^3.0 = 20.1
- e^1.0 = 2.7
Trin 2: sum: 148.4 + 20.1 + 2.7 = 171.2
Trin 3: divider:
- “hund”: 148.4 / 171.2 = 0.867 (86.7%)
- “kat”: 20.1 / 171.2 = 0.117 (11.7%)
- “bil”: 2.7 / 171.2 = 0.016 (1.6%)
Resultatet summerer til 1.0 (100%) og giver en klar sandsynlighedsfordeling: “hund” er klart mest sandsynlig.
Nøgleegenskaber
- Forstærker forskelle. Eksponentialfunktionen (e^z) forstærker forskelle mellem logits. Selv en lille forskel i logits giver en stor forskel i sandsynligheder. Forskellen mellem 5.0 og 3.0 (kun 2 enheder) bliver til 86.7% vs. 11.7%.
- Altid positiv. e^z er altid positivt, uanset om z er negativt. Så sandsynligheder er altid mellem 0 og 1.
- Summerer til 1. Per definition. Det er det der gør outputtet til en gyldig sandsynlighedsfordeling.
- Bevaringsorden. Det største logit får den højeste sandsynlighed. Rækkefølgen ændres aldrig.
Hvor bruges softmax i AI?
1. Token-valg i sprogmodeller
Det mest synlige brug: når GPT, Claude eller Gemini genererer tekst.
- Modellen beregner en logit for hvert ord i sit vokabular (f.eks. 100.000 logits).
- Softmax konverterer logits til sandsynligheder.
- Næste token vælges baseret på sandsynlighedsfordelingen, enten det mest sandsynlige (greedy) eller samplet tilfældigt (med temperature).
Eksempel: efter “Den store hund…” beregner modellen:
- “løb”: logit 12.3 → sandsynlighed 45%
- “sad”: logit 11.1 → sandsynlighed 22%
- “gøede”: logit 10.5 → sandsynlighed 14%
- “spiste”: logit 9.8 → sandsynlighed 8%
- (resten deler de sidste 11%)
2. Attention weights
I attention-mekanismen bruges softmax til at normalisere attention scores:
- Dot product mellem Query og alle Keys giver rå scores.
- Softmax konverterer scores til attention weights, det vil sige sandsynligheder der summerer til 1.
- Weights bruges til at vægte Values.
Uden softmax ville attention scores bare være vilkårlige tal. Softmax gør dem til en fordeling der fortæller “fokuser 60% på ord 3, 25% på ord 7 og 15% på ord 1.”
3. Klassifikation
Når en model skal klassificere input i kategorier:
- Det sidste lag i netværket producerer en logit per kategori.
- Softmax konverterer til sandsynligheder.
- Den kategori med højest sandsynlighed vælges.
Eksempel, sentimentanalyse af en anmeldelse:
- Positiv: logit 4.2 → sandsynlighed 89%
- Neutral: logit 1.1 → sandsynlighed 8%
- Negativ: logit 0.3 → sandsynlighed 3%
4. Multimodal matching
I modeller som CLIP der matcher tekst og billeder:
- Similaritet beregnes mellem et billede og mange tekstbeskrivelser.
- Softmax konverterer similariteter til sandsynligheder.
- Den tekstbeskrivelse med højest sandsynlighed er det bedste match.
Softmax og temperature
Temperature-parameteren modificerer softmax og kontrollerer hvor “sikker” modellen er:
Lav temperature (f.eks. 0.1)
Logits divideres med 0.1 (forstørres 10x) før softmax. Resultatet er en skarp fordeling, hvor næsten al sandsynlighed koncentreres på det mest sandsynlige ord:
- “hund”: 99.8%
- “kat”: 0.2%
- “bil”: 0.0%
Modellen er næsten deterministisk og vælger altid det mest sandsynlige.
Standard temperature (1.0)
Logits bruges uændret:
- “hund”: 86.7%
- “kat”: 11.7%
- “bil”: 1.6%
Normal fordeling, det mest sandsynlige dominerer men der er variation.
Høj temperature (f.eks. 2.0)
Logits divideres med 2.0 (halveres) før softmax. Resultatet er en flad fordeling, hvor sandsynligheder er mere jævnt fordelt:
- “hund”: 55%
- “kat”: 28%
- “bil”: 17%
Modellen er mere tilfældig og kreativ, og overraskende ord vælges oftere.
Matematisk: softmax(z/T) hvor T er temperature. Lav T → skarp fordeling. Høj T → flad fordeling.
Softmax vs. andre funktioner
Sigmoid
- Konverterer ét tal til en værdi mellem 0 og 1.
- Bruges til binær klassifikation (ja/nej).
- Output er uafhængige og summerer ikke til 1.
Softmax
- Konverterer en liste af tal til sandsynligheder der summerer til 1.
- Bruges når du skal vælge ét blandt mange (token-valg, klassifikation).
- Output er afhængige: øg én sandsynlighed, og de andre falder.
Argmax
- Vælger simpelthen det tal med højest værdi.
- Ingen sandsynligheder, ingen nuancer.
- Bruges når du vil have det deterministiske “bedste” valg uden tilfældighed.
Softmax er “den bløde version” af argmax, deraf navnet “soft” + “max.” I stedet for at vælge én vinder hårdt, fordeler den sandsynlighed blødt med mest til vinderen.
Numerisk stabilitet
I praksis kan softmax skabe numeriske problemer:
- Overflow. e^1000 er astronomisk stort, for stort til at gemme i en computer.
- Underflow. e^-1000 er så tæt på 0 at computeren runder ned til præcis 0.
- Løsning. Træk det største logit fra alle logits før softmax: softmax(z - max(z)). Matematisk identisk men numerisk stabilt. Alle implementeringer gør dette automatisk.
Softmax i praksis
Sprogmodel genererer tekst
En bruger skriver: “Hovedstaden i Danmark er”
- Modellen beregner logits for alle ~100.000 tokens i vokabularet.
- Softmax konverterer til sandsynligheder. “København” får f.eks. 94%, “Aarhus” 2%, “Copenhagen” 1%.
- Med temperature 0 vælges “København” altid. Med temperature 0.7 vælges “København” næsten altid men med en lille chance for variation.
Billedklassifikation
Et billede uploades til en model:
- Modellen beregner logits for 1.000 kategorier (ImageNet).
- Softmax giver: “golden retriever” 78%, “labrador” 12%, “hund (generelt)” 5%.
- Top-resultatet returneres med confidence score.
Attention i oversættelse
Oversættelse af “Jeg elsker kaffe” til engelsk, generering af “coffee”:
- Attention beregner rå scores mellem “coffee” og alle danske ord.
- Softmax: “kaffe” 0.85, “elsker” 0.10, “Jeg” 0.05.
- Modellen fokuserer primært på “kaffe”, det korrekte kildeord.
Softmax er AI’s beslutningsmekanisme Hver gang en AI-model skal vælge (det næste ord, den rigtige kategori, det vigtigste ord at fokusere på) bruger den softmax. Det er funktionen der oversætter modellens interne beregninger (rå logits) til noget meningsfuldt og handlingsbart (sandsynligheder). Uden softmax ville sprogmodeller ikke kunne generere tekst, attention ville ikke fungere, og klassifikation ville være umulig. Det er en simpel matematisk funktion, men den er den kritiske bro mellem modellens beregninger og de beslutninger den tager.
FAQ
Hvad er softmax?
Softmax er en matematisk funktion der konverterer en liste af rå tal (logits) til sandsynligheder der summerer til 1. Den bruges overalt i AI: når sprogmodeller vælger næste ord, i attention-mekanismen, og i klassifikation. Den forstærker forskelle, så det største tal får den højeste sandsynlighed.
Hvorfor bruger AI-modeller softmax?
Fordi modeller producerer rå tal (logits) der ikke er sandsynligheder. Softmax konverterer dem til en gyldig sandsynlighedsfordeling der summerer til 1, hvilket gør det muligt at vælge det mest sandsynlige svar, sample tilfældigt baseret på sandsynligheder, eller beregne attention weights.
Hvad er forskellen på softmax og sigmoid?
Sigmoid konverterer ét tal til en værdi mellem 0 og 1 og bruges til binære valg (ja/nej). Softmax konverterer en hel liste af tal til sandsynligheder der summerer til 1 og bruges når du skal vælge ét blandt mange muligheder. Softmax-outputs er gensidigt afhængige, mens sigmoid-outputs er uafhængige.
Hvad er sammenhængen mellem softmax og temperature?
Temperature modificerer logits før softmax: softmax(logits/temperature). Lav temperature gør fordelingen skarp (modellen er mere sikker). Høj temperature gør den flad (modellen er mere tilfældig). Temperature 1.0 er standard og bruger softmax umodificeret.