Smooth arg maxEdit
Název „softmax“ je zavádějící; funkce není hladkým maximem (hladkou aproximací funkce maximum), ale je spíše hladkou aproximací funkce arg max: funkce, jejíž hodnota je ten který index má maximum. Ve skutečnosti se termín „softmax“ používá také pro úzce související funkci LogSumExp, která je hladkým maximem. Z tohoto důvodu někteří dávají přednost přesnějšímu termínu „softargmax“, ale termín „softmax“ je ve strojovém učení konvenční. V této části je pro zdůraznění této interpretace používán termín „softargmax“.
Formálně místo toho, abychom uvažovali argmax jako funkci s kategoriálním výstupem 1 , … , n {\displaystyle 1,\dots ,n}.
(odpovídající indexu), uvažujte funkci arg max s jednovstupovou reprezentací výstupu (za předpokladu, že existuje jedinečné maximum arg): a r g m a x ( z 1 , … , z n ) = ( y 1 , … , y n ) = ( 0 , … , 0 , 1 , 0 , … , 0 ) , {\displaystyle \název operátoru {arg\,max} (z_{1},\dots ,z_{n})=(y_{1},\dots ,y_{n})=(0,\dots ,0,1,0,\dots ,0),}
kde výstupní souřadnice y i = 1 {\displaystyle y_{i}=1}
tehdy a jen tehdy, když i {\displaystyle i}
je arg max z ( z 1 , … , z n ) {\displaystyle (z_{1},\dots ,z_{n})}
, což znamená, že z i {\displaystyle z_{i}}
je jedinečná maximální hodnota ( z 1 , … , z n ) {\displaystyle (z_{1},\dots ,z_{n})}.
. Například v tomto kódování a r g m a x ( 1 , 5 , 10 ) = ( 0 , 0 , 1 ) , {\displaystyle \operatorname {arg\,max} (1,5,10)=(0,0,1),}
protože třetí argument je maximum.
To lze zobecnit na více hodnot arg max (více rovných z i {\displaystyle z_{i}}.
je maximum) dělením 1 mezi všechny argumenty max; formálně 1/k, kde k je počet argumentů předpokládajících maximum. Například 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),}
protože druhý a třetí argument jsou oba maximální. V případě, že jsou všechny argumenty stejné, je to jednoduše a r g m a x ( z , … , z ) = ( 1 / n , … , 1 / n ) . {\displaystyle \operatorname {arg\,max} (z,\dots ,z)=(1/n,\dots ,1/n).}
Body z s více hodnotami arg max jsou singulární body (neboli singularity a tvoří singulární množinu) – jsou to body, kde je arg max nespojitý (se skokovou nespojitostí) – zatímco body s jedinou hodnotou arg max se nazývají nesingulární nebo pravidelné body.
Pomocí posledního výrazu uvedeného v úvodu je nyní softargmax hladkou aproximací arg max: jako β → ∞ {\displaystyle \beta \to \infty }.
, softargmax konverguje k arg max. Existují různé pojmy konvergence funkce; softargmax konverguje k arg max bodově, což znamená, že pro každý pevný vstup z jako β → ∞ {\displaystyle \beta \do \infty }
, σ β ( z ) → a r g m a x ( z ) . {\displaystyle \sigma _{\beta }(\mathbf {z} )\to \operatorname {arg\,max} (\mathbf {z} ).}.
Softargmax však nekonverguje rovnoměrně k arg max, což intuitivně znamená, že různé body konvergují různou rychlostí a mohou konvergovat libovolně pomalu. Ve skutečnosti je softargmax spojitý, ale arg max není spojitý v singulární množině, kde se dvě souřadnice rovnají, zatímco rovnoměrná limita spojitých funkcí je spojitá. Neschopnost konvergovat rovnoměrně je způsobena tím, že pro vstupy, kde jsou dvě souřadnice téměř stejné (a jedna z nich je maximální), je arg max indexem jedné nebo druhé, takže malá změna vstupu vede k velké změně výstupu. Například σ β ( 1 , 1.0001 ) → ( 0 , 1 ) , {\displaystyle \sigma _{\beta }(1,1.0001)\to (0,1),}
ale σ β ( 1 , 0.9999 ) → ( 1 , 0 ) , {\displaystyle \sigma _{\beta }(1,0.9999)\to (1,0),}
a σ β ( 1 , 1 ) = 1 / 2 {\displaystyle \sigma _{\beta }(1,1)=1/2}
pro všechny vstupy: čím blíže jsou body singulární množině ( x , x ) {\displaystyle (x,x)}, tím blíže jsou body singulární množině ( x , x ).
, tím pomaleji konvergují. Softargmax však konverguje kompaktně na nesingulární množině.
Naopak, jak β → – ∞ {\displaystyle \beta \to -\infty }
, softargmax stejným způsobem konverguje k arg min, přičemž zde jsou singulární množinou body se dvěma hodnotami arg min. V jazyce tropické analýzy je softmax deformací nebo „kvantizací“ arg max a arg min, což odpovídá použití logaritmického semiringu místo semiringu max plus (resp. min plus), a znovuzískání arg max nebo arg min vzetím limity se nazývá „tropikalizace“ nebo „dekvantizace“.
Také platí, že pro libovolné pevné β, pokud na vstupu z i {\displaystyle z_{i}}.
je vzhledem k teplotě mnohem větší než ostatní, T = 1 / β {\displaystyle T=1/\beta }.
, výstup je přibližně arg max. Například rozdíl 10 je vzhledem k teplotě 1 velký: σ ( 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)\aprox (0,00005,0,99995)}
Jestliže je však rozdíl vzhledem k teplotě malý, hodnota se neblíží arg max. Například rozdíl 10 je malý vzhledem k teplotě 100:
σ 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).}
Jako β → ∞ {\displaystyle \beta \to \infty }
, teplota klesá k nule, T = 1 / β → 0 {\displaystyle T=1/\beta \na 0}
, takže nakonec se všechny rozdíly stanou velkými (vzhledem ke zmenšující se teplotě), což dává další interpretaci mezního chování.
Teorie pravděpodobnostiEdit
V teorii pravděpodobnosti lze výstup funkce softargmax použít k reprezentaci kategoriálního rozdělení – tj. rozdělení pravděpodobnosti nad K různými možnými výsledky.
Statistická mechanikaEdit
Ve statistické mechanice je funkce softargmax známá jako Boltzmannovo rozdělení (nebo Gibbsovo rozdělení)::7 množina indexů 1 , … , k {\displaystyle {1,\dots ,k}}.
jsou mikrostavy systému; vstupy z i {\displaystyle z_{i}}.
jsou energie tohoto stavu; jmenovatel je známý jako rozdělovací funkce, často označovaná Z; a faktor β se nazývá chlad (nebo termodynamická beta či inverzní teplota).