stringtranslate.com

función softmax

La función softmax, también conocida como softargmax [1] : 184  o función exponencial normalizada , [2] : 198  convierte un vector de K números reales en una distribución de probabilidad de K resultados posibles. 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 utiliza a menudo 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.

Definición

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 los 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 puede que no sume 1; pero después de aplicar softmax, cada componente estará en el intervalo y los componentes sumarán 1, por lo que pueden interpretarse como probabilidades. Además, los componentes de insumos más grandes corresponderán a probabilidades más grandes.

Formalmente, la función softmax estándar (unitaria) , donde está definida por

En palabras, softmax aplica la función exponencial estándar a cada elemento del vector de entrada (que consta de números reales) y normaliza estos valores dividiendo por la suma de todos estos exponenciales. La normalización garantiza que la suma de los componentes del vector de salida sea 1. El término "softmax" deriva de los efectos amplificadores del exponencial sobre cualquier máximo en el vector de entrada. Por ejemplo, el softmax estándar de es aproximadamente , lo que equivale a asignar casi todo el peso unitario total en el resultado a la posición del elemento máximo del vector (de 8).

En general, en lugar de e se puede utilizar una base diferente b > 0 . Si 0 < b < 1 , los componentes de entrada más pequeños darán lugar a mayores probabilidades de salida, y la disminución del valor de b creará distribuciones de probabilidad que están más concentradas alrededor de las posiciones de los valores de entrada más pequeños. A la inversa, como se indicó anteriormente, si b > 1 componentes de insumos más grandes darán como resultado mayores probabilidades de producción, y aumentar el valor de b creará distribuciones de probabilidad que están más concentradas alrededor de las posiciones de los valores de insumos más grandes. Escribiendo o [a] (para β real ) [b] se obtienen las expresiones: [c]

El recíproco de β a veces se denomina temperatura , con . Una temperatura más alta da como resultado una distribución de salida más uniforme (es decir, con mayor entropía y "más aleatoria"), mientras que una temperatura más baja da como resultado una distribución de salida más definida, con un valor dominante.

En algunos campos la base es fija, correspondiendo a una escala fija, [d] mientras que en otros el parámetro β es variado.

Interpretaciones

Arg máximo suave

La función Softmax es una aproximación suave a la función arg max : la función cuyo valor es el índice del elemento más grande de un vector. El nombre "softmax" puede inducir a error. Softmax no es un máximo suave (es decir, una aproximación suave a la función máxima ). El término "softmax" también se utiliza para la función LogSumExp, estrechamente relacionada , que 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 arg max como una función con salida categórica (correspondiente al índice), considere la función arg max con representación única de la salida (asumiendo que hay un arg máximo único):

donde la coordenada de salida si y solo si es el argumento máximo de , es decir , 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 argumentos (múltiples iguales son 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, dado que el segundo y el tercer argumento son ambos el máximo. En caso de que todos los argumentos sean iguales, esto es simplemente 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 único arg max se conocen como puntos no singulares o regulares.

Con la última expresión dada en la introducción, softargmax ahora es una aproximación suave de arg max: como , softargmax converge a arg max. Existen varias nociones de convergencia de una función; softargmax converge a arg max puntualmente , lo que significa que para cada entrada fija z as . 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 entradas donde dos coordenadas son casi iguales (y una es la máxima), el 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 lento convergerán. 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 arg min . En el lenguaje del análisis tropical , el softmax es una deformación o "cuantización" de arg max y arg min, correspondiente a utilizar el semiring log en lugar del semiring max-plus (respectivamente el semiring min-plus ), y recuperar el arg max o arg min tomando el límite se llama "tropicalización" o "descuantización".

También se da el caso de que, para cualquier β fijo , si una entrada es mucho mayor que las otras en relación con la temperatura, la salida es aproximadamente arg max. Por ejemplo, una diferencia de 10 es grande en relación con una temperatura de 1:

Teoría de probabilidad

En teoría de la probabilidad , el resultado de la función softargmax se puede utilizar para representar una distribución categórica , es decir, una distribución de probabilidad sobre K resultados posibles diferentes.

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 índices son los microestados del sistema; los insumos son las energías de ese estado; el denominador se conoce como 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] análisis discriminante lineal multiclase , clasificadores ingenuos de Bayes y 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 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 vectores , transformando así la entrada original, probablemente altamente dimensional, en vectores en un espacio K -dimensional .

