Al igual que Miyagi enseñó karate al joven Daniel LaRusso a través de tareas simples y repetitivas, que finalmente lo transformaron en Karate Kid, dominar algoritmos fundamentales como la regresión lineal sienta las bases para comprender las arquitecturas de inteligencia artificial más complejas, como las redes neuronales profundas y los LLM.
A través de esta inmersión profunda en la regresión lineal simple pero poderosa, aprenderá muchas de las partes fundamentales que componen los modelos más avanzados creados hoy por empresas multimillonarias.
La regresión lineal es un método matemático simple que se utiliza para comprender la relación entre dos variables y hacer predicciones. Dados algunos puntos de datos, como el siguiente, la regresión lineal intenta dibujar la línea de mejor ajuste a través de estos puntos. Es el “crear y quitar” de la ciencia de datos.
Una vez trazada esta línea, tenemos un modelo que podemos usar para predecir nuevos valores. En el ejemplo anterior, dado el tamaño de una casa nueva, podríamos intentar predecir su precio con el modelo de regresión lineal.
La fórmula de regresión lineal
Y es la variable dependiente, la que desea calcular: el precio de la vivienda en el ejemplo anterior. Su valor depende de otras variables, de ahí su nombre.
incógnita son las variables independientes. Estos son los factores que influyen en el valor de Y. Al modelar, las variables independientes son la entrada al modelo, y lo que el modelo arroja es la predicción o Ŷ.
β son parámetros. Le damos el nombre de parámetro a aquellos valores que el modelo ajusta (o aprende) para capturar la relación entre las variables independientes. incógnita y la variable dependiente Y. Entonces, a medida que se entrena el modelo, la entrada del modelo seguirá siendo la misma, pero los parámetros se ajustarán para predecir mejor el resultado deseado.
Aprendizaje de parámetros
Requerimos algunas cosas para poder ajustar los parámetros y lograr predicciones precisas.
- Datos de entrenamiento: estos datos constan de pares de entrada y salida. Las entradas se introducirán en el modelo y, durante el entrenamiento, los parámetros se ajustarán en un intento de generar el valor objetivo.
- La función de costo, también conocida como función de pérdida, es una función matemática que mide qué tan bien la predicción de un modelo coincide con el valor objetivo.
- Algoritmo de entrenamiento: es un método que se utiliza para ajustar los parámetros del modelo para minimizar el error medido por la función de costo.
Repasemos una función de costos y un algoritmo de entrenamiento que se puede usar en regresión lineal.
MSE es una función de costos comúnmente utilizada en problemas de regresión, donde el objetivo es predecir un valor continuo. Esto es diferente de las tareas de clasificación, como predecir el siguiente token en un vocabulario, como en los modelos de lenguaje grandes. MSE se centra en diferencias numéricas y se utiliza en una variedad de problemas de regresión y redes neuronales. Así es como se calcula:
- Calcule la diferencia entre el valor predicho, Ŷy el valor objetivo, Y.
- Cuadre esta diferencia, asegurando que todos los errores sean positivos y también penalizando más los errores grandes.
- Sumar las diferencias al cuadrado de todas las muestras de datos.
- Divida la suma por el número de muestras, nortepara obtener el error cuadrático promedio
Notará que a medida que nuestra predicción se acerca al valor objetivo, el MSE disminuye y cuanto más lejos están, mayor crece. En ambos sentidos el progreso es cuadrático porque la diferencia es al cuadrado.
El concepto de descenso de gradiente es que podemos viajar a través del “espacio de costos” en pequeños pasos, con el objetivo de llegar al mínimo global: el valor más bajo en el espacio. La función de costo evalúa qué tan bien los parámetros del modelo actual predicen el objetivo al darnos el valor de la pérdida. Modificar aleatoriamente los parámetros no garantiza ninguna mejora. Pero, si examinamos el gradiente de la función de pérdida con respecto a cada parámetro, es decir, la dirección de la pérdida después de una actualización del parámetro, podemos ajustar los parámetros para avanzar hacia una pérdida menor, lo que indica que nuestras predicciones se están acercando a los valores objetivo.
Los pasos en el descenso del gradiente deben dimensionarse cuidadosamente para equilibrar el progreso y la precisión. Si los pasos son demasiado grandes, corremos el riesgo de sobrepasar el mínimo global y perderlo por completo. Por otro lado, si los pasos son demasiado pequeños, las actualizaciones serán ineficientes y consumirán mucho tiempo, lo que aumentará la probabilidad de quedarse estancado en un mínimo local en lugar de alcanzar el mínimo global deseado.
Fórmula de descenso de gradiente
En el contexto de la regresión lineal, θ podría ser b0 o b1. El gradiente es la derivada parcial de la función de costos con respecto a θ, o en términos más simples, es una medida de cuánto cambia la función de costos cuando el parámetro θ se ajusta ligeramente.
Un gradiente grande indica que el parámetro tiene un efecto significativo sobre la función de costos, mientras que un gradiente pequeño sugiere un efecto menor. El signo del gradiente indica la dirección del cambio de la función de costos. Un gradiente negativo significa que la función de costo disminuirá a medida que aumenta el parámetro, mientras que un gradiente positivo significa que aumentará.
Entonces, en el caso de un gradiente negativo grande, ¿qué sucede con el parámetro? Bueno, el signo negativo delante de la tasa de aprendizaje se cancelará con el signo negativo del gradiente, lo que resultará en una adición al parámetro. Y como el gradiente es grande, le agregaremos un número grande. Así, el parámetro se ajusta sustancialmente reflejando su mayor influencia en la reducción de la función de costes.
Echemos un vistazo a los precios de las esponjas que Karate Kid usó para lavar el auto del Sr. Miyagi. Si quisiéramos predecir su precio (variable dependiente) en función de su altura y ancho (variables independientes), podríamos modelarlo mediante regresión lineal.
Podemos comenzar con estos tres ejemplos de datos de entrenamiento.
Ahora, usemos el error cuadrático medio (MSE) como nuestra función de costos. jy regresión lineal como nuestro modelo.
La fórmula de regresión lineal usa X1 y X2 para el ancho y el alto respectivamente; observe que no hay más variables independientes ya que nuestros datos de entrenamiento no incluyen más. Ésa es la suposición que asumimos en este ejemplo: que el ancho y el alto de la esponja son suficientes para predecir su precio.
Ahora, el primer paso es inicializar los parámetros, en este caso a 0. Luego podemos introducir las variables independientes en el modelo para obtener nuestras predicciones. Ŷy comprobar a qué distancia están de nuestro objetivo. y.
Ahora mismo, como puedes imaginar, los parámetros no son de mucha ayuda. Pero ahora estamos preparados para utilizar el algoritmo de descenso de gradiente para actualizar los parámetros y convertirlos en otros más útiles. Primero, necesitamos calcular las derivadas parciales de cada parámetro, lo que requerirá algo de cálculo, pero afortunadamente solo necesitamos hacerlo una vez en todo el proceso.
Con las derivadas parciales, podemos sustituir los valores de nuestros errores para calcular el gradiente de cada parámetro.
Tenga en cuenta que no fue necesario calcular el MSE, ya que no se utiliza directamente en el proceso de actualización de parámetros, solo su derivada. También es inmediatamente evidente que todos los gradientes son negativos, lo que significa que todos pueden aumentarse para reducir la función de costos. El siguiente paso es actualizar los parámetros con una tasa de aprendizaje, que es un hiperparámetro, es decir, una configuración en un modelo de aprendizaje automático que se especifica antes de que comience el proceso de capacitación. A diferencia de los parámetros del modelo, que se aprenden durante el entrenamiento, los hiperparámetros se configuran manualmente y controlan aspectos del proceso de aprendizaje. Aquí utilizamos arbitrariamente 0,01.
Este ha sido el paso final de nuestra primera iteración en el proceso de descenso de gradiente. Podemos utilizar estos nuevos valores de parámetros para hacer nuevas predicciones y recalcular el MSE de nuestro modelo.
Los nuevos parámetros se están acercando a los precios reales de las esponjas y han dado como resultado un MSE mucho más bajo, pero aún queda mucha más capacitación por hacer. Si repetimos el algoritmo de descenso de gradiente 50 veces, esta vez usando Python en lugar de hacerlo a mano (dado que el Sr. Miyagi nunca dijo nada sobre codificación), alcanzaremos los siguientes valores.
Finalmente llegamos a un modelo bastante bueno. Los valores verdaderos que utilicé para generar esos números fueron (1, 2, 3) y después de sólo 50 iteraciones, los parámetros del modelo se acercaron impresionantemente. Ampliar el entrenamiento a 200 pasos, que es otro hiperparámetro, con la misma tasa de aprendizaje permitió que el modelo de regresión lineal convergiera casi perfectamente a los parámetros reales, lo que demuestra el poder del descenso de gradiente.
Muchos de los conceptos fundamentales que componen el complicado arte marcial de la inteligencia artificial, como las funciones de costos y el descenso de gradientes, pueden entenderse completamente con solo estudiar la sencilla herramienta de “encerar, quitar” que es la regresión lineal.
La inteligencia artificial es un campo vasto y complejo, construido sobre muchas ideas y métodos. Si bien hay mucho más por explorar, dominar estos fundamentos es un primer paso importante. Con suerte, este artículo te ha acercado a ese objetivo, “encerar y quitar cera” a la vez.