redes paso neuronales metodo inteligencia gradiente descenso descendente artificial machine-learning linear-regression gradient-descent

machine-learning - paso - metodo del gradiente inteligencia artificial



por qué el descenso del gradiente cuando podemos resolver la regresión lineal analíticamente (4)

¿Cuál es el beneficio de usar Gradient Descent en el espacio de regresión lineal? Parece que podemos resolver el problema (encontrar el theta0-n que el mínimo costo del func) con el método analítico entonces ¿por qué todavía queremos usar el descenso de gradiente para hacer lo mismo? Gracias


Cuando usa las ecuaciones normales para resolver la función de costo analíticamente, debe calcular:

Donde X es su matriz de observaciones de entrada yy su vector de salida. El problema con esta operación es la complejidad de tiempo de calcular la inversa de una matriz nxn que es O (n ^ 3) y a medida que n aumenta puede tardar mucho tiempo en terminar.

Cuando n es bajo (n <1000 o n <10000), puede pensar en ecuaciones normales como la mejor opción para el cálculo theta; sin embargo, para valores mayores, Gradient Descent es mucho más rápido, por lo que la única razón es el tiempo :)


Debería proporcionar más detalles sobre su problema. ¿En qué está preguntando exactamente? ¿Estamos hablando de regresión lineal en una o varias dimensiones? ¿Simple o generalizados?

En general, ¿por qué las personas usan el GD?

  • es fácil de implementar
  • es una técnica de optimización muy genérica, incluso si cambia su modelo a uno más general, aún puede usarlo

Entonces, ¿qué pasa con las soluciones analíticas? Bueno, los usamos, su afirmación es simplemente falsa aquí (si estamos hablando en general), por ejemplo, el método OLS es una solución analítica de forma cerrada, que se usa ampliamente. Si puede utilizar la solución analítica, es computacionalmente asequible (ya que a veces GD es simplemente más barato o más rápido), entonces puede, e incluso debería, usarla.

Nunca deja de ser una cuestión de pros y contras: las soluciones analíticas están fuertemente conectadas al modelo, por lo que su implementación puede ser ineficiente si planea generalizar / cambiar sus modelos en el futuro. A veces son menos eficientes que sus aproximaciones numéricas, y algunas veces simplemente son más difíciles de implementar. Si ninguno de los anteriores es cierto, debe usar la solución analítica, y la gente lo hace, realmente.

En resumen, prefiere usar GD en lugar de una solución analítica si:

  • está considerando cambios en el modelo, generalizaciones, agregando algunos términos más complejos / regularización / modificaciones
  • necesita un método genérico porque no sabe mucho sobre el futuro del código y el modelo (usted es solo uno de los desarrolladores)
  • la solución analítica es más costosa computacionalmente, y necesita eficiencia
  • solución analítica requiere más memoria, que no tiene
  • la solución analítica es difícil de implementar y necesita un código simple y sencillo

Otra razón es que el descenso de gradiente es inmediatamente útil cuando generaliza la regresión lineal, especialmente si el problema no tiene una solución cerrada, como por ejemplo en Lasso (que agrega un término de regularización que consiste en la suma de valores absolutos de vector de peso).


Vi una muy buena respuesta de https://stats.stackexchange.com/questions/23128/solving-for-regression-parameters-in-closed-form-vs-gradient-descent

Básicamente, las razones son:

1.Para la mayoría de los problemas de regresión no lineal, no existe una solución de forma cerrada.

2.Incluso en la regresión lineal (uno de los pocos casos en los que está disponible una solución de formulario cerrado), puede ser poco práctico utilizar la fórmula. El siguiente ejemplo muestra una forma en que esto puede suceder.