Redes neuronales

La función softmax estándar se utiliza a menudo 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 proporciona una variante no lineal de regresión logística multinomial.

Dado que la función asigna un vector y un índice específico a un valor real, la derivada 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 utiliza por simplicidad (cf. la derivada de una función sigmoidea , expresada a través de la función misma).

Para garantizar cálculos numéricos estables, es común restar el valor máximo del vector de entrada. Este enfoque, aunque teóricamente no altera 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 , 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: [8]

donde el valor de la acción corresponde a la recompensa esperada de la siguiente acción a y se denomina parámetro de temperatura (en alusión a la mecánica estadística ). Para temperaturas altas ( ), 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 mayor recompensa esperada tiende a 1.

Complejidad computacional y soluciones.

En aplicaciones de redes neuronales, el número K de resultados posibles suele ser grande, por ejemplo, en el caso de modelos de lenguaje neuronal que predicen el resultado más probable a partir 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 , seguidas de la aplicación de la función softmax en sí) sean computacionalmente costosas. [9] [10] Es más, el método de retropropagación por descenso de gradiente para entrenar una red neuronal de este tipo implica calcular el 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 softmax se convirtió en un factor limitante importante en el desarrollo de modelos de lenguaje neuronal más grandes, lo que motivó a varios remedios a 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 de 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 de a . [11] En la práctica, los resultados dependen de la elección de una buena estrategia para agrupar los resultados en clases. [10] [11] Para esto se utilizó un árbol de Huffman en los modelos word2vec de Google (introducidos en 2013) para lograr escalabilidad. [9]

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

Propiedades matemáticas

Geométricamente, la función softmax asigna el espacio vectorial al límite del estándar -simplex , cortando la dimensión en uno (el rango es un -dimensional simplex en un espacio -dimensional), debido a la restricción lineal de que toda la salida suma 1, lo que significa que se encuentra en un hiperplano .

A lo largo de la diagonal principal, softmax es solo la distribución uniforme de las salidas : puntuaciones iguales producen probabilidades iguales.

De manera más general, softmax es invariante bajo traducción por el mismo valor en cada coordenada: sumando las entradas se obtiene , 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 elección de puntuación 0). Se pueden normalizar las puntuaciones de entrada asumiendo que la suma es cero (resta el promedio: donde ), y luego el softmax toma el hiperplano de puntos que suman cero, al simplex abierto de valores positivos que suman 1 , de manera 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 ), por lo que , y la otra variable puede variar, denotada por , por lo que es 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 distribución de Boltzmann en el artículo fundacional Boltzmann (1868), [12] formalizada y popularizada en el influyente libro de texto 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 las preferencias relativas. [ cita necesaria ]

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

