Softmax-funksjonen

I matematikk er softmax-funksjonen, eller den normaliserte eksponentielle funksjonen, en generalisering av den logistiske funksjonen, som «skviser sammen» en K-dimensjonal vektor 
  
    
      
        
          z
        
      
    
    {\displaystyle \mathbf {z} }
   av vilkårlige reelle verdier til en K-dimensjonal vektor 
  
    
      
        σ
        (
        
          z
        
        )
      
    
    {\displaystyle \sigma (\mathbf {z} )}
   av reelle verdier i intervallet (0, 1) med sum 1. Funksjonen er gitt ved

  
    
      
        σ
        (
        
          z
        
        
          )
          
            j
          
        
        =
        
          
            
              e
              
                
                  z
                  
                    j
                  
                
              
            
            
              
                ∑
                
                  k
                  =
                  1
                
                
                  K
                
              
              
                e
                
                  
                    z
                    
                      k
                    
                  
                
              
            
          
        
      
    
    {\displaystyle \sigma (\mathbf {z} )_{j}={\frac {e^{z_{j}}}{\sum _{k=1}^{K}e^{z_{k}}}}}
      for j = 1, …, K.I sannsynlighetsteori blir output av softmax-funksjonen brukt til å representere en kategorisk fordeling – altså en sannsynlighetsfordeling over k ulike mulige utfall. Faktisk er det en gradient-log-normalisator av den kategoriske sannsynlighetsfordelingen.
Softmax-funksjonen blir brukt i ulike flerklassesklassifiseringsmetoder, som for eksempel multinomial logistisk regresjon, flerklasses lineær diskriminantanalyse, naiv Bayes-klassifikatorer, og kunstige nevrale nettverk. I multinomial logistisk regresjon og lineær diskriminantanalyse er input til funksjonen resultatet av K forskjellige lineære funksjoner; da er den predikerte sannsynligheten for den j-te klassen gitt en vektor x for utvalget og en vektor w for vektingen lik:

  
    
      
        P
        (
        y
        =
        j
        
          |
        
        
          x
        
        )
        =
        
          
            
              e
              
                
                  
                    x
                  
                  
                    
                      T
                    
                  
                
                
                  
                    w
                  
                  
                    j
                  
                
              
            
            
              
                ∑
                
                  k
                  =
                  1
                
                
                  K
                
              
              
                e
                
                  
                    
                      x
                    
                    
                      
                        T
                      
                    
                  
                  
                    
                      w
                    
                    
                      k
                    
                  
                
              
            
          
        
      
    
    {\displaystyle P(y=j|\mathbf {x} )={\frac {e^{\mathbf {x} ^{\mathsf {T}}\mathbf {w} _{j}}}{\sum _{k=1}^{K}e^{\mathbf {x} ^{\mathsf {T}}\mathbf {w} _{k}}}}}
  Dette kan sees på som sammensetningen (komposisjonen) av K lineære funksjoner 
  
    
      
        
          x
        
        ↦
        
          
            x
          
          
            
              T
            
          
        
        
          
            w
          
          
            1
          
        
        ,
        …
        ,
        
          x
        
        ↦
        
          
            x
          
          
            
              T
            
          
        
        
          
            w
          
          
            K
          
        
      
    
    {\displaystyle \mathbf {x} \mapsto \mathbf {x} ^{\mathsf {T}}\mathbf {w} _{1},\ldots ,\mathbf {x} \mapsto \mathbf {x} ^{\mathsf {T}}\mathbf {w} _{K}}
   og softmax-funksjonen (der 
  
    
      
        
          
            x
          
          
            
              T
            
          
        
        
          w
        
      
    
    {\displaystyle \mathbf {x} ^{\mathsf {T}}\mathbf {w} }
   betegner det indre produktet av 
  
    
      
        
          x
        
      
    
    {\displaystyle \mathbf {x} }
   og 
  
    
      
        
          w
        
      
    
    {\displaystyle \mathbf {w} }
  ).


