AI-hardware en softwarestack
Waarom wordt bij de berekening van de softmaxfunctie exp(xi)/Σexp(xj) vaak eerst de maximumwaarde van elke xi afgetrokken?
- AOm het resultaat te benaderen en de berekening te versnellen
- BOm het grootste element altijd 0 te maken
- COmdat het resultaat gelijk blijft en wordt voorkomen dat de waarde van exp te groot wordt en overloopt (oneindig wordt)
Antwoord en toelichting tonen
Antwoord: C. Omdat het resultaat gelijk blijft en wordt voorkomen dat de waarde van exp te groot wordt en overloopt (oneindig wordt)
exp is een snel toenemende functie; bij FP16 overschrijdt exp(x) bijvoorbeeld de maximaal weer te geven waarde als x ongeveer 11 overschrijdt. Als van alle x dezelfde constante m wordt afgetrokken, worden zowel teller als noemer exp(−m) maal zo groot en blijft het resultaat gelijk. Bij aftrekken van de maximumwaarde is de exponent ten hoogste 0 en blijft de waarde van exp onder 1, zodat geen overloop optreedt. Dit is een bijzonder belangrijke maatregel bij AI-berekeningen met lage precisie en wordt ook in snelle attention-implementaties gebruikt.