40 votos

¿Necesitamos el descenso por gradiente para encontrar los coeficientes de un modelo de regresión lineal?

Estaba tratando de aprender el aprendizaje automático utilizando el Material de Coursera . En esta conferencia, Andrew Ng utiliza el algoritmo de descenso de gradiente para encontrar los coeficientes del modelo de regresión lineal que minimicen la función de error (función de coste).

Para la regresión lineal, ¿necesitamos el descenso de gradiente? Parece que puedo diferenciar analíticamente la función de error y ponerla a cero para resolver los coeficientes; ¿es así?

55voto

Mark L. Stone Puntos 2037

Los mínimos cuadrados lineales pueden resolverse mediante

0) Utilizar un solucionador de mínimos cuadrados lineales de alta calidad, basado en SVD o QR, como se describe a continuación, para mínimos cuadrados lineales sin restricciones, o basado en una versión de Programación Cuadrática u Optimización Cónica para mínimos cuadrados limitados o linealmente restringidos, como se describe a continuación. Este solucionador ya está preparado, muy probado y listo para funcionar: utilícelo.

1) SVD, que es el método más fiable y numéricamente preciso, pero también requiere más cálculo que las alternativas. En MATLAB, la solución SVD del problema de mínimos cuadrados lineales sin restricciones A*X = b es pinv(A) * b, que es muy precisa y fiable.

2) QR, que es bastante fiable y numéricamente preciso, pero no tanto como SVD, y es más rápido que SVD. En MATLAB, la solución QR del problema de mínimos cuadrados lineales sin restricciones A*X = b es A \b que es bastante preciso y fiable, excepto cuando A está mal condicionado, es decir, tiene un gran número de condiciones. A \b es más rápido de calcular que pinv(A) * b, pero no es tan fiable ni preciso.

3) Formar las ecuaciones normales (TERRIBLE desde el punto de vista de la fiabilidad y la precisión numérica, porque eleva al cuadrado el número de condición, lo cual es algo muy malo) y

3a) resolver por Factorización Cholesky (no es bueno)

3b) invertir explícitamente la matriz (HORRIBLE)

4) Resolver como un problema de programación cuadrática o de cono de segundo orden

4a) Resuelve utilizando un software de programación cuadrática de alta calidad. Esto es fiable y numéricamente preciso, pero lleva más tiempo que la SVD o la QR. Sin embargo, es fácil añadir restricciones lineales generales o limitadas, o términos de penalización o regularización lineales o cuadráticos (dos normas) a la función objetivo, y seguir resolviendo el problema con el software de programación cuadrática.

4b) Resolver como un problema cónico de segundo orden utilizando un software de optimización cónica de alta calidad. Las observaciones son las mismas que para el software de Programación Cuadrática, pero también puede añadir restricciones lineales generales o de límite y otras restricciones cónicas o términos de función objetivo, como términos de penalización o regularización en varias normas.

5) Resolver utilizando un software de optimización no lineal de propósito general de alta calidad. Esto puede seguir funcionando bien, pero en general será más lento que el software de programación cuadrática o de optimización cónica, y quizá no sea tan fiable. Sin embargo, puede ser posible incluir en la optimización por mínimos cuadrados no sólo las restricciones lineales generales y de límites, sino también las no lineales. Además, puede utilizarse para mínimos cuadrados no lineales, y si se añaden otros términos no lineales a la función objetivo.

6) Resolver utilizando pésimos algoritmos de optimización no lineal de propósito general --> NO HAGAS NUNCA ESTO.

7) Resolver utilizando EL PEOR algoritmo de optimización no lineal de propósito general que existe, es decir, el descenso de gradiente. Utilice esto sólo si quiere ver lo malo y poco fiable que puede ser un método de solución Si alguien le dice que utilice el descenso de gradiente para resolver problemas lineales de mínimos cuadrados

7 i) Aprenda sobre computación estadística de alguien que sepa algo al respecto

7 ii) Aprender la optimización de alguien que sepa algo del tema.

0voto

Paul Puntos 3107

Encontrar los coeficientes de un modelo lineal es técnicamente el proceso de encontrar soluciones a un conjunto de ecuaciones lineales .

Para calcular estas soluciones, se necesita una gran cantidad de optimization techniques se han desarrollado y Gradient Descent es uno de ellos.
Por lo tanto, el descenso gradual es no es la única manera para hacerlo.

Andrew Ng lo utiliza en el curso es porque es simple de entender, sin tener que lidiar con el Álgebra Lineal y el Cálculo Numérico avanzados.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X