Día 14 del “Calendario de Adviento” de aprendizaje automático: Regresión Softmax en Excel

Con la regresión logística, aprendimos cómo clasificar en dos clases.

Ahora bien, ¿qué pasa si hay más de dos clases?

n es simplemente la extensión multiclase de esta idea. Y discutiremos este modelo para el día 14 de mi “Calendario de Adviento” de aprendizaje automático (siga este enlace para obtener toda la información sobre el enfoque y los archivos que uso).

En lugar de una puntuación, ahora creamos una puntuación por clase. En lugar de una probabilidad, aplicamos la función Softmax para producir probabilidades que suman 1.

Entendiendo el modelo Softmax

Antes de entrenar el modelo, primero comprendamos qué es el modelo.

Softmax Regression aún no se trata de optimización.
En primer lugar, se trata de cómo se calculan las predicciones.

Un pequeño conjunto de datos con 3 clases.

Usemos un pequeño conjunto de datos con una característica x y tres clases.

Como dijimos antes, la variable objetivo y no debe tratarse como numérica.
Representa categorías, no cantidades.

Una forma común de representar esto es la codificación one-hot, donde cada clase está representada por su propio indicador.

Desde este punto de vista, la regresión Softmax puede verse como tres regresiones logísticas que se ejecutan en paralelo, una por clase.

Los conjuntos de datos pequeños son ideales para aprender.
Puede ver cada fórmula, cada valor y cómo cada parte del modelo contribuye al resultado final.

Regresión Softmax en Excel – Todas las imágenes por autor

Descripción del modelo

Entonces, ¿cuál es el modelo exactamente?

Puntuación por clase

En la regresión logística, la puntuación del modelo es una expresión lineal simple: puntuación = a * x + b.

Softmax Regression hace exactamente lo mismo, pero una puntuación por clase:

puntuación_0 = a0 * x + b0
puntuación_1 = a1 * x + b1
puntuación_2 = a2 * x + b2

En esta etapa, estos puntajes son sólo números reales.
Aún no son probabilidades.

Convertir puntuaciones en probabilidades: el paso de Softmax

Softmax convierte las tres puntuaciones en tres probabilidades. Cada probabilidad es positiva y las tres suman 1.

El cálculo es directo:

Exponenciar cada puntaje Calcular la suma de todos los exponenciales Dividir cada exponencial por esta suma

Esto nos da p0, p1 y p2 para cada fila.

Estos valores representan la confianza del modelo para cada clase.

En este punto, el modelo está completamente definido.
Entrenar el modelo consistirá simplemente en ajustar los coeficientes ak​ y bk​ para que estas probabilidades coincidan lo mejor posible con las clases observadas.

Regresión Softmax en Excel – Todas las imágenes por autor

Visualizando el modelo Softmax

En este punto, el modelo está completamente definido.

Tenemos:

una puntuación lineal por clase un paso Softmax que convierte estas puntuaciones en probabilidades

Entrenar el modelo consiste simplemente en ajustar los coeficientes aka_kak​ y bkb_kbk​ para que estas probabilidades coincidan lo mejor posible con las clases observadas.

Una vez encontrados los coeficientes, podemos visualizar el comportamiento del modelo.

Para hacer esto, tomamos un rango de valores de entrada, por ejemplo x de 0 a 7, y calculamos: puntaje0, puntaje1, puntaje2 y las probabilidades correspondientes p0,p1,p2.

Al trazar estas probabilidades se obtienen tres curvas suaves, una por clase.

Regresión Softmax en Excel – Todas las imágenes por autor

El resultado es muy intuitivo.

Para valores pequeños de x, la probabilidad de clase 0 es alta.
A medida que x aumenta, esta probabilidad disminuye, mientras que la probabilidad de la clase 1 aumenta.
Para valores mayores de x, la probabilidad de clase 2 se vuelve dominante.

Para cada valor de x, las tres probabilidades suman 1.
El modelo no toma decisiones abruptas; en cambio, expresa cuán seguro está en cada clase.

Este gráfico hace que el comportamiento de Softmax Regression sea fácil de entender.

Puede ver cómo el modelo pasa suavemente de una clase a otra. Los límites de decisión corresponden a intersecciones entre curvas de probabilidad. La lógica del modelo se vuelve visible, no abstracta.

Este es uno de los beneficios clave de crear el modelo en Excel:
no solo calcula predicciones, puede ver cómo piensa el modelo.

Ahora que el modelo está definido, necesitamos una forma de evaluar qué tan bueno es y un método para mejorar sus coeficientes.

Ambos pasos reutilizan ideas que ya vimos con la regresión logística.

Evaluación del modelo: pérdida de entropía cruzada

La regresión Softmax utiliza la misma función de pérdida que la regresión logística.

