KI-Hardware und Software-Stack
Aus welchem Grund wird bei der Berechnung der Softmax-Funktion exp(xi)/Σexp(xj) häufig zunächst von jedem xi der Maximalwert abgezogen?
- AUm das Berechnungsergebnis durch einen Näherungswert zu ersetzen und schneller zu werden
- BUm das größte Element stets auf 0 zu setzen
- CWeil das Ergebnis unverändert bleibt und verhindert wird, dass die exp-Werte zu groß werden und überlaufen (unendlich werden)
Antwort und Erläuterung anzeigen
Antwort: C. Weil das Ergebnis unverändert bleibt und verhindert wird, dass die exp-Werte zu groß werden und überlaufen (unendlich werden)
exp ist eine stark wachsende Funktion; in FP16 überschreitet exp(x) z. B. ab x von etwa 11 den größten darstellbaren Wert. Wird von allen x dieselbe Konstante m abgezogen, werden Zähler und Nenner lediglich mit exp(−m) multipliziert, und das Ergebnis ändert sich nicht. Zieht man den Maximalwert ab, sind die Exponenten höchstens 0, die exp-Werte liegen bei höchstens 1 und laufen nicht über. Dies ist bei KI-Berechnungen mit geringer Genauigkeit besonders wichtig und wird auch in schnellen Attention-Implementierungen verwendet.