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 previstas.

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 consiste en 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ían no sumar 1; pero después de aplicar softmax, cada componente estará en el intervalo , y los componentes sumarán 1, de modo que se pueden interpretar 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 (unitaria) , donde , toma un vector y calcula cada componente del vector con

En otras palabras, la función 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 dividiéndolos por la suma de todos estos exponentes. 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 de la función exponencial sobre cualquier máximo en el vector de entrada. Por ejemplo, la función 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. Como se indicó anteriormente, si b > 1 , los componentes de entrada más grandes darán como resultado probabilidades de salida más grandes, y aumentar el valor de b creará distribuciones de probabilidad que están 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 probabilidades de salida más grandes, y disminuir el 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. Escribiendo o [a] (para β real ) [b] se obtienen las expresiones: [c]

Un valor proporcional al recíproco de β se denomina a veces temperatura : , donde k es típicamente 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 nítida, con un valor dominante.

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

Interpretaciones

Argumento suave al máximo

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 ser engañoso. 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 el arg max como una función con salida categórica (correspondiente al índice), considere la función arg max con representación one-hot de la salida (asumiendo que hay un máximo único arg): donde la coordenada de salida si y solo si es el arg max de , es decir, es el valor máximo único de . Por ejemplo, en esta codificación, dado que el tercer argumento es el máximo.

Esto se puede generalizar a múltiples valores arg max (múltiples iguales siendo el máximo) dividiendo el 1 entre todos los argumentos max; formalmente 1/k donde k es el número de argumentos asumiendo el máximo. Por ejemplo, dado que el segundo y 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 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 ⁠ ⁠ , softargmax converge a arg max. Hay varias nociones de convergencia de una función; softargmax converge a arg max puntualmente , lo que significa 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), el arg max es el índice de uno u otro, 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 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 los puntos con dos valores arg min . En el lenguaje del análisis tropical , el softmax es una deformación o "cuantificación" de arg max y arg min, que corresponde a usar el semiring logarítmico en lugar del max-más semiring (respectivamente min-más semiring ), y recuperar el arg max o arg min tomando el límite se llama "tropicalización" o "descuantificación".

También es el caso que, para cualquier β fijo , si una entrada ⁠ ⁠ es mucho mayor que las otras en relación con la temperatura, , la salida es aproximadamente el arg max. 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 está cerca del arg max. Por ejemplo, una diferencia de 10 es pequeña en relación con una temperatura de 100: A medida que , la temperatura tiende 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 para el comportamiento límite.

Teoría de la probabilidad

En teoría de 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 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; las entradas 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 Bayes ingenuos 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 en un régimen de pérdida logarítmica (o de entropía cruzada ), lo que da lugar a una variante no lineal de la 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í se utiliza el delta de Kronecker para simplificar (cf. la derivada de una función sigmoidea , que se expresa a través de la función misma).

Para garantizar cálculos numéricos estables, es habitual restar el valor máximo del vector de entrada. Este enfoque, si bien no altera teóricamente la salida ni la derivada, mejora la estabilidad al controlar directamente el valor del exponente máximo calculado.

Si la función se escala con el parámetro , entonces estas expresiones deben multiplicarse por .

Consulte logit multinomial para obtener 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 que se utiliza habitualmente 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 sea la temperatura, más afectan las recompensas esperadas a la probabilidad. Para una temperatura baja ( ), la probabilidad de la acción con la recompensa esperada más alta tiende a 1.

Complejidad computacional y soluciones

En las 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 de un vocabulario que puede 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 el , seguidas de la aplicación de la función softmax en sí) sean computacionalmente costosos. [9] [10] Ademá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 el softmax se convirtió en un factor limitante importante en el desarrollo de modelos de lenguaje neuronal más grandes, lo que motivó varias 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 entonces 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] 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 remedios se basa en la aproximación del 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 de destino). [9] [10]

Propiedades matemáticas

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

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

De manera más general, softmax es invariante bajo la traducción por el mismo valor en cada coordenada: al sumar a 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 opción de puntuación 0). Se pueden normalizar las puntuaciones de entrada suponiendo que la suma es cero (restar el promedio: donde ), y luego el softmax lleva 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 0 a 1, y es positivo.