== Eksempel ==
Hvis vi lar input være [1,2,3,4,1,2,3], vil softmax av det være [0.024, 0.064, 0.175, 0.475, 0.024, 0.064, 0.175]. Output har det meste av vekten der tallet 4 var i det opprinnelige input. Det er dette funksjonen normalt blir brukt til: å vektlegge den største verdien, og dempe verdier som er betydelig lavere enn maksimumsverdien.


== Kunstige nevrale nettverk ==
Softmax-funksjonen blir ofte brukt i det siste laget av nevrale nettverk brukt i klassifiseringsproblemer. Slike nettverk er vanligvis trent med kryssentropi/logistisk tap, noe som gir en ikke-lineær variant av multinomial logistisk regresjon.
Siden softmax-funksjonen tilordner en vektor og en bestemt indeks j til en reell verdi, må derivasjonen ta høyde for indeksen:

  
    
      
        
          
            ∂
            
              ∂
              
                q
                
                  k
                
              
            
          
        
        σ
        (
        
          
            q
          
        
        ,
        i
        )
        =
        ⋯
        =
        σ
        (
        
          
            q
          
        
        ,
        i
        )
        (
        
          δ
          
            i
            k
          
        
        −
        σ
        (
        
          
            q
          
        
        ,
        k
        )
        )
      
    
    {\displaystyle {\frac {\partial }{\partial q_{k}}}\sigma ({\textbf {q}},i)=\dots =\sigma ({\textbf {q}},i)(\delta _{ik}-\sigma ({\textbf {q}},k))}
  Her brukes Kronecker-deltaet for enkelthets skyld (jamfør den deriverte av en sigmoid-funksjon, som blir uttrykt via funksjonen selv).
Multinomial logit er en sannsynlighetsmodell som bruker softmax-aktiveringsfunksjonen.


== Forsterkende læring ==
I feltet forsterkende læring brukes softmax funksjonen til å konvertere verdier til handlingssannsynligheter. Funksjonen som ofte brukes er:

  
    
      
        
          P
          
            t
          
        
        (
        a
        )
        =
        
          
            
              exp
              ⁡
              (
              
                q
                
                  t
                
              
              (
              a
              )
              
                /
              
              τ
              )
            
            
              
                ∑
                
                  i
                  =
                  1
                
                
                  n
                
              
              exp
              ⁡
              (
              
                q
                
                  t
                
              
              (
              i
              )
              
                /
              
              τ
              )
            
          
        
        
          ,
        
      
    
    {\displaystyle P_{t}(a)={\frac {\exp(q_{t}(a)/\tau )}{\sum _{i=1}^{n}\exp(q_{t}(i)/\tau )}}{\text{,}}}
  der handlingsverdien 
  
    
      
        
          q
          
            t
          
        
        (
        a
        )
      
    
    {\displaystyle q_{t}(a)}
   tilsvarer forventet belønning av en påfølgende handling a, og 
  
    
      
        τ
      
    
    {\displaystyle \tau }
   kalles en temperaturparameter (jamfør statistisk mekanikk). For høye temperaturer (
  
    
      
        τ
        →
        ∞
      
    
    {\displaystyle \tau \to \infty }
  ) har alle handlinger nesten samme sannsynlighet. Desto lavere temperaturen er, desto mer forventes belønninger å påvirke sannsynligheten. For en svært lav temperatur (
  
    
      
        τ
        →
        
          0
          
            +
          
        
      
    
    {\displaystyle \tau \to 0^{+}}
  ) vil sannsynligheten for en handling med høyest forventet belønning tendere mot 1.


