Smooth arg maxEdit
A “softmax” elnevezés félrevezető; a függvény nem egy sima maximum (a maximum függvény sima közelítése), hanem inkább az arg max függvény sima közelítése: az a függvény, amelynek az az értéke, hogy melyik indexen van a maximum. Valójában a “softmax” kifejezést a szorosan kapcsolódó LogSumExp függvényre is használják, amely egy sima maximum. Emiatt egyesek a pontosabb “softargmax” kifejezést részesítik előnyben, de a “softmax” kifejezés a gépi tanulásban hagyományos. Ebben a szakaszban a “softargmax” kifejezést használjuk, hogy hangsúlyozzuk ezt az értelmezést.
Formálisan, ahelyett, hogy az argmaxot 1 , … , n {\displaystyle 1,\dots ,n} kategorikus kimenettel rendelkező függvénynek tekintenénk.
(az indexnek megfelelő), tekintsük az arg max függvényt a kimenet egypontos reprezentációjával (feltételezve, hogy van egy egyedi maximális arg): a r g m a x ( z 1 , … , z n ) = ( y 1 , … , y n ) = ( 0 , … , 0 , 1 , 0 , 0 , … , 0 ) , {\displaystyle \operatorname {arg\,max} (z_{1},\dots ,z_{n})=(y_{1},\dots ,y_{n})=(0,\dots ,0,1,0,\dots ,0),}
ahol a kimeneti koordináta y i = 1 {\displaystyle y_{i}=1}
ha és csak akkor, ha i {\displaystyle i}
a ( z 1 , … , z n ) {\displaystyle (z_{1},\dots ,z_{n})} arg max értéke.
, vagyis z i {\displaystyle z_{i}}
a ( z 1 , … , z n ) {\displaystyle (z_{1},\dots ,z_{n})} egyedi maximális értéke.
. Például ebben a kódolásban a r g m a x ( 1 , 5 , 10 ) = ( 0 , 0 , 1 ) , {\displaystyle \operatorname {arg\,max} (1,5,10)=(0,0,1),}
mivel a harmadik argumentum a maximum.
Ez általánosítható több arg max értékre (többszörös egyenlő z i {\displaystyle z_{i}}
a maximum), ha az 1-et elosztjuk az összes max argumentum között; formálisan 1/k, ahol k a maximumot feltételező argumentumok száma. Például a r g m a x ( 1 , 5 , 5 ) = ( 0 , 1 / 2 , 1 / 2 ) , {\displaystyle \operatorname {arg\,max} (1,5,5)=(0,1/2,1/2),}
mivel a második és a harmadik argumentum is a maximum. Abban az esetben, ha minden argumentum egyenlő, ez egyszerűen a r g m a x ( z , … , z ) = ( 1 / n , … , 1 / n ) . {\displaystyle \operatorname {arg\,max} (z,\dots ,z)=(1/n,\dots ,1/n).}
A több arg max értékkel rendelkező z pontok szinguláris pontok (vagy szingularitások, és a szinguláris halmazt alkotják) – ezek azok a pontok, ahol az arg max diszkontinuus (ugrásszerű diszkontinuitással) -, míg az egyetlen arg max értékkel rendelkező pontokat nem szinguláris vagy szabályos pontoknak nevezzük.
A bevezetőben megadott utolsó kifejezéssel a softargmax most már az arg max sima közelítése: mivel β → ∞ {\displaystyle \beta \to \infty }
, a softargmax konvergál az arg max-hoz. Egy függvény konvergenciájának különböző fogalmai vannak; a softargmax pontszerűen konvergál az arg max-hoz, ami azt jelenti, hogy minden egyes fix z bemenetre β → ∞ ∞ {\displaystyle \beta \to \infty }
, σ β ( z ) → a r g m a x ( z ) . {\displaystyle \sigma _{\beta }(\mathbf {z} )\to \operatorname {arg\,max} (\mathbf {z} ).}
A softargmax azonban nem konvergál egyenletesen az arg max-hoz, ami intuitíve azt jelenti, hogy a különböző pontok különböző sebességgel konvergálnak, és tetszőlegesen lassan konvergálhatnak. Valójában a softargmax folytonos, de az arg max nem folytonos azon a szinguláris halmazon, ahol két koordináta egyenlő, míg a folytonos függvények egyenletes határértéke folytonos. Azért nem konvergál egyenletesen, mert olyan bemeneteknél, ahol két koordináta majdnem egyenlő (és az egyik a maximum), az arg max az egyik vagy a másik indexe, így a bemenet kis változása nagy változást eredményez a kimenetben. Például σ β ( 1 , 1.0001 ) → ( 0 , 1 ) , {\displaystyle \sigma _{\beta }(1,1.0001)\to (0,1),}
de σ β ( 1 , 0.9999 ) → ( 1 , 0 ) , {\displaystyle \sigma _{\beta }(1,0.9999)\to (1,0),}
és σ β ( 1 , 1 ) = 1 / 2 {\displaystyle \sigma _{\beta }(1,1)=1/2}
minden bemenetre: minél közelebb vannak a pontok a szinguláris halmazhoz ( x , x ) {\displaystyle (x,x)}
, annál lassabban konvergálnak. A softargmax azonban kompakt módon konvergál a nem szinguláris halmazon.
Megfordítva, ahogy β → – ∞ {\displaystyle \beta \to -\infty }
, a softargmax ugyanúgy konvergál az arg minhez, ahol itt a szinguláris halmaz a két arg min értékkel rendelkező pontok. A trópusanalízis nyelvén a softmax az arg max és arg min deformációja vagy “kvantálása”, ami megfelel a log szemiring használatának a max-plus szemiring (illetve min-plus szemiring) helyett, és az arg max vagy arg min visszanyerését a határérték felvételével “trópusosításnak” vagy “dekvantálásnak” nevezzük.
Az is előfordul, hogy bármely rögzített β esetén, ha egy bemeneti z i {\displaystyle z_{i}}
a hőmérséklethez képest sokkal nagyobb, mint a többi, T = 1 / β {\displaystyle T=1/\beta }
, a kimenet megközelítőleg az arg max. Például a 10-es különbség nagy az 1-es hőmérséklethez képest: σ ( 0 , 10 ) := σ 1 ( 0 , 10 ) = ( 1 / ( 1 + e 10 ) , e 10 / ( 1 + e 10 ) ) ≈ ( 0.00005 , 0.99995 ) {\displaystyle \sigma (0,10):=\sigma _{1}(0,10)=\left(1/(1+e^{10}),e^{10}/(1+e^{10})\right)\approx (0.00005,0.99995)}
Ha azonban a különbség a hőmérséklethez képest kicsi, akkor az érték nem közelíti meg az arg max-ot. Például egy 10-es különbség kicsi a 100-as hőmérséklethez képest:
σ 1 / 100 ( 0 , 10 ) = ( 1 / ( 1 + e 1 / 10 ) , e 1 / 10 / ( 1 + e 1 / 10 ) ) ≈ ( 0,475 , 0,525 ) . {\displaystyle \sigma _{1/100}(0,10)=\left(1/(1+e^{1/10}),e^{1/10}/(1+e^{1/10})\right)\approx (0.475,0.525).}
As β → ∞ {\displaystyle \beta \to \infty }
, a hőmérséklet nullára megy, T = 1 / β → 0 {\displaystyle T=1/\beta \to 0}
, így végül minden különbség nagy lesz (a zsugorodó hőmérséklethez képest), ami egy másik értelmezést ad a határérték viselkedésére.
ValószínűségelméletSzerkesztés
A valószínűségelméletben a softargmax függvény kimenete egy kategorikus eloszlás – azaz egy valószínűségi eloszlás K különböző lehetséges kimenetel felett – reprezentálására használható.
Statisztikai mechanikaSzerkesztés
A statisztikai mechanikában a softargmax függvényt Boltzmann-eloszlásnak (vagy Gibbs-eloszlásnak) nevezik::7 az 1 , … , k indexhalmaz {\displaystyle {1,\dots ,k}}}
a rendszer mikroállapotai; a bemenetek z i {\displaystyle z_{i}}
az adott állapot energiái; a nevezőt partíciós függvénynek nevezzük, gyakran Z-vel jelölve; a β tényezőt pedig hidegségnek (vagy termodinamikai bétának, vagy inverz hőmérsékletnek) nevezzük.