En matemáticas, la función softmax, o función exponencial normalizada,[1]: 198 es una generalización de la Función logística. Se emplea para "comprimir" un vector K-dimensional, , de valores reales arbitrarios en un vector K-dimensional,, de valores reales en el rango [0, 1]. La función está dada por:
- para j = 1, …, K.
En teoría de la probabilidad, la salida de la función softmax puede ser utilizada para representar una distribución categórica– la distribución de probabilidad sobre K diferentes posibles salidas.
La función softmax es empleada en varios métodos de clasificación multiclase tales como Regresión Logística Multinomial,[1]: 206–209 análisis discriminante lineal multiclase, clasificadores Bayesianos ingenuos (naive Bayes), y Redes Neuronales Artificiales.[2]
Ejemplo
Si el vector de entrada es [1, 2, 3, 4, 1, 2, 3], la función softmax retorna [0.024, 0.064, 0.175, 0.475, 0.024, 0.064, 0.175]. Se puede observar que el máximo valor del vector resultante está en la misma ubicación que el máximo valor del vector de entrada. Por esta razón es que la función softmax es típicamente utilizada para "filtrar" un conjunto de valores que se encuentren por debajo de un valor máximo establecido.
En código Python:
>>> import math
>>> z = [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0]
>>> z_exp = [math.exp(i) for i in z]
>>> print([round(i, 2) for i in z_exp])
[2.72, 7.39, 20.09, 54.6, 2.72, 7.39, 20.09]
>>> sum_z_exp = sum(z_exp)
>>> print(round(sum_z_exp, 2))
114.98
>>> softmax = [round(i / sum_z_exp, 3) for i in z_exp]
>>> print(softmax)
[0.024, 0.064, 0.175, 0.475, 0.024, 0.064, 0.175]
Redes Neuronales Artificiales
La función softmax es utilizada como capa final de los clasificadores basados en redes neuronales. Tales redes son comúnmente entrenadas usando un régimen de entropía cruzada, con lo que se obtiene una variante no lineal de la regresión logística multinomial.
Aprendizaje por refuerzo
En el campo del aprendizaje por refuerzo, la función SoftMax puede utilizarse para convertir valores en probabilidades de actuación. Correlaciona la recompensa que se espera obtener al llevar a cabo una acción específica con la probabilidad de escoger esa acción. De este modo las acciones de mayor recompensa esperada se eligen con mayor probabilidad. Este comportamiento es apropiado en entornos estocásticos, donde una acción no siempre produce el mismo resultado y por tanto la política de actuación óptima debería ser también probabilística.
En esos casos, la función que se emplea[3] es una variación de
Donde el valor de actuación corresponde a la recompensa esperada al ejecutar la acción .
El símbolo es denominado el parámetro de temperatura (aludiendo a la estadística mecánica) y se utiliza para controlar la proporcionalidad en las probabilidades resultantes: un parámetro de temperatura muy elevado resultará en las probabilidades distribuidas igualitariamente entre todas las acciones mientras que un valor muy bajo asignará el grueso de la probabilidad al elemento con mayor recompensa. Esto es útil para regular en qué medida se prioriza la exploración de diferentes alternativas sobre la explotación de la información aprendida.
Véase también
Referencias
- ↑ a b Bishop, Christopher M. (2006). Pattern Recognition and Machine Learning. Springer.
- ↑ ai-faq What is a softmax activation function?
- ↑ Sutton, R. S. and Barto A. G. Reinforcement Learning: An Introduction. The MIT Press, Cambridge, MA, 1998. Softmax Action Selection