Por el contrario, softmax no es invariante bajo escalamiento. Por ejemplo, pero

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 está fija en 0 (por ejemplo, ), por lo que , y la otra variable puede variar, denotándola , por lo que 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 también es 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] formalizado y popularizado en el influyente libro de texto Gibbs (1902). [13]

El uso del softmax en la teoría de la decisión se le 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. [ cita requerida ]

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

Nos interesan las redes no lineales de propagación hacia adelante (perceptrones multicapa o MLP) con múltiples salidas. Queremos 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: la puntuación de probabilidad, que es una alternativa a la minimización del error al cuadrado, 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 sumar la unidad.

Dado un conjunto de valores sin restricciones, ⁠ ⁠ , podemos asegurar ambas condiciones utilizando 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 lo lleva todo" de elegir el valor máximo. Por esta razón, nos gusta referirnos a ella como softmax . [16] : 213 

Ejemplo

Con una entrada de (1, 2, 3, 4, 1, 2, 3) , el softmax es aproximadamente (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. Esto es para lo que normalmente se utiliza 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: un cambio de temperatura cambia 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 :

>>> importar  numpy  como  np >>> z  =  np . matriz ([ 1.0 ,  2.0 ,  3.0 ,  4.0 ,  1.0 ,  2.0 ,  3.0 ]) >>> beta  =  1.0 >>> np . exp ( beta  *  z )  /  np . suma ( np . exp ( beta  *  z ))  matriz ([0.02364054, 0.06426166, 0.1746813, 0.474833, 0.02364054,  0.06426166, 0.1746813])

Alternativas

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

Véase también

Notas

  1. ^ El β positivo corresponde a la convención máxima y es habitual en el aprendizaje automático, ya que corresponde a la puntuación más alta con la mayor probabilidad. El −β negativo corresponde a la convención mínima y es convencional en termodinámica, ya que corresponde al estado de energía más bajo con la mayor probabilidad; esto coincide con la convención en la distribución de Gibbs , que interpreta β como frío .
  2. ^ La notación β es para la beta termodinámica , que es la temperatura inversa : ,
  3. ^ Para ( frialdad cero, temperatura infinita), , y ésta 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. ^ 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. ^ ab Bishop, Christopher M. (2006). Reconocimiento de patrones y aprendizaje automático . Springer. ISBN 0-387-31073-8.
  3. ^ de Sako, Yusaku (2 de junio de 2018). "¿El término "softmax" te está volviendo loco?". Medium .
  4. ^ Goodfellow, Bengio & Courville 2016, pp. 183–184: El nombre "softmax" puede ser 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, con su resultado representado como un vector one-hot, no es continua ni diferenciable. La función softmax proporciona, por tanto, una versión "suavizada" de la función arg max. La versión soft correspondiente de la función maximum es . Tal vez 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 de procesamiento de información neuronal. MIT Press. ISBN 978-0-26202617-8.
  6. ^ "Tutorial de aprendizaje profundo y aprendizaje de características no supervisado". ufldl.stanford.edu . Consultado el 25 de marzo de 2024 .
  7. ^ ai-faq ¿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 de Softmax
  9. ^ abcdefg 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 (1 de junio de 2018). "Recuperación de información neuronal: al final de los primeros años". Revista 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; Grangier, David; Auli, Michael (agosto de 2016). "Estrategias para entrenar modelos neuronales de lenguaje con un 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, Frederic; 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, Josiah Willard (1902). Principios elementales de mecánica estadística .
  14. ^ ab 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 los resultados de la red de clasificación de avance, 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 de sistemas). Vol. 68. Berlín, Heidelberg: Springer. págs. 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 una estimación máxima de información mutua de parámetros. Avances en sistemas de procesamiento de información neuronal 2 (1989). Morgan-Kaufmann.
  17. ^ "Acelerando Entmax" por Maxat Tezekbayev, Vassilina Nikoulina, Matthias Gallé, Zhenisbek Assylbekov, https://arxiv.org/abs/2111.06832v3