== Softmax-normalisering ==
Sigmoidal- eller softmax-normalisering lar deg redusere påvirkningen av ekstreme verdier eller utliggere i data uten å fjerne dem fra datasettet. Det er nyttig når vi ønsker å ta med utliggere i datasettet mens vi fortsatt bevarer betydningen av data innenfor et standardavvik fra gjennomsnittet. Data blir ikke-lineært transformert ved hjelp av en av de følgende sigmoidal-funksjonene. 
Den logistiske sigmoid-funksjonen:

  
    
      
        
          x
          
            i
          
          ′
        
        ≡
        
          
            1
            
              1
              +
              
                e
                
                  −
                  
                    
                      
                        
                          x
                          
                            i
                          
                        
                        −
                        
                          μ
                          
                            i
                          
                        
                      
                      
                        σ
                        
                          i
                        
                      
                    
                  
                
              
            
          
        
      
    
    {\displaystyle x_{i}'\equiv {\frac {1}{1+e^{-{\frac {x_{i}-\mu _{i}}{\sigma _{i}}}}}}}
  Den hyperbolske tangens-funksjonen, tanh:

  
    
      
        
          x
          
            i
          
          ′
        
        ≡
        
          
            
              1
              −
              
                e
                
                  −
                  
                    
                      
                        
                          x
                          
                            i
                          
                        
                        −
                        
                          μ
                          
                            i
                          
                        
                      
                      
                        σ
                        
                          i
                        
                      
                    
                  
                
              
            
            
              1
              +
              
                e
                
                  −
                  
                    
                      
                        
                          x
                          
                            i
                          
                        
                        −
                        
                          μ
                          
                            i
                          
                        
                      
                      
                        σ
                        
                          i
                        
                      
                    
                  
                
              
            
          
        
      
    
    {\displaystyle x_{i}'\equiv {\frac {1-e^{-{\frac {x_{i}-\mu _{i}}{\sigma _{i}}}}}{1+e^{-{\frac {x_{i}-\mu _{i}}{\sigma _{i}}}}}}}
  Sigmoid-funksjonen begrenser rekkevidden av normalisert data til verdier mellom 0 og 1. Sigmoid-funksjonen er nesten lineær nær gjennomsnittet og har glatt ikke-linearitet på begge ytterpunktene, og sikrer at alle datapunkt er innenfor et begrenset område. Dette opprettholder oppløsningen for de fleste verdier innenfor et standardavvik over gjennomsnittet.
Den hyperbolske tangens-funksjonen, tanh, begrenser rekkevidden av normalisert data til verdier mellom -1 og 1. Den hyperbolske tangens-funksjonen er nesten lineær nær gjennomsnittet, men har en stigning på halvparten av sigmoid-funksjonen. Som sigmoid-funksjonen har den glatt, monoton ikke-linearitet i begge ytterpunktene. Og, som sigmoid-funksjonen, er den fortsatt deriverbar overalt og tegnet (+/-) på den deriverte (stigningen) er upåvirket av normalisering. Dette sikrer at algoritmer for optimalisering og numerisk integrasjon kan stole på derivat for å estimere endringer i output (normalisert verdi) produsert av endringer i input i regionen i nærheten av ethvert lineæriseringspunkt.


== Forhold til Boltzmann-distribusjonen ==
Softmax-funksjonen er i tillegg sannsynligheten for at et atom blir funnet i en kvantetilstand med energi 
  
    
      
        
          ϵ
          
            i
          
        
      
    
    {\displaystyle \epsilon _{i}}
   når atomet er en del av et ensemble som har nådd termisk likevekt med temperatur 
  
    
      
        T
      
    
    {\displaystyle T}
  . Dette er kjent som Boltzmann-distribusjonen. Det forventede relative belegget til hver tilstand er 
  
    
      
        
          e
          
            −
            
              
                
                  ϵ
                  
                    i
                  
                
                
                  
                    k
                    
                      B
                    
                  
                  T
                
              
            
          
        
      
    
    {\displaystyle e^{-{\frac {\epsilon _{i}}{k_{B}T}}}}
   og dette er normalisert slik at summen over energinivåene blir til 1. I denne analogien er input til softmax-funksjonen den negative energien til hver kvantetilstand delt på 
  
    
      
        
          k
          
            B
          
        
        T
      
    
    {\displaystyle k_{B}T}
  .


== Referanser ==