¡Regresión, por fin!
Para el día 11 esperé muchos días para presentar este modelo. Marca el comienzo de un nuevo viaje en este “Calendario de Adviento”.
Hasta ahora, analizábamos principalmente modelos basados en distancias, vecinos o densidad local. Como sabrá, para datos tabulares, los árboles de decisión, especialmente los conjuntos de árboles de decisión, son muy eficaces.
Pero a partir de hoy pasamos a otro punto de vista: el enfoque ponderado.
La regresión lineal es nuestro primer paso en este mundo.
Parece simple, pero introduce los ingredientes centrales del ML moderno: funciones de pérdida, gradientes, optimización, escalamiento, colinealidad e interpretación de coeficientes.
Ahora, cuando digo regresión lineal, me refiero a regresión lineal de mínimos cuadrados ordinarios. A medida que avancemos en este “Calendario de Adviento” y exploremos modelos relacionados, verá por qué es importante especificar esto, porque el nombre “regresión lineal” puede resultar confuso.
Algunas personas dicen que la regresión lineal no es aprendizaje automático.
Su argumento es que el aprendizaje automático es un campo “nuevo”, mientras que la regresión lineal existía mucho antes, por lo que no puede considerarse ML.
Esto es engañoso.
La regresión lineal encaja perfectamente en el aprendizaje automático porque:
aprende parámetros de los datos, minimiza una función de pérdida y hace predicciones sobre nuevos datos.
En otras palabras, la regresión lineal es uno de los modelos más antiguos, pero también uno de los más fundamentales del aprendizaje automático.
Este es el enfoque utilizado en:
Regresión lineal, Regresión logística y, posteriormente, Redes neuronales y LLM.
Para el aprendizaje profundo, este enfoque ponderado basado en gradientes es el que se utiliza en todas partes.
Y en los LLM modernos, ya no hablamos de unos pocos parámetros. Estamos hablando de miles de millones de pesos.
En este artículo, nuestro modelo de regresión lineal tiene exactamente 2 pesos.
Una pendiente y una intersección.
Eso es todo.
Pero tenemos que empezar por algún lado, ¿verdad?
Y aquí hay algunas preguntas que puede tener en cuenta a medida que avanzamos en este artículo y en los próximos.
Intentaremos interpretar el modelo. Con una característica, y=ax+b, todo el mundo sabe que a es la pendiente y b es la intersección. Pero, ¿cómo interpretamos los coeficientes cuando hay 10, 100 o más características? ¿Por qué la colinealidad entre características es un problema tan grande para la regresión lineal? ¿Y cómo podemos hacer para solucionar este problema? ¿Es importante el escalado para la regresión lineal? ¿Se puede sobreajustar la regresión lineal? ¿Y cómo se conectan los demás modelos de esta familia ponderada (regresión logística, SVM, redes neuronales, Ridge, Lasso, etc.) con las mismas ideas subyacentes?
Estas preguntas forman el hilo conductor de este artículo y, naturalmente, nos llevarán hacia temas futuros en el “Calendario de Adviento”.
Comprender la línea de tendencia en Excel
Comenzando con un conjunto de datos simple
Comencemos con un conjunto de datos muy simple que generé con una característica.
En el siguiente gráfico, puede ver la variable característica x en el eje horizontal y la variable objetivo y en el eje vertical.
El objetivo de la regresión lineal es encontrar dos números, a y b, de modo que podamos escribir la relación:
y=ax+b
Una vez que conocemos a y b, esta ecuación se convierte en nuestro modelo.
Creando la línea de tendencia en Excel
En Google Sheets o Excel, simplemente puede agregar una línea de tendencia para visualizar el mejor ajuste lineal.
Eso ya te da el resultado de la Regresión Lineal.
Pero el propósito de este artículo es calcular estos coeficientes nosotros mismos.
Si queremos utilizar el modelo para hacer predicciones, debemos implementarlo directamente.
Introducción a los pesos y la función de costo
Una nota sobre los modelos basados en el peso
Esta es la primera vez en el Calendario de Adviento que introducimos pesas.
Los modelos que aprenden pesos a menudo se denominan modelos discriminantes paramétricos.
¿Por qué discriminante?
Porque aprenden una regla que separa o predice directamente, sin modelar cómo se generaron los datos.
Antes de este capítulo, ya vimos modelos que tenían parámetros, pero no eran discriminantes, eran generativos.
Recapitulemos rápidamente.
Los árboles de decisión utilizan divisiones o reglas, por lo que no hay pesos que aprender. Por tanto son modelos no paramétricos. k-NN no es un modelo. Mantiene todo el conjunto de datos y utiliza distancias en el momento de la predicción.
Sin embargo, cuando pasamos de la distancia euclidiana a la distancia de Mahalanobis, sucede algo interesante…
LDA y QDA estiman los parámetros:
medias de cada clase de matrices de covarianza anteriores
Estos son parámetros reales, pero no son pesos.
Estos modelos son generativos porque modelan la densidad de cada clase y luego la usan para hacer predicciones.
Entonces, aunque son paramétricos, no pertenecen a la familia basada en el peso.
Y como puede ver, todos estos son clasificadores y estiman parámetros para cada clase.
La regresión lineal es nuestro primer ejemplo de un modelo que aprende pesos para construir una predicción.
Este es el comienzo de una nueva familia en el Calendario de Adviento:
Modelos que se basan en pesos + una función de pérdida para hacer predicciones.
La función de costo
¿Cómo podemos obtener los parámetros a y b?
Bueno, los valores óptimos para a y b son aquellos que minimizan la función de costos, que es el Error al Cuadrado del modelo.
Entonces, para cada punto de datos, podemos calcular el error al cuadrado.
Error al cuadrado = (predicción-valor real)²=(a*x+b-valor real)²
Luego podemos calcular el MSE o error cuadrático medio.
Como podemos ver en Excel, la línea de tendencia nos da los coeficientes óptimos. Si cambia manualmente estos valores, aunque sea ligeramente, el MSE aumentará.
Esto es exactamente lo que aquí significa “óptimo”: cualquier otra combinación de a y b empeora el error.
La clásica solución de forma cerrada
Ahora que sabemos qué es el modelo y qué significa minimizar el error al cuadrado, finalmente podemos responder la pregunta clave:
¿Cómo calculamos los dos coeficientes de la regresión lineal, la pendiente a y la intersección b?
Hay dos formas de hacerlo:
la solución algebraica exacta, conocida como solución de forma cerrada o descenso de gradiente, que exploraremos justo después.
Si tomamos la definición del MSE y la diferenciamos respecto de a y b, sucede algo bonito: todo se simplifica en dos fórmulas muy compactas.
Estas fórmulas sólo utilizan:
el promedio de xey, cómo varía x (su varianza) y cómo varían xey juntos (su covarianza).
Entonces, incluso sin saber nada de cálculo y con sólo funciones básicas de hoja de cálculo, podemos reproducir la solución exacta utilizada en los libros de texto de estadística.
Cómo interpretar los coeficientes
Por una característica, la interpretación es sencilla e intuitiva:
la pendiente un
Nos dice cuánto cambia y cuando x aumenta en una unidad.
Si la pendiente es 1,2, significa:
“Cuando x aumenta en 1, el modelo espera que y aumente aproximadamente 1,2”.
La intercepción b
Es el valor predicho de y cuando x = 0.
A menudo, x = 0 no existe en el contexto real de los datos, por lo que la intersección no siempre es significativa por sí misma.
Su función es principalmente colocar la línea correctamente para que coincida con el centro de los datos.
Generalmente así es como se enseña la regresión lineal:
una pendiente, una intersección y una línea recta.
Con una característica, la interpretación es fácil.
Con dos, todavía manejable.
Pero tan pronto como comenzamos a agregar muchas funciones, se vuelve más difícil.
Mañana discutiremos más sobre la interpretación.
Hoy haremos el descenso en gradiente.
Descenso de gradiente, paso a paso
Después de ver la solución algebraica clásica para la regresión lineal, ahora podemos explorar la otra herramienta esencial detrás del aprendizaje automático moderno: la optimización.
El caballo de batalla de la optimización es Gradient Descent.
Comprenderlo con un ejemplo muy simple hace que la lógica sea mucho más clara una vez que la aplicamos a la regresión lineal.
Un suave calentamiento: descenso de gradiente en una sola variable
Antes de implementar el descenso de gradiente para la regresión lineal, primero podemos hacerlo con una función simple: (x-2)^2.
Todo el mundo sabe que el mínimo está en x=2.
Pero pretendamos que no lo sabemos y dejemos que el algoritmo lo descubra por sí solo.
La idea es encontrar el mínimo de esta función mediante el siguiente proceso:
Primero, elegimos aleatoriamente un valor inicial. Luego, para cada paso, calculamos el valor de la función derivada df (para este valor de x): df(x) Y el siguiente valor de x se obtiene restando el valor de la derivada multiplicado por un tamaño de paso: x = x – step_size*df(x)
Puede modificar los dos parámetros del descenso del gradiente: el valor inicial de x y el tamaño del paso.
Sí, incluso con 100 o 1000. Es bastante sorprendente ver lo bien que funciona.
Pero, en algunos casos, el descenso de gradiente no funcionará. Por ejemplo, si el tamaño del paso es demasiado grande, el valor de x puede explotar.
Descenso de gradiente para regresión lineal.
El principio del algoritmo de descenso de gradiente es el mismo para la regresión lineal: tenemos que calcular las derivadas parciales de la función de costo con respecto a los parámetros a y b. Anotémoslos como da y db.
Error al cuadrado = (predicción-valor real)²=(a*x+b-valor real)²
da=2(a*x+b-valor real)*x
db=2(a*x+b-valor real)
Y luego podemos hacer las actualizaciones de los coeficientes.
Con esta pequeña actualización, paso a paso, se encontrará el valor óptimo después de algunas interacciones.
En el siguiente gráfico, puede ver cómo a y b convergen hacia el valor objetivo.
También podemos ver todos los detalles de yhat, los residuos y las derivadas parciales.
Podemos apreciar plenamente la belleza del descenso de gradientes, visualizado en Excel.
Para estos dos coeficientes, podemos observar qué tan rápida es la convergencia.
Ahora, en la práctica, tenemos muchas observaciones y esto debería hacerse para cada punto de datos. Ahí es donde las cosas se vuelven locas en Google Sheet. Entonces, utilizamos solo 10 puntos de datos.
Verás que primero creé una hoja con fórmulas largas para calcular da y db, que contienen la suma de las derivadas de todas las observaciones. Luego creé otra hoja para mostrar todos los detalles.
Conclusión
La regresión lineal puede parecer simple, pero presenta casi todo en lo que se basa el aprendizaje automático moderno.
Con sólo dos parámetros, una pendiente y una intersección, nos enseña:
cómo definir una función de costos, cómo encontrar parámetros óptimos, numéricamente, y cómo se comporta la optimización cuando ajustamos las tasas de aprendizaje o los valores iniciales.
La solución de forma cerrada muestra la elegancia de las matemáticas.
Gradient Descent muestra la mecánica detrás de escena.
Juntos, forman la base de la familia de “funciones ponderadas + pérdida” que incluye regresión logística, SVM, redes neuronales e incluso los LLM actuales.
Nuevos caminos por delante
Puede pensar que la regresión lineal es simple, pero ahora que sus fundamentos están claros, puede ampliarla, perfeccionarla y reinterpretarla desde muchas perspectivas diferentes:
Cambiar la función de pérdida
Reemplace el error al cuadrado con pérdida logística, pérdida de bisagra u otras funciones, y aparecerán nuevos modelos. Pasar a la clasificación
La regresión lineal en sí misma puede separar dos clases (0 y 1), pero las versiones más sólidas conducen a la regresión logística y SVM. ¿Y qué pasa con la clasificación multiclase? Modelo de no linealidad
A través de características polinómicas o núcleos, los modelos lineales de repente se vuelven no lineales en el espacio original. Escalar a muchas características
La interpretación se vuelve más difícil, la regularización se vuelve esencial y aparecen nuevos desafíos numéricos. Primal vs dual
Los modelos lineales se pueden escribir de dos maneras. La vista primaria aprende los pesos directamente. La vista dual reescribe todo utilizando productos escalares entre puntos de datos. Comprender el aprendizaje automático moderno
Gradient Descent y sus variantes son el núcleo de las redes neuronales y los grandes modelos de lenguaje.
Lo que aprendimos aquí con dos parámetros se generaliza a miles de millones.
Todo lo contenido en este artículo se mantiene dentro de los límites de la regresión lineal, pero prepara el terreno para toda una familia de modelos futuros.
Día tras día, el Calendario de Adviento mostrará cómo se conectan todas estas ideas.