Smooth arg maxEdit
Nimi ”softmax” on harhaanjohtava; funktio ei ole sujuva maksimi (sujuva approksimaatio maksimifunktiolle), vaan pikemminkin sujuva approksimaatio arg max -funktiolle: funktiolle, jonka arvo on se, minkä indeksin maksimi on. Itse asiassa termiä ”softmax” käytetään myös siihen läheisesti liittyvästä LogSumExp-funktiosta, joka on sileä maksimi. Tästä syystä jotkut suosivat tarkempaa termiä ”softargmax”, mutta termi ”softmax” on koneoppimisessa tavanomainen. Tässä jaksossa käytetään termiä ”softargmax” korostamaan tätä tulkintaa.
Formallisesti sen sijaan, että argmaxia pidettäisiin funktiona, jolla on kategorinen lähtö 1 , … , n {\displaystyle 1,\dots ,n}
(joka vastaa indeksiä), tarkastellaan arg max -funktiota, jolla on yhden pisteen esitys ulostulosta (olettaen, että on olemassa ainutkertainen maksimi arg): a r g m a x ( z 1 , … , z n ) = ( y 1 , … , y n ) = ( 0 , … , 0 , 1 , 0 , 0 , … , 0 ) , {\displaystyle \operatornimi {arg\,max} (z_{1},\pisteet ,z_{n})=(y_{1},\pisteet ,y_{n})=(0,\pisteet ,0,1,0,\pisteet ,0),}
jossa lähtökoordinaatti y i = 1 {\displaystyle y_{i}=1}
jos ja vain jos i {\displaystyle i}
on arg max ( z 1 , … , z n ) {\displaystyle (z_{1},\dots ,z_{n})}
eli z i {\displaystyle z_{i}}
on ainutkertainen maksimiarvo ( z 1 , … , z n ) {\displaystyle (z_{1},\dots ,z_{n})}
. Esimerkiksi tässä koodauksessa a r g m a x ( 1 , 5 , 10 ) = ( 0 , 0 , 1 ) , {\displaystyle \operatorname {arg\,max} (1,5,10)=(0,0,1),}
, koska kolmas argumentti on maksimi.
Tämä voidaan yleistää koskemaan useita arg max -arvoja (useita yhtä suuria z i {\displaystyle z_{i}}
on maksimi) jakamalla 1 kaikkien max-argumenttien kesken; muodollisesti 1/k, jossa k on maksimin olettavien argumenttien lukumäärä. Esimerkiksi 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),}
koska toinen ja kolmas argumentti ovat molemmat maksimi. Jos kaikki argumentit ovat yhtä suuria, tämä on yksinkertaisesti a r g m a x ( z , … , z ) = ( 1 / n , … , 1 / n ) . {\displaystyle \operatorname {arg\,max} (z,\pisteet ,z)=(1/n,\pisteet ,1/n).}
Pisteet z, joilla on useita arg max -arvoja, ovat singulaarisia pisteitä (tai singulariteetteja, ja ne muodostavat singulaarisen joukon) – nämä ovat pisteitä, joissa arg max on epäjatkuva (hyppyjatkuvuus) – kun taas pisteitä, joilla on yksi arg max -arvo, kutsutaan ei-singulaarisiksi tai säännöllisiksi pisteiksi.
Viimeisen johdannossa annetun lausekkeen avulla softargmax on nyt arg maxin sileä approksimaatio: kun β → ∞ {\displaystyle \beta \to \infty }
, softargmax konvergoi arg maxiin. Funktion konvergenssista on olemassa erilaisia käsitteitä; softargmax konvergoi arg maxiin pistemäisesti, mikä tarkoittaa, että jokaiselle kiinteälle syötteelle z kun β → ∞ ∞ {\displaystyle \beta \to \infty }
, σ β ( z ) → a r g m a x ( z ) . {\displaystyle \sigma _{\beta }(\mathbf {z} )\to \operatorname {arg\,max} (\mathbf {z} ).}
Softargmax ei kuitenkaan konvergoi tasaisesti arg maxiin, mikä tarkoittaa intuitiivisesti sitä, että eri kohdat konvergoituvat eri nopeudella ja voivat konvergoitua mielivaltaisen hitaasti. Itse asiassa softargmax on jatkuva, mutta arg max ei ole jatkuva singulaarisessa joukossa, jossa kaksi koordinaattia on yhtä suuri, kun taas jatkuvien funktioiden yhtenäinen raja-arvo on jatkuva. Epäonnistuminen tasaisessa konvergenssissa johtuu siitä, että syötteissä, joissa kaksi koordinaattia on lähes yhtä suuri (ja toinen on maksimi), arg max on jommankumman indeksi, joten pieni muutos syötteessä tuottaa suuren muutoksen tuotoksessa. Esimerkiksi σ β ( 1 , 1.0001 ) → ( 0 , 1 ) , {\displaystyle \sigma _{\beta }(1,1.0001)\to (0,1),}
mutta σ β ( 1 , 0.9999 ) → ( 1 , 0 ) , {\displaystyle \sigma _{\beta }(1,0.9999)\to (1,0),}
ja σ β ( 1 , 1 ) = 1 / 2 {\displaystyle \sigma _{\beta }(1,1)=1/2}
kaikille syötteille: mitä lähempänä pisteitä on singulaarijoukko ( x , x ) {\displaystyle (x,x)}
, sitä hitaammin ne konvergoituvat. Softargmax konvergoi kuitenkin kompaktisti ei-singulaarisella joukolla.
Kääntäen, kun β → – ∞ {\displaystyle \beta \to -\infty }
, softargmax konvergoi samalla tavalla arg min:iin, missä tässä singulaarinen joukko on pisteitä, joilla on kaksi arg min -arvoa. Trooppisen analyysin kielellä softmax on arg maxin ja arg minin muodonmuutos tai ”kvantisointi”, joka vastaa log-semiringin käyttämistä max-plus-semiringin (vastaavasti min-plus-semiringin) sijasta, ja arg maxin tai arg minin palauttamista ottamalla raja-arvo kutsutaan ”trooppistamiseksi” tai ”dekvantisoinniksi”.
On myös niin, että mille tahansa kiinteälle β:lle, jos syötetään z i {\displaystyle z_{i}}
on paljon suurempi kuin muut suhteessa lämpötilaan, T = 1 / β {\displaystyle T=1/\beta }
, ulostulo on suunnilleen arg max. Esimerkiksi ero 10 on suuri suhteessa lämpötilaan 1: σ ( 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)}
Jos ero on kuitenkin pieni suhteessa lämpötilaan, arvo ei ole lähellä arg max. Esimerkiksi ero 10 on pieni suhteessa lämpötilaan 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).}
As β → ∞ {\displaystyle \beta \to \infty }
, lämpötila menee nollaan, T = 1 / β → 0 {\displaystyle T=1/\beta \to 0}
, joten lopulta kaikista eroista tulee suuria (suhteessa kutistuvaan lämpötilaan), mikä antaa toisen tulkinnan rajakäyttäytymiselle.
TodennäköisyysteoriaEdit
Todennäköisyysteoriassa softargmax-funktion ulostuloa voidaan käyttää esittämään kategorista jakaumaa – eli todennäköisyysjakaumaa K:lle eri mahdolliselle lopputulokselle.
TilastomekaniikkaEdit
Tilastomekaniikassa softargmax-funktio tunnetaan Boltzmannin jakaumana (tai Gibbsin jakaumana)::7 indeksijoukko 1 , … , k {\displaystyle {1,\dots ,k}}}
ovat järjestelmän mikrotiloja; syötteet z i {\displaystyle z_{i}}
ovat kyseisen tilan energiat; nimittäjä tunnetaan jakofunktiona, jota usein merkitään Z:llä; ja tekijää β kutsutaan kylmyydeksi (tai termodynaamiseksi beetaksi tai käänteislämpötilaksi).