Descenso de gradiente o no para regresión lineal simple

9

Hay varios sitios web que describen el descenso de gradiente para encontrar los parámetros para la regresión lineal simple ( aquí hay uno de ellos). Google también lo describe en su nuevo curso (para el público) de ML.

Sin embargo en Wikipedia , se proporcionan las siguientes fórmulas para calcular los parámetros:

α^=y¯-β^X¯,β^=yo=1norte(Xyo-X¯)(yyo-y¯)yo=1norte(Xyo-X¯)2

Además, el scikit-learn LinearRegression función, no tiene un n_iter_(número de iteraciones) atributo como lo hace para muchas otras funciones de aprendizaje, que supongo sugiere que no se está utilizando gradiente de descenso?

Preguntas:

  1. ¿Los sitios web que describen el descenso de gradiente para una regresión lineal simple solo lo hacen para enseñar el concepto en el modelo ML más básico? ¿Es la fórmula en Wikipedia la que usaría la mayoría del software de estadísticas para calcular los parámetros (al menos scikit-learn no parece estar usando el descenso de gradiente)?
  2. ¿Qué se usa típicamente para la regresión lineal múltiple?
  3. ¿Para qué tipos de modelos de aprendizaje estadístico se usa el descenso de gradiente para encontrar los parámetros sobre otros métodos? Es decir, ¿hay alguna regla general?
Oliver Angelil
fuente

Respuestas:

8
  1. La regresión lineal se usa comúnmente como una forma de introducir el concepto de descenso de gradiente.

  2. La factorización QR es la estrategia más común. SVD y factorización de Cholesky son otras opciones. Consulte ¿Necesitamos un descenso de gradiente para encontrar los coeficientes de un modelo de regresión lineal?

En particular, tenga en cuenta que las ecuaciones que ha escrito pueden mostrar un condicionamiento numérico deficiente y / o ser caras de calcular. La factorización QR es menos susceptible a problemas de acondicionamiento (pero no es inmune) y no es demasiado costosa.

  1. Las redes neuronales son el ejemplo más destacado del uso aplicado del descenso de gradiente, pero está lejos de ser el único ejemplo. Otro ejemplo de un problema que requiere actualizaciones iterativas es la regresión logística, que no permite soluciones directas, por lo que generalmente se usa Newton-Raphson. (Pero GD o sus variantes también podrían usarse).
Sycorax dice reinstalar a Mónica
fuente
En el enlace que proporcionó, ¿# 3: las "ecuaciones normales", se refieren a las ecuaciones en mi pregunta aquí? Si no, ¿cuál es el término técnico para estas ecuaciones?
Oliver Angelil
1
@OliverAngelil Las "ecuaciones normales" son, de hecho, el término jerga para el sistema lineal de ecuaciones que son las condiciones de primer orden para el problema de optimización de mínimos cuadrados ordinarios.
Matthew Gunn el
Entonces, ¿se usan las "ecuaciones normales" en el software estadístico cuando solo hay una variable predictiva? Para n = 100, obtengo coeficientes b0 y b1 idénticos (a 6 decimales) cuando uso las ecuaciones normales frente a la función LinearRegression en scikit-learn. Aunque estoy confundido: ¿el n. ° 3 en el enlace dice que las "ecuaciones normales" son una idea "TERRIBLE"?
Oliver Angelil
1
¡6 decimales son más que suficientes para mí!
Oliver Angelil
2
@anu Resolver la regresión logística de una manera no iterativa requiere minimizar un sistema no lineal de ecuaciones; en general, esto es difícil! Esta situación es análoga al teorema de Abel-Ruffini (sin solución algebraica a las raíces de un polinomio de 5º grado): simplemente no tenemos métodos de cálculo directo para resolver el sistema exactamente. IIRC, esto se discute en el capítulo Elementos del aprendizaje estadístico sobre regresión logística. Probablemente haya un hilo en alguna parte de las estadísticas. Consulte también sobre eso, pero tengo problemas para encontrar uno bueno.
Sycorax dice Reinstate Monica el