Softmax függvény

Smooth arg maxEdit

Lásd: Arg max

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.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.