La función softmax, también conocida como softargmax [1] : 184 o función exponencial normalizada , [2] : 198 es una generalización de la función logística a múltiples dimensiones. Se utiliza en la regresión logística multinomial y a menudo se utiliza como la última función de activación de una red neuronal para normalizar la salida de una red a una distribución de probabilidad sobre las clases de salida predichas, según el axioma de elección de Luce .
La función softmax toma como entrada un vector z de K números reales y lo 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 del vector podrían ser negativos o mayores que uno; y podría no sumar 1; pero después de aplicar softmax, cada componente estará en el intervalo , y los componentes sumarán 1, de modo que puedan interpretarse como probabilidades. Además, los componentes de entrada más grandes corresponderán a mayores probabilidades.
La función softmax estándar (unidad) está definido por la fórmula
En palabras simples, aplica la función exponencial estándar a cada elemento. del vector de entrada y normaliza estos valores dividiendo por la suma de todos estos exponenciales; esta normalización asegura que la suma de los componentes del vector de salida es 1.
En lugar de e , se puede usar una base diferente b > 0 . Si 0 < b <1 , los componentes de entrada más pequeños darán como resultado mayores probabilidades de salida, y la disminución del valor de b creará distribuciones de probabilidad que se concentran más alrededor de las posiciones de los valores de entrada más pequeños. Por el contrario, 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 que se concentran más alrededor de las posiciones de los valores de entrada más grandes. Escritura o [a] (para β real) [b] produce las expresiones: [c]
En algunos campos, la base es fija, correspondiente a una escala fija, [d] mientras que en otros se varía el parámetro β .
Interpretaciones
Arg suave máximo
El nombre "softmax" es engañoso; la función no es un máximo uniforme (una aproximación suave a la función máxima ), sino más bien una aproximación suave a la función arg max : la función cuyo valor es qué índice tiene el máximo. De hecho, el término "softmax" también se utiliza para la función LogSumExp estrechamente relacionada , que es un máximo uniforme. Por esta razón, algunos prefieren el término más preciso "softargmax", pero el término "softmax" es convencional en el aprendizaje automático. [3] [4] Esta sección utiliza el término "softargmax" para enfatizar esta interpretación.
Formalmente, en lugar de considerar arg max como una función con salida categórica (correspondiente al índice), considere la función arg max con una representación one-hot de la salida (asumiendo que hay un argumento máximo único):
donde la coordenada de salida si y solo si es el máximo de arg de , significado es el valor máximo único de . Por ejemplo, en esta codificación ya que el tercer argumento es el máximo.
Esto se puede generalizar a múltiples valores máximos de arg (múltiples iguales 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,ya que el segundo y tercer argumento son ambos máximos. En caso de que todos los argumentos sean iguales, esto es simplementeLos 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 no singulares o puntos regulares.
Con la última expresión dada en la introducción, softargmax es ahora una aproximación suave de arg max: como , softargmax converge a arg max. Hay varias nociones de convergencia de una función; softargmax converge a arg max pointwise , lo que significa que para cada entrada fija z como, Sin embargo, softargmax no converge uniformemente a arg max, lo que significa intuitivamente que diferentes puntos convergen a diferentes velocidades y pueden converger arbitrariamente lentamente. De hecho, softargmax es continuo, pero arg max no es continuo en el conjunto singular donde dos coordenadas son iguales, mientras que el límite uniforme de funciones continuas es continuo. La razón por la que no converge uniformemente es que para las 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, pero y para todas las entradas: cuanto más cerca estén los puntos del conjunto singular , más lentamente convergen. Sin embargo, softargmax converge de forma compacta en el conjunto no singular.
Por el contrario, como , softargmax converge a arg min de la misma manera, donde aquí el conjunto singular son puntos con dos valores de arg min . En el lenguaje del análisis tropical , el softmax es una deformación o "cuantificación" de arg max y arg min, correspondiente al uso de log semiring en lugar de max-plus semiring (respectivamente min-plus semiring ), y recuperar arg max o arg min al tomar el límite se llama "tropicalización" o "descuantificación".
También ocurre que, para cualquier β fijo , si una entradaes mucho más grande que los demás en relación con la temperatura,, la salida es aproximadamente el máximo de arg. Por ejemplo, una diferencia de 10 es grande en relación con una temperatura de 1:
Sin embargo, si la diferencia es pequeña en relación con la temperatura, el valor no se acerca al máximo de arg. Por ejemplo, una diferencia de 10 es pequeña en relación con una temperatura de 100:
Como , la temperatura llega a cero, , por lo que eventualmente todas las diferencias se vuelven grandes (en relación con una temperatura de contracción), lo que da otra interpretación del comportamiento límite.
Teoría de probabilidad
En la teoría de la probabilidad , la salida de la función softargmax se puede utilizar para representar una distribución categórica , es decir, una distribución de probabilidad sobre K diferentes resultados posibles.
Mecánica estadística
En mecánica estadística , la función softargmax se conoce como distribución de Boltzmann (o distribución de Gibbs ): [5] : 7 el conjunto de índicesson los microestados del sistema; las entradasson las energías de ese estado; el denominador se conoce como función de partición , a menudo denotado 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 [1] , análisis discriminante lineal multiclase , clasificadores Bayes ingenuos y redes neuronales artificiales . [6] 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 dado un vector de muestra x y un vector de ponderación w es:
Esto puede verse como la composición de K funciones lineales y la función softmax (donde denota el producto interno de y ). La operación es equivalente a aplicar un operador lineal definido por a los vectores , transformando así la entrada original, probablemente altamente dimensional, a los vectores en un espacio K -dimensional.
Redes neuronales
La función softmax se usa a menudo en la capa final de un clasificador basado en redes neuronales. Dichas redes se entrenan comúnmente bajo un régimen de pérdida logarítmica (o entropía cruzada ), dando una variante no lineal de regresión logística multinomial.
Dado que la función mapea un vector y un índice específico a un valor real, el derivado debe tener en cuenta el índice:
Esta expresión es simétrica en los índices. y por lo tanto también puede expresarse como
Aquí, el delta de Kronecker se usa para simplificar (cf. la derivada de una función sigmoidea , expresada a través de la función misma).
Si la función se escala con el parámetro , entonces estas expresiones deben multiplicarse por .
Consulte Logit multinomial para ver un modelo de probabilidad que utiliza la función de activación softmax.
Aprendizaje reforzado
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: [7]
donde el valor de la acción corresponde a la recompensa esperada de seguir la acción ay se denomina parámetro de temperatura (en alusión a la mecánica estadística ). Para altas temperaturas (), todas las acciones tienen casi la misma probabilidad y cuanto más baja es la temperatura, más recompensas esperadas afectan la probabilidad. Para una temperatura baja (), la probabilidad de la acción con la recompensa esperada más alta tiende a 1.
Propiedades
Geométricamente, la función softmax mapea el espacio vectorial al límite del estándar ( K - 1 ) {\ Displaystyle (K-1)} -simplex , cortando la dimensión en uno (el rango es un-dimensional simplex en -espacio dimensional), debido a la restricción lineal de que todos los resultados suman 1, lo que significa que se encuentra en un hiperplano .
A lo largo de la diagonal principal softmax es solo la distribución uniforme en las salidas, : puntuaciones iguales producen probabilidades iguales.
De manera más general, softmax es invariante en la traducción por el mismo valor en cada coordenada: sumando a las entradas rendimientos , porque multiplica cada exponente por el mismo factor, (porque ), por lo que las proporciones no cambian:
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 traducción en las puntuaciones de entrada (una opción de puntuación 0). Uno puede normalizar los puntajes de entrada asumiendo que la suma es cero (reste el promedio: dónde ), y luego el softmax toma el hiperplano de puntos que suman cero, , al simplex abierto de valores positivos que suman 1, de forma análoga a cómo el exponente toma de 0 a 1, y es positivo.
Por el contrario, softmax no es invariante bajo escala. Por ejemplo, pero
La función logística estándar es el caso especial de un eje unidimensional en un espacio bidimensional, digamos el eje x en el plano (x, y) . Una variable se fija en 0 (digamos), entonces , y la otra variable puede variar, denotarla , entonces la función logística estándar, y su complemento (lo que significa que suman 1). La entrada unidimensional podría expresarse alternativamente como la línea, con salidas y
La función softmax es también el gradiente de la función LogSumExp , un máximo suave :
donde la función LogSumExp se define como .
Historia
La función softmax se utilizó en mecánica estadística como la distribución de Boltzmann en el artículo fundacional Boltzmann (1868) , [8] formalizado y popularizado en el influyente libro de texto Gibbs (1902) . [9]
El uso del softmax en la teoría de la decisión se le atribuye a Luce (1959)1 que 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 las preferencias relativas.
, [10] :En el aprendizaje automático, el término "softmax" se le atribuye a John S. Bridle en dos artículos de conferencia de 1989, Bridle (1990a) : [10] : 1 y Bridle (1990b) : [3]
Nos interesan las redes no lineales de alimentación hacia adelante (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 adecuadas 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 al cuadrado, y una generalización de múltiples entradas exponencial normalizada ( softmax ) de la no linealidad logística. [11] : 227
Para cualquier entrada, las salidas deben ser todas positivas y deben sumar la unidad. ...
Dado un conjunto de valores no restringidos, , podemos asegurar ambas condiciones usando una transformación exponencial normalizada:
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 lleva todo" de elegir el valor máximo. Por esta razón, nos gusta referirnos a él como softmax . [12] : 213
Ejemplo
Si tomamos una entrada de [1, 2, 3, 4, 1, 2, 3], el softmax de eso es [0.024, 0.064, 0.175, 0.475, 0.024, 0.064, 0.175]. La salida tiene la mayor parte de su peso donde el '4' estaba en la entrada original. Para esto se usa normalmente la función: para resaltar los valores más grandes y suprimir los valores que están significativamente por debajo del valor máximo. Pero tenga en cuenta: softmax no es invariante de escala, por lo que si la entrada fuera [0.1, 0.2, 0.3, 0.4, 0.1, 0.2, 0.3] (que suma a 1.6) el softmax sería [0.125, 0.138, 0.153, 0.169, 0.125, 0,138, 0,153]. Esto muestra que para valores entre 0 y 1 softmax, de hecho, resta énfasis al valor máximo (tenga en cuenta que 0.169 no solo es menor que 0.475, también es menor que la proporción inicial de 0.4 / 1.6 = 0.25).
Cálculo de este ejemplo usando código Python :
>>> importar numpy como np >>> a = [ 1.0 , 2.0 , 3.0 , 4.0 , 1.0 , 2.0 , 3.0 ] >>> np . exp ( a ) / np . suma ( np . exp ( a )) matriz ([ 0.02364054 , 0.06426166 , 0.1746813 , 0.474833 , 0.02364054 , 0.06426166 , 0.1746813 ])
Aquí hay un ejemplo de código de Julia :
julia> A = [ 1.0 , 2.0 , 3.0 , 4.0 , 1.0 , 2.0 , 3.0 ]; # punto y coma para suprimir la salida interactivajulia> exp . ( A ) ./ sum ( exp . ( A )) Array de 7 elementos {Float64,1}: 0.0236405 0.0642617 0.174681 0.474833 0.0236405 0.0642617 0.174681
Aquí hay un ejemplo de código R :
> z <- c ( 1.0 , 2.0 , 3.0 , 4.0 , 1.0 , 2.0 , 3.0 ) > softmax <- exp ( z ) / sum ( exp ( z )) > softmax [ 1 ] 0.02364054 0.06426166 0.17468130 0.47483300 0.02364054 0.06426166 0.17468130
Aquí hay un ejemplo de código Elixir : [13]
es decir, x > t = Nx . tensor ([[ 1 , 2 ], [ 3 , 4 ]]) es decir, x > Nx . dividir ( Nx . exp ( t ), Nx . suma ( Nx . exp ( t )))# Nx.Tensor < F64 [ 2 ] [ 2 ] [ [ ,03205860328008499 , ,08714431874203257 ], [ ,23688281808991013 , ,6439142598879722 ] ] >
Ver también
- Softplus
- Regresión logística multinomial
- Distribución de Dirichlet : una forma alternativa de muestrear distribuciones categóricas
- Función de partición
Notas
- ^ Positivo β corresponde a la convención máxima, y es habitual en el aprendizaje automático, correspondiente a la puntuación más alta que tiene la mayor probabilidad. El negativo - β corresponde a la convención mínima, y es convencional en termodinámica, correspondiente al estado de menor energía que tiene la mayor probabilidad; esto coincide con la convención en la distribución de Gibbs , interpretando β como frialdad .
- ^ La notación β es para la beta termodinámica , que es la temperatura inversa:,
- ^ Para( frialdad cero, temperatura infinita),, y esto se convierte en la función constante , correspondiente a la distribución uniforme discreta .
- ^ En mecánica estadística, la fijación de β se interpreta como una frialdad y una temperatura de 1.
Referencias
- ^ Buen amigo, Ian ; Bengio, Yoshua ; Courville, Aaron (2016). "6.2.2.3 Unidades Softmax para Distribuciones de Salida Multinoulli" . Aprendizaje profundo . Prensa del MIT. págs. 180–184. ISBN 978-0-26203561-3.
- ^ a b Obispo, Christopher M. (2006). Reconocimiento de patrones y aprendizaje automático . Saltador. ISBN 0-387-31073-8.
- ^ a b Sako, Yusaku (2 de junio de 2018). "¿El término" softmax "te está volviendo loco?" . Medio .
- ^ Goodfellow, Bengio & 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 "suave" se deriva del hecho de que la función softmax es continua y diferenciable. La función arg max, con su resultado representado como un vector one-hot, no es continua ni diferenciable. La función softmax proporciona así una versión "suavizada" del arg max. La correspondiente versión blanda de la función máxima es. Quizás sería mejor llamar a la función softmax "softargmax", pero el nombre actual es una convención arraigada.
- ^ LeCun, Yann ; Chopra, Sumit; Hadsell, Raia; Ranzato, Marc'Aurelio; Huang, Fu Jie (2006). "Un tutorial sobre el aprendizaje basado en la 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 de procesamiento de información neuronal. Prensa del MIT. ISBN 978-0-26202617-8.
- ^ ai-faq ¿Qué es una función de activación softmax?
- ^ Sutton, RS y Barto AG Aprendizaje por refuerzo: una introducción . The MIT Press, Cambridge, MA, 1998. Selección de acción Softmax
- ^ 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.
- ^ Gibbs, Josiah Willard (1902). Principios elementales en mecánica estadística .
- ^ a b Gao, Bolin; Pavel, Lacra (2017). "Sobre las propiedades de la función Softmax con aplicación en teoría de juegos y aprendizaje por refuerzo". arXiv : 1704.00805 [ math.OC ].
- ^ Bridle, John S. (1990a). Soulié FF; Hérault J. (eds.). Interpretación probabilística de las salidas de la red de clasificación anticipada, con relaciones con el reconocimiento estadístico de patrones . Neurocomputación: algoritmos, arquitecturas y aplicaciones (1989). Serie ASI de la OTAN (Serie F: Ciencias de la Computación y Sistemas). 68 . Berlín, Heidelberg: Springer. págs. 227-236. doi : 10.1007 / 978-3-642-76153-9_28 .
- ^ Bridle, John S. (1990b). DS Touretzky (ed.). El entrenamiento de algoritmos de reconocimiento de modelos estocásticos como redes puede conducir a una estimación máxima de los parámetros de información mutua . Avances en sistemas de procesamiento de información neuronal 2 (1989). Morgan-Kaufmann.
- ^ https://github.com/elixir-nx/nx/tree/main/nx#examples