Articulo de referencia

Función Softmax

La función softmax, también conocida como softargmax [ 1 ] : 184 o función exponencial normalizada [ 2 ] : 198 , convierte una tupla de K números reales en una distribución de p...

La función softmax, también conocida como softargmax [ 1 ] : 184 o función exponencial normalizada [ 2 ] : 198 , convierte una tupla de K números reales en una distribución de probabilidad sobre K posibles resultados. Es una generalización de la función logística a múltiples dimensiones y se utiliza en la regresión logística multinomial . La función softmax se usa frecuentemente como la última función de activación de una red neuronal para normalizar la salida de la red a una distribución de probabilidad sobre las clases de salida predichas.

Definición

La función softmax toma como entrada una tupla z de K números reales y la normaliza en una distribución de probabilidad que consta de K probabilidades proporcionales a las exponenciales de los números de entrada. Es decir, antes de aplicar softmax, algunos componentes de la tupla podrían ser negativos o mayores que uno; y podrían no sumar 1; pero después de aplicar softmax, cada componente estará en el intervalo(0,1){\displaystyle (0,1)}y los componentes sumarán 1, por lo que pueden interpretarse como probabilidades. Además, los componentes de entrada más grandes corresponderán a probabilidades más grandes.

Formalmente, la función softmax estándar (de unidad)σ:RK(0,1)K{\displaystyle \sigma :\mathbb {R} ^{K}\to (0,1)^{K}} , dondeK>1{\displaystyle K>1} , toma una tuplaz=(z1,,zK)RK{\displaystyle \mathbf {z} =(z_{1},\dotsc ,z_{K})\in \mathbb {R} ^{K}}y calcula cada componente del vectorσ(z)(0,1)K{\displaystyle \sigma (\mathbf {z} )\in (0,1)^{K}}con

σ(z)i=mizij=1Kmizj.{\displaystyle \sigma (\mathbf {z} )_{i}={\frac {e^{z_{i}}}{\sum _ {j=1}^{K}e^{z_{j}}}}\,.}

En otras palabras, la función softmax aplica la función exponencial estándar a cada elemento.zi{\displaystyle z_{i}}de la tupla de entradaz{\displaystyle \mathbf {z} }(que consta deK{\displaystyle K}números reales), y normaliza estos valores dividiéndolos por la suma de todas estas exponenciales. La normalización asegura que la suma de los componentes del vector de salidaσ(z){\displaystyle \sigma (\mathbf {z} )}es 1. El término "softmax" deriva de los efectos amplificadores de la exponencial sobre cualquier máximo en la tupla de entrada. Por ejemplo, el softmax estándar de(1,2,8){\displaystyle (1,2,8)}es aproximadamente(0,001,0,002,0,997){\displaystyle (0.001,0.002,0.997)}, lo que equivale a asignar casi todo el peso unitario total del resultado a la posición del elemento máximo de la tupla (de 8).

En general, en lugar de e , se puede usar una base diferente b > 0. Como se indicó anteriormente, si b > 1 , los componentes de entrada más grandes darán como resultado mayores probabilidades de salida, y aumentar el valor de b creará distribuciones de probabilidad más concentradas alrededor de las posiciones de los valores de entrada más grandes. Por el contrario, si 0 < b < 1 , los componentes de entrada más pequeños darán como resultado mayores probabilidades de salida, y disminuir el valor de b creará distribuciones de probabilidad más concentradas alrededor de las posiciones de los valores de entrada más pequeños.b=miβ{\displaystyle b=e^{\beta }}ob=miβ{\displaystyle b=e^{-\beta }}[ a ] ​​(paraβ) [ b ] produce las expresiones: [ c ]

σ(z)i=miβzij=1Kmiβzj o σ(z)i=miβzij=1Kmiβzj para i=1,,K.{\displaystyle \sigma (\mathbf {z} )_{i}={\frac {e^{\beta z_{i}}}{\sum _{j=1}^{K}e^{\beta z_{j}}}}{\text{ o }}\sigma (\mathbf {z} )_{i}={\frac {e^{-\beta z_{i}}}{\sum _{j=1}^{K}e^{-\beta z_{j}}}}{\text{ para }}i=1,\dotsc ,K.}

Un valor proporcional al recíproco de β se denomina a veces temperatura :β=1/kT{\textstyle \beta =1/kT}donde k suele ser 1 o la constante de Boltzmann y T es la temperatura. Una temperatura más alta da como resultado una distribución de salida más uniforme (es decir, con mayor entropía ; es "más aleatoria"), mientras que una temperatura más baja da como resultado una distribución de salida más pronunciada, con un valor dominante.

