La razón principal por la que se usa el descenso de gradiente para la regresión lineal es la complejidad computacional: es computacionalmente más barato (más rápido) encontrar la solución usando el descenso de gradiente en algunos casos.
La fórmula que escribió parece muy simple, incluso computacionalmente, porque solo funciona para casos univariados, es decir, cuando solo tiene una variable. En el caso multivariante, cuando tiene muchas variables, la fórmula es un poco más complicada en papel y requiere muchos más cálculos cuando la implementa en el software:
Aquí, usted necesita calcular la matriz luego invertirla (vea la nota a continuación). Es un cálculo costoso. Para su referencia, la matriz X (de diseño) tiene columnas K + 1 donde K es el número de predictores y N filas de observaciones. En un algoritmo de aprendizaje automático, puede terminar con K> 1000 y N> 1,000,000. La matriz sí misma tarda un poco en calcular, luego hay que invertirX ′ X X ′ X K × K
β=(X′X)−1X′Y
X′XX′XK×K matriz - esto es costoso.
Entonces, el descenso de gradiente permite ahorrar mucho tiempo en los cálculos. Además, la forma en que se realiza permite una paralelización trivial, es decir, distribuye los cálculos en múltiples procesadores o máquinas. La solución de álgebra lineal también se puede paralelizar, pero es más complicada y aún cara.
Además, hay versiones de descenso de gradiente cuando mantiene solo una parte de sus datos en la memoria, lo que reduce los requisitos de memoria de la computadora. En general, para problemas extra grandes es más eficiente que la solución de álgebra lineal.
Esto se vuelve aún más importante a medida que aumenta la dimensionalidad, cuando tiene miles de variables como en el aprendizaje automático.
Observación . Me sorprendió cuánta atención se presta al descenso de gradiente en las conferencias de Ng. Pasa una cantidad de tiempo no trivial hablando de ello, tal vez el 20% de todo el curso. Para mí es solo un detalle de implementación, es exactamente cómo encuentras el óptimo. La clave está en formular el problema de optimización, y cómo exactamente lo encuentra no es esencial. No me preocuparía demasiado por eso. Déjelo en manos de los informáticos y concéntrese en lo que es importante para usted como estadístico.
Dicho esto, debo calificar diciendo que es realmente importante comprender la complejidad computacional y la estabilidad numérica de los algoritmos de solución. Todavía no creo que deba conocer los detalles de implementación y el código de los algoritmos. Por lo general, no es el mejor uso de su tiempo como estadístico.
Nota 1 . Escribí que tienes que invertir la matriz para propósitos didácticos y no es cómo usualmente resuelves la ecuación. En la práctica, los problemas de álgebra lineal se resuelven utilizando algún tipo de factorización como QR, donde no invierte directamente la matriz sino que realiza otras manipulaciones matemáticamente equivalentes para obtener una respuesta. Hace esto porque la inversión matricial es una operación costosa y numéricamente inestable en muchos casos.
Esto trae otra pequeña ventaja del algoritmo de descenso de gradiente como efecto secundario: funciona incluso cuando la matriz de diseño tiene problemas de colinealidad. La trayectoria habitual de álgebra lineal explotaría y el descenso del gradiente continuará incluso para los predictores colineales.