¿Qué significa el término ‘soft-max’ en el contexto del aprendizaje automático?

Softmax tiene dos significados posibles. El significado original explica de dónde viene el nombre. La definición de softmax utilizada en el aprendizaje automático está estrechamente relacionada con el original.

Significado original

[math] \ text {max} (x_1, …, x_n) [/ math] es una función de [math] \ mathbb {R} ^ n \ to \ mathbb {R} [/ math]

Sin embargo, max no es diferenciable. Por lo tanto, en muchas aplicaciones se usa la función
[matemáticas] \ text {softmax} (x_1,…, x_n) = \ log \ left (\ sum_ {i = 1} ^ ne ^ {x_i} \ right) [/ math]
como una aproximación suave para softmax.

A continuación puede ver la gráfica de [matemáticas] y = \ max (x, 5) [/ matemáticas] versus [matemáticas] y = \ text {softmax} (x, 5) [/ matemáticas]

Tenga en cuenta que también puede reescalar el softmax para aproximar mejor la función. Para [matemáticas] k> 0 [/ matemáticas], defina

[matemáticas] k- \ text {softmax} (x_1,…, x_n) = \ frac {1} {k} \ log \ left (\ sum_ {i = 1} ^ ne ^ {k x_i} \ right) [/ mates]

Luego, a medida que [math] k [/ math] aumenta, obtiene una mejor aproximación de softmax: sin embargo, esto tiene un costo de aumentar la rugosidad (tamaño de las derivadas) de la función.

Aquí amplío el centro de la figura anterior mientras le muestro k-softmax para k = 1 a 10.


Significado del aprendizaje automático

El aprendizaje automático de softmax se utiliza para la clasificación.
Supongamos que tienes n clases. Para cualquier característica dada x , desea estimar sus probabilidades [matemáticas] p_i [/ ​​matemáticas] de estar en la clase i .
Sin embargo, su algoritmo no produce probabilidades directamente. En su lugar, primero produce puntajes de valor real [matemática] y_1,…, y_n [/ matemática].
A partir de estos puntajes, usted define las probabilidades [matemáticas] p_i [/ ​​matemáticas] usando la función softmax.
[matemáticas] (p_1, …, p_n) = \ text {softmax} (y_1, …, y_n) = \ left (\ frac {e ^ {y_1}} {\ sum_ {j = 1} ^ ne ^ {y_j} },…, \ Frac {e ^ {y_n}} {\ sum_ {j = 1} ^ ne ^ {y_j}} \ right) [/ math]

¿Por qué configurar su clasificador de esta manera? Debido a que un vector de probabilidad [matemática] (p_1, …, p_n) [/ matemática] vive en un espacio muy restringido (no negativo, sumas a 1), y es difícil trabajar con funciones que se asignan desde el espacio de características a este espacio restringido. En particular, la restricción de suma a uno significa que no puede entrenar a los alumnos para cada clase por separado. En su lugar, trabaja con funciones que se asignan al espacio no restringido de puntajes [matemática] (y_1,…, y_n) [/ matemática], y luego asigna esas puntuaciones al espacio de vectores de probabilidad en el último paso. Esto le permite dividir el problema en subproblemas [matemática] n [/ matemática] de predicción [matemática] y_1,…, y_n [/ matemática], y también es una generalización de la regresión logística.

¿Cuál es la relación con la definición anterior de softmax? Resulta ser el gradiente de la definición original.

En el contexto del aprendizaje automático, es una función que transforma un “nivel de activación” en una probabilidad.


L_i es el nivel de activación asociado con la ocurrencia i.

La suma de todos los j tiene que ser manejable, se refiere al conjunto de valores posibles del nivel de activación.

En el modelo más simple de 1 capa, el nivel de activación es una función lineal de los valores de otros estados, como los estados visibles o las etiquetas asociadas con estos estados visibles.

Necesitamos dicha función porque después de resumir todas las interacciones con todos los demás estados, a través de esta función lineal, no estamos seguros de que el resultado esté entre 0 y 1, pero necesitamos un número entre 0 y 1 para que sea “el parámetro “de una variable bernouilli. Tomo aquí una variable bernouilli para representar el nodo que me interesa porque es el caso más simple.

La función soft max se usa porque también juega un papel importante en la física estadística. En este caso, menos el nivel de activación se llama energía: una energía “libre” de hecho. Se llama energía libre porque es el verdadero nivel de energía que se puede transformar en trabajo, teniendo en cuenta todas las limitaciones del problema.
La robustez de esta función explica su ubicuidad. Otras consideraciones vinculadas a modelos efectivos en la teoría de la renormalización explican por qué esta forma de regularización es tan universal.

Charles Yang Zheng dio una buena explicación de la base matemática de softmax para la clasificación de máquinas. Del mismo modo, softmax se ha propuesto como una operación básica de los circuitos corticales en el cerebro. El cerebro no se preocupa por si las funciones son diferenciables o si suman las probabilidades a una, simplemente usa la retroalimentación excitatoria recurrente para amplificar las respuestas que más satisfacen todas las restricciones (coinciden con todas las entradas), usando el hecho de que las conexiones entre las células principales son inversamente proporcionales a la distancia que los separa en el espacio de características n-dimensionales. La inhibición de retroalimentación densa proporcional a la suma de la actividad de la célula principal se usa para apagar las células menos afinadas que están a una distancia arbitraria de los parámetros de entrada. En la práctica, en la corteza, esto da como resultado que aproximadamente el 10% de las células disponibles respondan a cualquier estímulo, y softmax les obliga a ser las mejores coincidencias con la entrada y el estado del resto del cerebro.

More Interesting

Cómo dibujar un múltiple de un autoencoder variacional en Keras

Estoy tratando de evaluar el rendimiento del modelo (regresión). En la literatura, algunos usan RMSE y otros usan correlación. ¿Hay alguna diferencia entre ambos enfoques?

¿Existe alguna posibilidad de que la química del aprendizaje automático pueda correlacionarse con la nanotecnología?

Si quiero comenzar con el aprendizaje profundo, ¿debería comprar una GPU de gama baja o aprovechar una solución en la nube? ¿Cuál es más barato / mejor?

Cómo convertir un algoritmo de entrenamiento de redes neuronales realmente poderoso en un producto comercial

¿Cuántas imágenes necesito para entrenar una red neuronal convolucional?

Cómo cuantificar la cantidad de ruido en un conjunto de datos

¿Cuáles son algunas técnicas de compresión que usan redes neuronales recurrentes?

¿Qué se debe considerar al decidir entre usar un algoritmo de filtrado colaborativo basado en el usuario y en el elemento?

Cómo elegir el modelo correcto con la distribución correcta

¿En qué tipos de búsqueda falla más claramente Google? ¿Y qué vías y sitios abordan estos problemas mejor o más prometedora?

¿En qué campos todavía no se ha aplicado el aprendizaje automático (o está menos explorado)?

¿Debo aprender C ++, Python o Java para construir un sistema de aprendizaje automático de grado de producción?

¿Qué significa el espacio de hipótesis en Machine Learning?

¿Por qué es importante el aprendizaje no supervisado?