En algunos campos, la base es fija, correspondiente a una escala fija, [ d ], mientras que en otros se varía el parámetro β (o T ).

La función softmax es una generalización multivariable de la función logística .

Interpretaciones

Suavizar arg max

La función Softmax es una aproximación suave de la función arg max : la función cuyo valor es el índice del elemento más grande de una tupla. El nombre "softmax" puede resultar engañoso. Softmax no es un máximo suave (es decir, una aproximación suave de la función máximo ). El término "softmax" también se utiliza para la función LogSumExp , estrechamente relacionada , que sí es un máximo suave. Por esta razón, algunos prefieren el término más preciso "softargmax", aunque el término "softmax" es convencional en el aprendizaje automático. [ 3 ] [ 4 ] Esta sección utiliza el término "softargmax" para mayor claridad.

Formalmente, en lugar de considerar el argumento max como una función con salida categórica1,,norte{\displaystyle 1,\dots ,n}(correspondiente al índice), considere la función arg max con representación one-hot de la salida (suponiendo que existe un único arg máximo): argramometroaincógnita(z1,,znorte)=(y1,,ynorte)=(0,,0,1,0,,0),{\displaystyle \operatorname {arg\,max} (z_{1},\,\dots ,\,z_{n})=(y_{1},\,\dots ,\,y_{n})=(0,\,\dots ,\,0,\,1,\,0,\,\dots ,\,0),} donde la coordenada de salidayi=1{\displaystyle y_{i}=1}si y solo sii{\displaystyle i}es el arg max de(z1,,znorte){\displaystyle (z_{1},\dots,z_{n})}, significadozi{\displaystyle z_{i}}es el valor máximo único de(z1,,znorte){\displaystyle (z_{1},\,\dots ,\,z_{n})}Por ejemplo, en esta codificaciónargramometroaincógnita(1,5,10)=(0,0,1),{\displaystyle \operatorname {arg\,max} (1,5,10)=(0,0,1),}ya que el tercer argumento es el máximo.

Esto se puede generalizar a múltiples valores máximos de argumentos (múltiples iguales)zi{\displaystyle z_{i}}siendo el máximo) dividiendo el 1 entre todos los argumentos máximos; formalmente 1/k donde k es el número de argumentos asumiendo el máximo. Por ejemplo,argramometroaincógnita(1,5,5)=(0,1/2,1/2),{\displaystyle \operatorname {arg\,max} (1,\,5,\,5)=(0,\,1/2,\,1/2),}ya que el segundo y el tercer argumento son ambos el máximo. En caso de que todos los argumentos sean iguales, esto es simplementeargramometroaincógnita(z,,z)=(1/norte,,1/norte).{\displaystyle \operatorname {arg\,max} (z,\dots ,z)=(1/n,\dots ,1/n).}Los puntos z con múltiples valores de arg max son puntos singulares (o singularidades, y forman el conjunto singular); estos son los puntos donde arg max es discontinuo (con una discontinuidad de salto ); mientras que los puntos con un solo arg max se conocen como puntos no singulares o regulares.

Con la última expresión dada en la introducción, softargmax es ahora una aproximación suave de arg max: comoβ{\displaystyle \beta \to \infty } , softargmax converge a arg max. Existen varias nociones de convergencia de una función; softargmax converge a arg max puntualmente , lo que significa para cada entrada fija z comoβ{\displaystyle \beta \to \infty } ,σβ(z)argramometroaincógnita(z).{\displaystyle \sigma _{\beta }(\mathbf {z} )\to \operatorname {arg\,max} (\mathbf {z} ).}Sin embargo, softargmax no converge uniformemente a arg max, lo que intuitivamente significa que diferentes puntos convergen a diferentes velocidades y pueden converger arbitrariamente lento. De hecho, softargmax es continua, pero arg max no lo es en el conjunto singular donde dos coordenadas son iguales, mientras que el límite uniforme de las funciones continuas sí lo es. La razón por la que no converge uniformemente es que para entradas donde dos coordenadas son casi iguales (y una es el máximo), arg max es el índice de una u otra, por lo que un pequeño cambio en la entrada produce un gran cambio en la salida. Por ejemplo,σβ(1,1.0001)(0,1),{\displaystyle \sigma _{\beta }(1,\,1.0001)\to (0,1),}peroσβ(1,0,9999)(1,0),{\displaystyle \sigma _{\beta }(1,\,0.9999)\to (1,\,0),}yσβ(1,1)=1/2{\displaystyle \sigma _{\beta }(1,\,1)=1/2}Para todas las entradas: cuanto más cerca estén los puntos del conjunto singular(incógnita,incógnita){\displaystyle (x,x)}Cuanto más lento convergen, más lentamente. Sin embargo, softargmax sí converge de forma compacta en el conjunto no singular.

