Función SoftMax

De Wikipedia, la enciclopedia libre
Ir a la navegación Ir a la búsqueda

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[editar]

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[editar]

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.[3]


Aprendizaje por Refuerzo[editar]

En el campo del Aprendizaje por Refuerzo, la función SoftMax puede utilizarse para convertir valores en probabilidades de actuación. En esos casos, la función que se emplea es una variación de: [4]

Donde el valor de actuación corresponde a la recompensa esperada de la acción siguiente a y es denominado el parámetro de temperatura (aludiendo a la estadística mecánica).

Vea también[editar]

Referencias[editar]

  1. a b Bishop, Christopher M. (2006). Pattern Recognition and Machine Learning. Springer. 
  2. ai-faq What is a softmax activation function?
  3. «Funciones de Activación Softmax en RNA». 
  4. Sutton, R. S. and Barto A. G. Reinforcement Learning: An Introduction. The MIT Press, Cambridge, MA, 1998. Softmax Action Selection