Ir al contenido

Función SoftMax

De Wikipedia, la enciclopedia libre
Esta es una versión antigua de esta página, editada a las 10:22 1 nov 2019 por 186.167.243.252 (discusión). La dirección URL es un enlace permanente a esta versión, que puede ser diferente de la versión actual.

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


Aprendizaje por Refuerzo

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

Referencias

  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