Por el contrario, comoβ{\displaystyle \beta \to -\infty } , softargmax converge a arg min de la misma manera, donde aquí el conjunto singular son los puntos con dosvalores de arg min . En el lenguaje del análisis tropical , softmax es una deformación o "cuantización" de arg max y arg min, que corresponde al uso del semianillo logarítmico en lugar del semianillo max-plus ( o min-plus, respectivamente), y recuperar arg max o arg min tomando el límite se denomina "tropicalización" o "descuantización".

También es cierto que, para cualquier β fijo , si una entradazi{\displaystyle z_{i}}es mucho mayor que los demás en relación con la temperatura,T=1/β{\displaystyle T=1/\beta }, la salida es aproximadamente el valor máximo del argumento. Por ejemplo, una diferencia de 10 es grande en relación con una temperatura de 1: σ(0,10):=σ1(0,10)=(1/(1+mi10),mi10/(1+mi10))(0,00005,0,99995){\displaystyle \sigma (0,\,10):=\sigma _{1}(0,\,10)=\left(1/\left(1+e^{10}\right),\,e^{10}/\left(1+e^{10}\right)\right)\approx (0.00005,\,0.99995)} Sin embargo, si la diferencia es pequeña en relación con la temperatura, el valor no está cerca del valor máximo del argumento. Por ejemplo, una diferencia de 10 es pequeña en relación con una temperatura de 100: σ1/100(0,10)=(1/(1+mi1/10),mi1/10/(1+mi1/10))(0,475,0,525).{\displaystyle \sigma _{1/100}(0,\,10)=\left(1/\left(1+e^{1/10}\right),\,e^{1/10}/\left(1+e^{1/10}\right)\right)\approx (0.475,\,0.525).} Comoβ{\displaystyle \beta \to \infty } , la temperatura llega a cero,T=1/β0{\displaystyle T=1/\beta \to 0}, por lo que finalmente todas las diferencias se vuelven grandes (en relación con una temperatura decreciente), lo que da otra interpretación para el comportamiento límite.

Mecánica estadística

En mecánica estadística , la función softargmax se conoce como la distribución de Boltzmann (o distribución de Gibbs ): [ 5 ] : 7 el conjunto de índices1,,k{\displaystyle {1,\,\dots ,\,k}}son los microestados del sistema; las entradaszi{\displaystyle z_{i}}son las energías de ese estado; el denominador se conoce como la función de partición , a menudo denotada por Z ; y el factor β se llama frialdad (o beta termodinámica , o temperatura inversa ).

Aplicaciones

La función softmax se utiliza en varios métodos de clasificación multiclase , como la regresión logística multinomial (también conocida como regresión softmax), [ 2 ] : 206–209 [ 6 ] el análisis discriminante lineal multiclase , los clasificadores bayesianos ingenuos y las redes neuronales artificiales . [ 7 ] Específicamente, en la regresión logística multinomial y el análisis discriminante lineal, la entrada a la función es el resultado de K funciones lineales distintas , y la probabilidad predicha para la j -ésima clase dada una tupla de muestra x y un vector de ponderación w es:

PAG(y=jincógnita)=miincógnitaTwjk=1KmiincógnitaTwk{\displaystyle P(y=j\mid \mathbf {x} )={\frac {e^{\mathbf {x} ^{\mathsf {T}}\mathbf {w} _{j}}}{\sum _ {k=1}^{K}e^{\mathbf {x} ^{\mathsf {T}}\mathbf {w} _{k}}}}}

Esto puede verse como la composición de K funciones lineales.incógnitaincógnitaTw1,,incógnitaincógnitaTwK{\displaystyle \mathbf {x} \mapsto \mathbf {x} ^{\mathsf {T}}\mathbf {w} _{1},\ldots ,\mathbf {x} \mapsto \mathbf {x} ^{\mathsf {T}}\mathbf {w} _{K}}y la función softmax (dondeincógnitaTw{\displaystyle \mathbf {x} ^{\mathsf {T}}\mathbf {w} }denota el producto interno deincógnita{\displaystyle \mathbf {x} }yw{\displaystyle \mathbf {w} }). La operación es equivalente a aplicar un operador lineal definido porw{\displaystyle \mathbf {w} }a tuplasincógnita{\displaystyle \mathbf {x} }, transformando así la entrada original, probablemente de alta dimensión, en vectores en un espacio K -dimensional.RK{\displaystyle \mathbb {R} ^{K}}.

Redes neuronales

La función softmax estándar se usa frecuentemente en la capa final de un clasificador basado en redes neuronales. Estas redes suelen entrenarse bajo un régimen de pérdida logarítmica (o entropía cruzada ), lo que da como resultado una variante no lineal de la regresión logística multinomial.

