Contenido del curso
Cómo funciona la regresión lineal
Regresión lineal multivariable
Proyecto práctico
Pasos siguientes
Función de pérdida y optimización: mínimos cuadrados
Contenido del curso
Función de pérdida y optimización: mínimos cuadrados
Andrés Fernández
studentJeison Mesa Diez
studentJuan R. Vergara M.
studentCristian Enrique Cuevas Mercado
studentJeison Mesa Diez
studentJhon Freddy Tavera Blandon
studentJulián Cárdenas
studentHugo Montoya Diaz
studentJuan R. Vergara M.
studentSamit Arias
studentAbraham Sinue Salinas Moreno
studentDick Saide Suárez Blanco
studentAntonio Demarco Bonino
studentJesús Andrés Báez Pérez
studentJuan R. Vergara M.
studentFernando Saldivar Ceron
studentEmmanuel Maya Molina
studentRené Novillo Morales
studentJuan Acevedo
studentMario Alexander Vargas Celis
studentJose Antonio Cano Román
studentJose Antonio Cano Román
studentIsaac Bryan Ascanoa Roncall
studentStanley Melgar
studentGerardo Mayel Fernández Alamilla
studentSebastian Gaviria
studentDiego Jurado
studentEs decir, la recta que mejor representa los datos, es aquella en la que la distancia desde los puntos hasta la recta es menor.
Exacto! es la recta que minimiza todos los errore
Así es.
para aplicar minimo cuadrado se necesita varios supuesto que en el mundo de Machine learning no suelen mencionar, como linealidad, normalidad y homocedasticidad
muchas veces suelen sobre-utilizar el teorema del limite central (donde esos errores son normales identicamente distribuidos) el problema de la homocedastiicidad se identifica graficando los errores versus los valores predichos (y para algunos pasos sería mejor un modelo de efectos mixtos).
La función de pérdida de mínimos cuadrados se define matemáticamente de la siguiente manera:
L = Σ(y - ŷ)² Donde: L es la función de pérdida. Σ es el símbolo de suma. y son los valores reales de la variable dependiente. ŷ son los valores predichos por el modelo.
Buen sumarry y aporte compañero!
Minimos cuadrados
✔👍
Pero porque exactamente se escoge esa función de perdida y optimización, siendo que hay otras?
Hola Samit, buenas tardes, son las más comunes que se usan, el descenso del gradiente es el mas usado en temas de optimización no lineal, matemáticamente hablando es un algoritmo óptimo ya que este consigue en cada iteración un mínimo local de la función a minimizar .
------>Funcion de perdida y optimizacion: minimos cuadrados.<--------
σCuatro pasos para hacer un algoitmo 1 . Ajustar el modelo +Crear una linear recta: Es decir, la recta que mejor representa los datos, es aquella en la que la distancia desde los puntos hasta la recta es menor. 2 . Comparar resultados con los reales. +Para entender que tal son las predicciones vs la realidad. 3 . Se ajustan pesos en el modelo. +Tendras funciones que daran el resultado final a tu modelo, es importante. ajustarlos. 4. Regreso a paso inicial si no se converge. +Si el modelo funciona, entonces esta listo para ser probado
σ Despues se muestra la linea roja, la cual representa la informacion original. Y una linea formada de muchisimos puntos (como si fuera un tipo proyeccion / holograma), el cual representa la prediccion que se hizo.
σ Se explica que cuando se habla de los "pesos en el modelo", se explica que estos son w0 + w1X (dentro de la formula vista en la otra clase). Explica que para ejecutar un algoritmo: a) Es la funcion de perdida. +La cual ayuda a entender lo buenas (o no) que son las predicciones hechas. +En ese caso se usa el metodo de los minimos cuadrados. b) Algoritmo de optimizacion. +El cual el mas comun es el de "descenso del gradiente".
Esta es la ecuación del MSE:
También dejo este código para que vean como se comporta el MSE:
import numpy as np import matplotlib.pyplot as plt def mse(y_true, y_pred): return np.mean((y_true - y_pred)**2) x = np.array([1, 2, 3, 4, 5]) y_true = np.array([1, 2, 3, 3.5, 5]) y_pred = np.array([1, 2, 2.8, 4, 4.5]) error = mse(y_true, y_pred) plt.scatter(x, y_true, color="blue", label="Valores Reales") plt.plot(x, y_pred, color="red", label="Línea Predicha") plt.title(f"Regresión Lineal con MSE = {error:.2f}") plt.xlabel("X") plt.ylabel("Y") plt.legend() plt.legend(loc='upper left', bbox_to_anchor=(1, 1), fancybox=True, shadow=True) plt.grid(True) plt.show()
Función de perdida:
Te va ayudar a entender que tan buenas son tus predicciones respecto a los datos reales
Gran cita.
Excelente aportacion
como se ve la regresión lineal en modelos d elenguaje
La regresión lineal es el motor de combustión interna de los modelos de lenguaje, aunque bajo el capó parezca un cohete espacial. En esencia, cada capa de un Transformer termina con una proyección lineal que decide qué palabra sigue, ajustando pesos para minimizar el error, tal como vimos con los mínimos cuadrados.
¿Crees que esa simplicidad matemática es suficiente para capturar la complejidad del lenguaje humano, o falta algo más en la receta?
porque se eleva al cuadrado las distancias?
Si solo sumáramos las distancias, los errores positivos y negativos se anularían entre sí, ocultando el problema real. Al elevar al cuadrado, obligas a que cada error sume al total y, de paso, penalizas mucho más los errores grandes.
Es una elección matemática elegante, pero tiene consecuencias. Si el cuadrado castiga tanto los errores grandes, ¿qué sucede cuando tienes datos con valores atípicos (outliers) muy extremos?
La función de pérdida nos ayuda a entender qué tan buena es la predicción que hicimos en comparación con los datos reales. Esta función devuelve la diferencia entre el valor real y el valor predicho, lo que nos permite ver básicamente la distancia que hubo entre la recta y el dato real.
El objetivo de la optimización es reducir al máximo esa distancia entre lo predicho y lo real, de manera que, al recibir un nuevo valor, este se ajuste a la línea ya definida.
Dicha línea se ajusta mediante unos pesos (w), los cuales se modifican durante el proceso de optimización en función de cómo cambian los datos y cómo varía la predicción cuando x aumenta en una unidad, hasta encontrar los mejores pesos que logren el ajuste más preciso posible.
En regresión lineal, la función de pérdida más común es la de mínimos cuadrados. Aquí te explico qué es y cómo se usa para la optimización del modelo:
🎯 ¿Qué es la función de pérdida de mínimos cuadrados?
Es una función que mide el error entre los valores predichos por el modelo y los valores reales. La idea es minimizar ese error durante el entrenamiento.
📐 Definición matemática
Dada una muestra de datos con n observaciones:
Peˊrdida=∑i=1n(yi−y^i)2\text{Pérdida} = \sum_{i=1}^{n} (y_i - \hat{y}_i)^2
Donde:
Esta pérdida también se conoce como Error Cuadrático Total (SSE) o Suma de los errores al cuadrado.
🛠 ¿Cómo se optimiza?
El modelo de regresión lineal busca los coeficientes (pendientes y término independiente) que minimizan esta función de pérdida.
Esto se puede hacer con:
📉 ¿Por qué mínimos cuadrados?
Porque es:
📌 En Python con scikit-learn:
Cuando usas:
from sklearn.linear_model import LinearRegression modelo = LinearRegression() modelo.fit(X, y)
Internamente se está minimizando la función de mínimos cuadrados para encontrar los mejores coeficientes.
Los mínimos cuadrados son un método utilizado para estimar los parámetros de un modelo de regresión lineal. El error cuadrático medio (ECM) es una medida que se utiliza para evaluar la calidad de la estimación del modelo; efectivamente, el método de mínimos cuadrados busca minimizar el ECM. En resumen, mientras que los mínimos cuadrados son la técnica para ajustar el modelo, el ECM es el criterio que se minimiza durante este proceso.
La función de pérdida es un componente crucial en el entrenamiento de modelos de machine learning, especialmente en redes neuronales. Se utiliza para medir qué tan bien se está desempeñando el modelo al hacer predicciones. En términos simples, esta función calcula la diferencia entre las predicciones del modelo y los valores reales. Un valor más bajo de la función de pérdida indica un mejor rendimiento del modelo. Durante el entrenamiento, el objetivo es minimizar esta función, ajustando los parámetros del modelo a través de técnicas como el descenso del gradiente.
Es interesante el uso de la funcion de perdida. Estos metodos los desconocia por completo. Ahora se que los debo aplicar para tener la mejor regresion lineal. Probar y probar.
El tema del descenso del gradiente es un tema muy interesante en el cual todos deberíamos profundizar.
agregaría que el cuadrado de la función se agrega para obtener el valor absoluto de la diferencia de la predicción vs el real, por ejemplo si el valor original es 0 y la predicción original es 2 entonces el error es 2 al cuadrado 4, si la predicción es -2 entonces otra vez el error al cuadrado sigue siendo 4, por lo tanto la variación será la raíz de las diferencias en este caso 2, significa que el error está en +/- 2 unidades con respecto al valor real
Por si quieren el código de Markdown:
$\hat{y}$ = W<sub>0</sub> + W<sub>1</sub>X
Asi explicado tiene sentido, estaba claro que la linea azul no se ajustaba a los datos.