Para cada punto de datos, observamos la probabilidad asignada a la clase correcta y tomamos el logaritmo negativo:

pérdida = – log (p clase verdadera)

Si el modelo asigna una alta probabilidad a la clase correcta, la pérdida es pequeña.
Si asigna una probabilidad baja, la pérdida se vuelve grande.

En Excel, esto es muy sencillo de implementar.

Seleccionamos la probabilidad correcta según el valor de y y aplicamos el logaritmo:

pérdida = -LN( ELEGIR(y + 1, p0, p1, p2) )

Finalmente, calculamos la pérdida promedio en todas las filas.
Esta pérdida promedio es la cantidad que queremos minimizar.

Regresión Softmax en Excel – Todas las imágenes por autor

Calcular residuos

Para actualizar los coeficientes, comenzamos calculando los residuos, uno por clase.

Para cada fila:

residual_0 = p0 menos 1 si y es igual a 0, en caso contrario 0 residual_1 = p1 menos 1 si y es igual a 1, en caso contrario 0 residual_2 = p2 menos 1 si y es igual a 2, en caso contrario 0

En otras palabras, para la clase correcta, restamos 1.
Para las otras clases, restamos 0.

Estos residuos miden qué tan lejos están las probabilidades predichas de lo que esperamos.

Calcular los gradientes

Los gradientes se obtienen combinando los residuos con los valores de las características.

Para cada clase k:

el gradiente de ak es el promedio de residual_k * x el gradiente de bk es el promedio de residual_k

En Excel, esto se implementa con fórmulas simples como SUMAPRODUCTO y PROMEDIO.

En este punto todo es explícito:
verá los residuos, los gradientes y cómo contribuye cada punto de datos.

Captura de pantalla

Actualización de los coeficientes

Una vez que se conocen los gradientes, actualizamos los coeficientes mediante el descenso de gradientes.

Este paso es idéntico al que vimos antes, antes de la regresión logística o la regresión lineal.
La única diferencia es que ahora actualizamos seis coeficientes en lugar de dos.

Para visualizar el aprendizaje, creamos una segunda hoja con una fila por iteración:

el número de iteración actual los seis coeficientes (a0, b0, a1, b1, a2, b2) la pérdida los gradientes

La fila 2 corresponde a la iteración 0, con los coeficientes iniciales.

La fila 3 calcula los coeficientes actualizados utilizando los gradientes de la fila 2.

Al arrastrar las fórmulas hacia abajo durante cientos de filas, simulamos el descenso del gradiente en muchas iteraciones.

Entonces podrás ver claramente:

los coeficientes estabilizan gradualmente la pérdida disminuyendo iteración tras iteración

Esto hace que el proceso de aprendizaje sea tangible.
En lugar de imaginar un optimizador, puede observar cómo aprende el modelo.

La regresión logística como caso especial de regresión Softmax

La regresión logística y la regresión Softmax a menudo se presentan como modelos diferentes.

En realidad, son la misma idea en diferentes escalas.

Softmax Regression calcula una puntuación lineal por clase y convierte estas puntuaciones en probabilidades comparándolas.
Cuando sólo hay dos clases, esta comparación depende únicamente de la diferencia entre las dos puntuaciones.

Esta diferencia es una función lineal de la entrada, y la aplicación de Softmax en este caso produce exactamente la función logística (sigmoidea).

En otras palabras, la regresión logística es simplemente la regresión Softmax aplicada a dos clases, sin parámetros redundantes.

Una vez comprendido esto, pasar de la clasificación binaria a la clasificación multiclase se convierte en una extensión natural, no en un salto conceptual.

Softmax Regression no introduce una nueva forma de pensar.

Simplemente muestra que la Regresión Logística ya contenía todo lo que necesitábamos.

Al duplicar la puntuación lineal una vez por clase y normalizarla con Softmax, pasamos de decisiones binarias a probabilidades multiclase sin cambiar la lógica subyacente.

La pérdida es la misma idea.
Los gradientes tienen la misma estructura.
La optimización es el mismo descenso de gradiente que ya conocemos.

Lo que cambia es sólo el número de partituras paralelas.

¿Otra forma de manejar la clasificación multiclase?

Softmax no es la única forma de abordar problemas multiclase en modelos basados ​​en peso.

Existe otro enfoque, menos elegante conceptualmente, pero muy común en la práctica:
Clasificación uno contra el resto o uno contra uno.

En lugar de construir un único modelo multiclase, entrenamos varios modelos binarios y combinamos sus resultados.
Esta estrategia se utiliza ampliamente con Support Vector Machines.

Mañana veremos SVM.
Y verás que se puede explicar de una forma bastante inusual… y, como es habitual, directamente en Excel.