Nos ocupamos de redes no lineales de retroalimentación (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 apropiados para la adaptación de los parámetros de la red ( por ejemplo, pesos). Explicamos dos modificaciones: 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. [15] : 227 

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

Dado un conjunto de valores sin restricciones, podemos garantizar ambas condiciones mediante el uso de 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. Preserva el orden de clasificación de sus valores de entrada y es una generalización diferenciable de la operación "el ganador se lo lleva todo" de elegir el valor máximo. Por este motivo nos gusta referirnos a él como softmax . [16] : 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 estaba el "4" en la entrada original. Para esto se utiliza 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 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 importancia al valor máximo (tenga en cuenta que 0,169 no solo es menor que 0,475, sino que 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 del 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 interactiva          julia > exp . ( A ) ./ suma ( exp , A ) Matriz 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 ) / suma ( exp ( z )) > softmax [1] 0.02364054 0.06426166 0.17468130 0.47483300 2364054 0,06426166 0,17468130          

Aquí hay un ejemplo de código Elixir : [17]

iex> t = Nx . tensor ([[ 1 , 2 ], [ 3 , 4 ]]) iex> Nx . dividir ( Nx . exp ( t ), Nx . suma ( Nx . exp ( t )))      #Nx.Tensor<  f64[2][2]  [  [0.03205860328008499, 0.08714431874203257],  [0.23688281808991013, 0.6439142598879722]  ] >

Aquí hay un ejemplo de código Raku :

> mi  @z = [ 1.0 , 2.0 , 3.0 , 4.0 , 1.0 , 2.0 , 3.0 ];> diga  @z . mapa: { exp ( $_ )/ suma ( @z . mapa: { exp ( $_ )})}( 0,023640543021591385  0,06426165851049616  0,17468129859572226  0,4748329997443803 0,023640543021591385  0,06426165851049616  0  .17468129859572226 )

Alternativas

La función softmax genera predicciones de probabilidad densamente distribuidas sobre su soporte. Se pueden utilizar otras funciones como sparsemax o α-entmax cuando se desean predicciones de probabilidad escasa. [18]

Ver también

Notas

  1. ^ β positivo corresponde a la convención máxima y es habitual en el aprendizaje automático y corresponde 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 de la distribución de Gibbs , interpretando β como frialdad .
  2. ^ La notación β es para la beta termodinámica , que es la temperatura inversa :,
  3. ^ Para ( frialdad cero, temperatura infinita), y esta se convierte en la función constante , 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. ^ Buen compañero, Ian ; Bengio, Yoshua ; Courville, Aarón (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.
  2. ^ ab Obispo, Christopher M. (2006). Reconocimiento de patrones y aprendizaje automático . Saltador. ISBN 0-387-31073-8.
  3. ^ ab Sako, Yusaku (2 de junio de 2018). "¿Te vuelve loco el término" softmax "?". Medio .
  4. ^ Goodfellow, Bengio & Courville 2016, págs. 183–184: El nombre "softmax" puede resultar algo confuso. La función está más estrechamente relacionada con la función arg max que con la función max. El término "suave" 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" de arg max. La versión suave correspondiente 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.
  5. ^ LeCun, Yann ; Chopra, Sumit; Hadsell, Raia; Ranzato, Marc'Aurelio; Huang, Fu Jie (2006). "Un tutorial sobre aprendizaje basado en la energía" (PDF) . En Gökhan Bakır; Tomás Hofmann; Bernhard Schölkopf; Alejandro 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.
  6. ^ "Tutorial de aprendizaje profundo y aprendizaje de funciones no supervisado". ufldl.stanford.edu . Consultado el 25 de marzo de 2024 .
  7. ^ ai-faq ¿Qué es una función de activación de softmax?
  8. ^ Sutton, RS y Barto AG Aprendizaje por refuerzo: introducción . The MIT Press, Cambridge, MA, 1998. Selección de acción Softmax
  9. ^ abcdefg Onal, Kezban Dilek; Zhang, Ye; Altingovde, Ismail Sengor; Rahman, Md. Mustafizur; Karagoz, Pinar; Braylan, Alex; Maldita sea, Brandon; Chang, Heng-Lu; Kim, henna; McNamara, Quinten; Angert, Aaron (1 de junio de 2018). "Recuperación de información neuronal: al final de los primeros años". Diario de recuperación de información . 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. ^ abcdef Chen, Wenlin; Granger, David; Auli, Michael (agosto de 2016). "Estrategias para la formación de modelos de lenguaje neuronal 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. ^ abc Morin, Federico; Bengio, Yoshua (6 de enero de 2005). "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, Josías Willard (1902). Principios elementales de la mecánica estadística .
  14. ^ ab 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 [matemáticas.OC].
  15. ^ Brida, John S. (1990a). Soulié FF; Hérault J. (eds.). "Interpretación probabilística de los resultados de la red de clasificación feedforward, con relaciones con el reconocimiento de patrones estadísticos" . Neurocomputación: algoritmos, arquitecturas y aplicaciones (1989). Serie NATO ASI (Serie F: Ciencias de la Computación y de Sistemas). vol. 68. Berlín, Heidelberg: Springer. págs. 227-236. doi :10.1007/978-3-642-76153-9_28.
  16. ^ Brida, John S. (1990b). DS Touretzky (ed.). El entrenamiento de algoritmos de reconocimiento de modelos estocásticos como redes puede conducir a una estimación de parámetros de información mutua máxima. Avances en los sistemas de procesamiento de información neuronal 2 (1989). Morgan-Kaufmann.
  17. ^ "Nx/Nx en principal · elixir-nx/Nx". GitHub .
  18. ^ "Acelerando Entmax" por Maxat Tezekbayev, Vassilina Nikoulina, Matthias Gallé, Zhenisbek Assylbekov, https://arxiv.org/abs/2111.06832v3