Dado que la función asigna una tupla y un índice específicoi{\displaystyle i}Para obtener un valor real, el derivado debe tener en cuenta el índice:

qkσ(q,i)=σ(q,i)(δikσ(q,k)).{\displaystyle {\frac {\partial }{\partial q_{k}}}\sigma ({\textbf {q}},i)=\sigma ({\textbf {q}},i)(\delta _{ik}-\sigma ({\textbf {q}},k)).}

Esta expresión es simétrica en los índices.i,k{\displaystyle i,k}y por lo tanto también puede expresarse como

qkσ(q,i)=σ(q,k)(δikσ(q,i)).{\displaystyle {\frac {\partial }{\partial q_{k}}}\sigma ({\textbf {q}},i)=\sigma ({\textbf {q}},k)(\delta _{ik}-\sigma ({\textbf {q}},i)).}

Aquí, por simplicidad, se utiliza la delta de Kronecker (en comparación con la derivada de una función sigmoide , que se expresa mediante la propia función).

Para garantizar la estabilidad de los cálculos numéricos, es común restar el valor máximo de la tupla de entrada. Este método, si bien no altera teóricamente la salida ni la derivada, mejora la estabilidad al controlar directamente el valor máximo del exponente calculado.

Si la función se escala con el parámetroβ{\displaystyle \beta }, entonces estas expresiones deben multiplicarse porβ{\displaystyle \beta }.

Consulte el modelo logit multinomial para ver un modelo de probabilidad que utiliza la función de activación softmax.

Aprendizaje por refuerzo

En el campo del aprendizaje por refuerzo , se puede utilizar una función softmax para convertir valores en probabilidades de acción. La función comúnmente utilizada es: [ 8 ]PAGt(a)=exp(qt(a)/τ)i=1norteexp(qt(i)/τ),{\displaystyle P_{t}(a)={\frac {\exp(q_{t}(a)/\tau )}{\sum _{i=1}^{n}\exp(q_{t}(i)/\tau )}}{\text{,}}}

donde el valor de la acciónqt(a){\displaystyle q_{t}(a)}corresponde a la recompensa esperada de seguir la acción a yτ{\displaystyle \tau }se denomina parámetro de temperatura (en alusión a la mecánica estadística ). Para altas temperaturas (τ{\displaystyle \tau \to \infty }), todas las acciones tienen casi la misma probabilidad y cuanto menor sea la temperatura, más afectarán las recompensas esperadas a la probabilidad. Para una temperatura baja (τ0+{\displaystyle \tau \to 0^{+}}), la probabilidad de la acción con la mayor recompensa esperada tiende a 1.

Complejidad computacional y soluciones

