softmax function (tsz. softmax functions)
A softmax függvény egy matematikai függvény, amelyet széles körben alkalmaznak a gépi tanulásban, különösen klasszifikációs problémáknál. Fő célja, hogy egy valós számokat tartalmazó vektort valószínűségi eloszlássá alakítson. Ez azt jelenti, hogy minden kimeneti érték:
Legyen adott egy valós számokat tartalmazó vektor:
A softmax függvény minden -hez a következő értéket rendeli:
Ez azt jelenti, hogy minden komponens exponenciális értékét vesszük, és elosztjuk az összes komponens exponenciális összegével.
Ha pl. egy neurális háló utolsó rétegének kimenete:
akkor softmax után kb. így alakul:
A legnagyobb kimenethez a legnagyobb valószínűség tartozik.
A softmax az utolsó réteg aktivációja, ha a modell több kategória közül választ (pl. képfelismerés: macska, kutya, autó…).
A softmax kimenete együtt használható a keresztentrópia veszteségfüggvénnyel, ami összehasonlítja a modell által adott valószínűségi eloszlást a valódi (one-hot) címkével.
A softmax révén minden kimenet értelmezhető úgy, mint annak valószínűsége, hogy a bemenet egy adott osztályba tartozik.
A nagy értékek miatt előfordulhat túlcsordulás (overflow) az exponenciálásnál. Ezért gyakori technika:
Ez nem változtatja meg az eredményt, de csökkenti a számítási hibát.
Legyen:
Először:
Összeg:
Softmax értékek:
Értelmezés sikertelen (formai hiba): {\displaystyle \left ≈ }
A softmax függvény deriváltját gyakran kell számolni a visszaterjesztés (backpropagation) során.
A derivált mátrix (Jacobi-mátrix):
Ahol a Kronecker-delta (1, ha , egyébként 0).
Tulajdonság | Részletek |
---|---|
Bemenet | Valós számok vektora |
Kimenet | Valószínűségek vektora (mindegyik ≥ 0, összegük = 1) |
Leggyakoribb alkalmazás | Többosztályos klasszifikáció |
Előnye | Könnyen értelmezhető valószínűségi kimenet |
Hátránya | Túl magabiztossá teheti a modellt (túlzottan éles eloszlás) |