En las aplicaciones de redes neuronales, el número K de posibles resultados suele ser grande, por ejemplo, en el caso de los modelos de lenguaje neuronales que predicen el resultado más probable de un vocabulario que podría contener millones de palabras posibles. [ 9 ] Esto puede hacer que los cálculos para la capa softmax (es decir, las multiplicaciones de matrices para determinar elzi{\displaystyle z_{i}}(seguido de la aplicación de la función softmax en sí misma) computacionalmente costoso. [ 9 ] [ 10 ] Además, el método de retropropagación de descenso de gradiente para entrenar una red neuronal de este tipo implica calcular la función softmax para cada ejemplo de entrenamiento, y el número de ejemplos de entrenamiento también puede llegar a ser grande. El esfuerzo computacional para la función softmax se convirtió en un factor limitante importante en el desarrollo de modelos de lenguaje neuronales más grandes, lo que motivó diversas soluciones para reducir los tiempos de entrenamiento. [ 9 ] [ 10 ]

Los enfoques que reorganizan la capa softmax para un cálculo más eficiente incluyen el softmax jerárquico y el softmax diferenciado . [ 9 ] El softmax jerárquico (introducido por Morin y Bengio en 2005) utiliza una estructura de árbol binario donde los resultados (palabras del vocabulario) son las hojas y los nodos intermedios son "clases" de resultados adecuadamente seleccionadas, formando variables latentes . [ 10 ] [ 11 ] La probabilidad deseada (valor softmax) de una hoja (resultado) se puede calcular como el producto de las probabilidades de todos los nodos en el camino desde la raíz hasta esa hoja. [ 10 ] Idealmente, cuando el árbol está equilibrado, esto reduciría la complejidad computacional deO(K){\displaystyle O(K)}aO(registro2K){\displaystyle O(\log _{2}K)}. [ 11 ] En la práctica, los resultados dependen de elegir una buena estrategia para agrupar los resultados en clases. [ 10 ] [ 11 ] Se utilizó un árbol de Huffman para esto en los modelos word2vec de Google (introducidos en 2013) para lograr escalabilidad. [ 9 ]

Un segundo tipo de soluciones se basa en aproximar la función softmax (durante el entrenamiento) con funciones de pérdida modificadas que evitan el cálculo del factor de normalización completo. [ 9 ] Estas incluyen métodos que restringen la suma de normalización a una muestra de resultados (por ejemplo, muestreo de importancia, muestreo objetivo). [ 9 ] [ 10 ]

Algoritmos numéricos

La función softmax estándar es numéricamente inestable debido a las grandes exponenciaciones. El método softmax seguro calcula en su lugarσ(z)i=miβ(zimetro)j=1Kmiβ(zjmetro){\displaystyle \sigma (\mathbf {z} )_{i}={\frac {e^{\beta (z_{i}-m)}}{\sum _{j=1}^{K}e^{\beta (z_{j}-m)}}}}dóndemetro=máximoizi{\displaystyle m=\max _{i}z_{i}}es la puntuación más grande involucrada. Restarle garantiza que las exponenciaciones resulten en como máximo 1, ver invariancia de traslación en las propiedades matemáticas.

El mecanismo de atención en los transformadores toma tres argumentos: un "vector de consulta"q{\displaystyle q}, una lista de "vectores clave"k1,,knorte{\displaystyle k_{1},\dots ,k_{N}}y una lista de "vectores de valor"v1,,vnorte{\displaystyle v_{1},\dots ,v_{N}}y genera una suma ponderada softmax sobre vectores de valores:o=i=1nortemiqTkimetroj=1nortemiqTkjmetrovi{\displaystyle o=\sum _{i=1}^{N}{\frac {e^{q^{T}k_{i}-m}}{\sum _{j=1}^{N}e^{q^{T}k_{j}-m}}}v_{i}}El método softmax estándar implica varios bucles sobre las entradas, lo que se vería limitado por el ancho de banda de la memoria .

Se puede calcular de forma eficiente en un clúster de GPU utilizando el algoritmo FlashAttention .

Propiedades matemáticas

Geométricamente, la función softmax mapea el espacio euclidiano.RK{\displaystyle \mathbb {R} ^{K}}hasta el límite del estándar(K1){\displaystyle (K-1)}-símplex , cortando la dimensión por uno (el rango es un(K1){\displaystyle (K-1)}-símplex dimensional enK{\displaystyle K}espacio -dimensional), debido a la restricción lineal de que la suma de todas las salidas es 1, lo que significa que se encuentra en un hiperplano .

A lo largo de la diagonal principal(incógnita,incógnita,,incógnita),{\displaystyle (x,\,x,\,\dots ,\,x),}softmax es simplemente la distribución uniforme en las salidas,(1/norte,,1/norte){\displaystyle (1/n,\dots ,1/n)}: las puntuaciones iguales dan lugar a probabilidades iguales.

En términos más generales, softmax es invariante bajo traslación por el mismo valor en cada coordenada: al agregardo=(do,,do){\displaystyle \mathbf {c} =(c,\,\dots ,\,c)}a las entradasz{\displaystyle \mathbf {z} }rendimientosσ(z+do)=σ(z){\displaystyle \sigma (\mathbf {z} +\mathbf {c} )=\sigma (\mathbf {z} )}, porque multiplica cada exponente por el mismo factor,mido{\displaystyle e^{c}}(porquemizi+do=mizimido{\displaystyle e^{z_{i}+c}=e^{z_{i}}\cdot e^{c}}), por lo que las proporciones no cambian: σ(z+do)j=mizj+dok=1Kmizk+do=mizjmidok=1Kmizkmido=σ(z)j.{\displaystyle \sigma (\mathbf {z} +\mathbf {c} )_{j}={\frac {e^{z_{j}+c}}{\sum _{k=1}^{K}e^{z_{k}+c}}}={\frac {e^{z_{j}}\cdot e^{c}}{\sum _{k=1}^{K}e^{z_{k}}\cdot e^{c}}}=\sigma (\mathbf {z} )_{j}.}

Geométricamente, softmax es constante a lo largo de las diagonales: esta es la dimensión que se elimina y corresponde a que la salida de softmax sea independiente de una traslación en las puntuaciones de entrada (una elección de puntuación 0). Se pueden normalizar las puntuaciones de entrada asumiendo que la suma es cero (restar el promedio:do{\displaystyle \mathbf {c} }dóndedo=1nortezi{\textstyle c={\frac {1}{n}}\sum z_{i}}), y luego la función softmax toma el hiperplano de puntos que suman cero,zi=0{\textstyle \sum z_{i}=0}, al simplex abierto de valores positivos que suman 1σ(z)i=1{\textstyle \sum \sigma (\mathbf {z} )_{i}=1}, de forma análoga a como el exponente toma de 0 a 1,mi0=1{\displaystyle e^{0}=1}y es positivo.

Por el contrario, softmax no es invariante bajo escalado. Por ejemplo,σ((0,1))=(1/(1+mi),mi/(1+mi)){\displaystyle \sigma {\bigl (}(0,\,1){\bigr )}={\bigl (}1/(1+e),\,e/(1+e){\bigr )}}peroσ((0,2))=(1/(1+mi2),mi2/(1+mi2)).{\displaystyle \sigma {\bigl (}(0,2){\bigr )}={\bigl (}1/\left(1+e^{2}\right),\,e^{2}/\left(1+e^{2}\right){\bigr )}.}

La función logística estándar es el caso especial de un eje unidimensional en un espacio bidimensional, por ejemplo, el eje x en el plano (x, y) . Una variable se fija en 0 (por ejemplo,z2=0{\displaystyle z_{2}=0}), entoncesmi0=1{\displaystyle e^{0}=1}y la otra variable puede variar, denotemosz1=incógnita{\displaystyle z_{1}=x}, entoncesmiz1/k=12mizk=miincógnita/(miincógnita+1),{\textstyle e^{z_{1}}/\sum _{k=1}^{2}e^{z_{k}}=e^{x}/\left(e^{x}+1\right),}la función logística estándar ymiz2/k=12mizk=1/(miincógnita+1),{\textstyle e^{z_{2}}/\sum _{k=1}^{2}e^{z_{k}}=1/\left(e^{x}+1\right),}su complemento (es decir, que suman 1). La entrada unidimensional podría expresarse alternativamente como la línea(incógnita/2,incógnita/2){\displaystyle (x/2,\,-x/2)}, con salidasmiincógnita/2/(miincógnita/2+miincógnita/2)=miincógnita/(miincógnita+1){\displaystyle e^{x/2}/\left(e^{x/2}+e^{-x/2}\right)=e^{x}/\left(e^{x}+1\right)}ymiincógnita/2/(miincógnita/2+miincógnita/2)=1/(miincógnita+1).{\displaystyle e^{-x/2}/\left(e^{x/2}+e^{-x/2}\right)=1/\left(e^{x}+1\right).}

Gradientes

La función softmax es también el gradiente de la función LogSumExp :ziLSE(z)=expzij=1Kexpzj=σ(z)i, para i=1,,K,z=(z1,,zK)RK,{\displaystyle {\frac {\partial }{\partial z_{i}}}\operatorname {LSE} (\mathbf {z} )={\frac {\exp z_{i}}{\sum _{j=1}^{K}\exp z_{j}}}=\sigma (\mathbf {z} )_{i},\quad {\text{ for }}i=1,\dotsc ,K,\quad \mathbf {z} =(z_{1},\,\dotsc ,\,z_{K})\in \mathbb {R} ^{K},}donde la función LogSumExp se define comoLSE(z1,,znorte)=registro(exp(z1)++exp(znorte)){\displaystyle \operatorname {LSE} (z_{1},\,\dots ,\,z_{n})=\log \left(\exp(z_{1})+\cdots +\exp(z_{n})\right)}.

El gradiente de softmax es, por lo tanto,zjσi=σi(δijσj){\displaystyle \partial _{z_{j}}\sigma _{i}=\sigma _{i}(\delta _{ij}-\sigma _{j})}.

Historia

La función softmax se utilizó en mecánica estadística como la distribución de Boltzmann en el artículo fundamental de Boltzmann (1868) , [ 12 ] formalizada y popularizada en el influyente libro de texto de Gibbs (1902) . [ 13 ]

El uso del softmax en la teoría de la decisión se atribuye a R. Duncan Luce , [ 14 ] : 1 quien utilizó el axioma de independencia de alternativas irrelevantes en la teoría de la elección racional para deducir el softmax en el axioma de elección de Luce para preferencias relativas.

En el aprendizaje automático, el término "softmax" se le atribuye a John S. Bridle en dos artículos de conferencias de 1989, Bridle (1990a) : [ 14 ] : 1 y Bridle (1990b) : [ 3 ].

Nos interesan las redes no lineales de alimentación directa (perceptrones multicapa o MLP) con múltiples salidas. Deseamos tratar las salidas de la red como probabilidades de alternativas ( por ejemplo, clases de patrones), condicionadas a las entradas. Buscamos no linealidades de salida apropiadas y criterios adecuados para la adaptación de los parámetros de la red ( por ejemplo, pesos). Explicamos dos modificaciones: la puntuación de probabilidad, que es una alternativa a la minimización del error cuadrático, y una generalización exponencial normalizada ( softmax ) de múltiples entradas de la no linealidad logística. [ 15 ] : 227

Para cualquier entrada, las salidas deben ser todas positivas y su suma debe ser igual a la unidad.

Dado un conjunto de valores no restringidos ,Vj(incógnita){\displaystyle V_{j}(x)}Podemos garantizar ambas condiciones utilizando una transformación exponencial normalizada :Qj(incógnita)=miVj(incógnita)/kmiVk(incógnita){\displaystyle Q_{j}(x)=\left.e^{V_{j}(x)}\right/\sum _{k}e^{V_{k}(x)}} Esta transformación puede considerarse una generalización de múltiples entradas de la logística, que opera en toda la capa de salida. Conserva el orden de clasificación de sus valores de entrada y es una generalización diferenciable de la operación de "el ganador se lo lleva todo" de seleccionar el valor máximo. Por esta razón, preferimos referirnos a ella como softmax . [ 16 ] : 213

Ejemplo

Con una entrada de (1, 2, 3, 4, 1, 2, 3) , la función softmax es aproximadamente (0.024, 0.064, 0.175, 0.475, 0.024, 0.064, 0.175) . La mayor parte de la potencia de salida se concentra donde se encontraba el "4" en la entrada original. Esta es la función que se suele utilizar: resaltar los valores más grandes y suprimir aquellos que están significativamente por debajo del valor máximo. Sin embargo, tenga en cuenta que un cambio de temperatura modifica la salida. Cuando la temperatura se multiplica por 10, las entradas son efectivamente (0.1, 0.2, 0.3, 0.4, 0.1, 0.2, 0.3) y el softmax es aproximadamente (0.125, 0.138, 0.153, 0.169, 0.125, 0.138, 0.153) . Esto demuestra que las altas temperaturas restan importancia al valor máximo.

Cálculo de este ejemplo utilizando código Python :

>>> import numpy as np >>> z = np . array ([ 1.0 , 2.0 , 3.0 , 4.0 , 1.0 , 2.0 , 3.0 ]) >>> beta = 1.0 >>> np . exp ( beta * z ) / np . sum ( np . exp ( beta * z )) array([0.02364054, 0.06426166, 0.1746813, 0.474833, 0.02364054,  0.06426166, 0.1746813])

Alternativas

La función softmax genera predicciones de probabilidad densamente distribuidas en su soporte . Se pueden usar otras funciones como sparsemax o α- entmax cuando se desean predicciones de probabilidad dispersas. [ 17 ] Además, se puede usar el truco de reparametrización de Gumbel-softmax cuando se necesita imitar el muestreo de una distribución discreta-discreta de manera diferenciable.

Véase también

Notas

  1. Un β positivocorresponde a la convención máxima y es habitual en el aprendizaje automático, correspondiendo a la puntuación más alta con la mayor probabilidad. Un −β negativo corresponde a la convención mínima y es convencional en termodinámica, correspondiendo al estado de energía más bajo con la mayor probabilidad; esto coincide con la convención en la distribución de Gibbs , interpretando β como frialdad .
  2. La notación β es para la beta termodinámica , que es la temperatura inversa :β=1/T{\displaystyle \beta =1/T},T=1/β.{\displaystyle T=1/\beta .}
  3. Paraβ=0{\displaystyle \beta =0}( frío cero, temperatura infinita),b=miβ=mi0=1{\displaystyle b=e^{\beta }=e^{0}=1}y esta se convierte en la función constante .(1/norte,,1/norte){\displaystyle (1/n,\dots ,1/n)} , correspondiente a la distribución uniforme discreta .
  4. En mecánica estadística, fijar β se interpreta como tener frialdad y temperatura de 1.

Referencias

  1. Goodfellow, Ian ; Bengio, Yoshua ; Courville, Aaron (2016). "6.2.2.3 Unidades Softmax para distribuciones de salida multinoulli" . Aprendizaje profundo . MIT Press. págs. 180–184 . ISBN  978-0-26203561-3.
  2. 1 2 Bishop, Christopher M. (2006). Reconocimiento de patrones y aprendizaje automático . Springer. ISBN 0-387-31073-8.
  3. 1 2 Sako, Yusaku (2018-06-02). "¿Te está volviendo loco el término "softmax"?" . Medium .
  4. Goodfellow, Bengio y Courville 2016 , págs. 183-184: El nombre "softmax" puede resultar algo confuso. La función está más relacionada con la función arg max que con la función max. El término "soft" deriva del hecho de que la función softmax es continua y diferenciable. La función arg max, cuyo resultado se representa como un vector one-hot, no es continua ni diferenciable. Por lo tanto, la función softmax proporciona una versión "suave" de arg max. La versión suave correspondiente de la función max essoftmax(z)z{\displaystyle \operatorname {softmax} (\mathbf {z} )^{\top }\mathbf {z} }Quizás sería mejor llamar a la función softmax "softargmax", pero el nombre actual es una convención arraigada.
  5. LeCun, Yann ; Chopra, Sumit; Hadsell, Raia; Ranzato, Marc'Aurelio; Huang, Fu Jie (2006). "Un tutorial sobre aprendizaje basado en energía" (PDF) . En Gökhan Bakır; Thomas Hofmann; Bernhard Schölkopf; Alexander J. Smola; Ben Taskar; SVN Vishwanathan (eds.). Predicción de datos estructurados . Serie Procesamiento de información neuronal. MIT Press. ISBN 978-0-26202617-8.
  6. "Tutorial de aprendizaje de características no supervisado y aprendizaje profundo" . ufldl.stanford.edu . Consultado el 25 de marzo de 2024 .
  7. Preguntas frecuentes sobre IA ¿Qué es una función de activación softmax?
  8. Sutton, RS y Barto AG Aprendizaje por refuerzo: una introducción . The MIT Press, Cambridge, MA, 1998. Selección de acciones Softmax
  9. 1 2 3 4 5 6 7 Onal, Kezban Dilek; Zhang, Ye; Altingovde, Ismail Sengor; Rahman, Md Mustafizur; Karagoz, Pinar; Braylan, Alex; Dang, Brandon; Chang, Heng-Lu; Kim, Henna; McNamara, Quinten; Angert, Aaron (2018-06-01). "Recuperación de información neuronal: al final de los primeros años" . Information Retrieval Journal . 21 (2): 111– 182. doi : 10.1007/s10791-017-9321-y . hdl : 11245.1/008d6e8f-df13-4abf-8ae9-6ff2e17377f3 . ISSN 1573-7659 . S2CID 21684923 .  
  10. 1 2 3 4 5 6 Chen, Wenlin; Grangier, David; Auli, Michael (agosto de 2016). "Estrategias para entrenar modelos de lenguaje neuronales de vocabulario amplio" . Actas de la 54.ª Reunión Anual de la Asociación de Lingüística Computacional (Volumen 1: Artículos extensos) . Berlín, Alemania: Asociación de Lingüística Computacional: 1975–1985 . arXiv : 1512.04906 . doi : 10.18653/v1/P16-1186 . S2CID 6035643 . 
  11. 1 2 3 Morin, Frederic; Bengio, Yoshua (2005-01-06). "Modelo de lenguaje de red neuronal probabilística jerárquica" (PDF) . Taller internacional sobre inteligencia artificial y estadística . PMLR: 246–252 .
  12. Boltzmann, Ludwig (1868). "Studien über das Gleichgewicht der lebendigen Kraft zwischen bewegten materiellen Punkten" [ Estudios sobre el equilibrio de la fuerza viva entre puntos materiales en movimiento ] . Wiener Berichte . 58 : 517-560 .
  13. Gibbs, Josiah Willard (1902). "Principios elementales de mecánica estadística" . Nature . 66 (1708): 291. Bibcode : 1902Natur..66..291B . doi : 10.1038/066291a0 .
  14. 1 2 Gao, Bolin; Pavel, Lacra (2017). "Sobre las propiedades de la función softmax con aplicación en la teoría de juegos y el aprendizaje por refuerzo". arXiv : 1704.00805 [ math.OC ].
  15. Bridle, John S. (1990a). Soulié FF; Hérault J. (eds.). Interpretación probabilística de las salidas de redes de clasificación de alimentación directa, con relaciones con el reconocimiento estadístico de patrones . Neurocomputing: Algorithms, Architectures and Applications (1989). NATO ASI Series (Serie F: Ciencias de la Computación y de Sistemas). Vol. 68. Berlín, Heidelberg: Springer. pp. 227–236 . doi : 10.1007/978-3-642-76153-9_28 .  
  16. Bridle, John S. (1990b). DS Touretzky (ed.). El entrenamiento de algoritmos de reconocimiento de modelos estocásticos como redes puede conducir a la estimación de parámetros de máxima información mutua . Advances in Neural Information Processing Systems 2 (1989). Morgan-Kaufmann.
  17. ^ "Acelerando Entmax" por Maxat Tezekbayev, Vassilina Nikoulina, Matthias Gallé, Zhenisbek Assylbekov, https://arxiv.org/abs/2111.06832v3
Obtenido de " https://en.wikipedia.org/w/index.php?title=Softmax_function&oldid=1361846646 "