pourquoi la descente par gradient quand nous pouvons résoudre la régression linéaire analytiquement

Quel est l'avantage d'utiliser le Gradient de descente dans l'espace de régression linéaire? on dirait que nous pouvons résoudre le problème (trouver theta0-n que le coût minimum func) avec la méthode analytique donc pourquoi nous voulons toujours utiliser la descente en pente pour faire la même chose? merci

63
demandé sur John 2013-08-12 20:18:27

4 réponses

lorsque vous utilisez les équations normales pour résoudre la fonction de coût analytiquement, vous devez calculer:

enter image description here

où X est votre matrice d'observations d'entrée et y votre vecteur de sortie. Le problème de cette opération est la complexité temporelle du calcul de l'inverse d'une matrice nxn qui est O(N^3) et qui peut prendre beaucoup de temps à se terminer au fur et à mesure que n augmente.

Lorsque n est faible (n < 1000 ou n < 10000) vous pouvez penser à des équations normales comme la meilleure option pour le calcul theta, mais pour des valeurs plus grandes descente Gradient est beaucoup plus rapide, de sorte que la seule raison est le temps:)

93
répondu jabaldonedo 2013-08-12 19:15:55

vous devriez fournir plus de détails sur le problème des jeunes - que demandez - vous exactement-parlons-nous de régression linéaire dans une ou plusieurs dimensions? Simples ou généralisés?

en général, pourquoi les gens utilisent-ils le GD?

  • il est facile à mettre en œuvre
  • c'est une technique d'optimisation très générique - même si vous changez votre modèle pour un modèle plus général, vous pouvez toujours l'utiliser

alors qu'en est-il des solutions analytiques? Eh bien, nous do les utiliser, votre revendication est tout simplement fausse ici (si nous parlons en général), par exemple, la OLS méthode est une forme fermée, solution analytique, qui est largement utilisé. Si vous pouvez utiliser la solution analytique, il est abordable computationaly (comme GD est parfois tout simplement moins cher ou plus rapide) alors vous pouvez, et même devrait - l'utiliser.

Neverlethles c'est toujours un question de certains avantages et inconvénients - les solutions analytiques sont fortement liées au modèle, de sorte que leur mise en œuvre peut être inefficace si vous prévoyez de généraliser/modifier vos modèles à l'avenir. Ils sont parfois moins efficaces que leurs approximations numériques, et parfois il y a simplement plus difficile à mettre en œuvre. Si aucun de ci - dessus est vrai-vous devrait utiliser la solution analytique, et les gens le font, vraiment.

pour résumer, vous utilisez plutôt GD plus solution analytique si:

  • vous envisagez des changements dans le modèle, des généralisations, l'ajout de certains termes plus complexes / régularisation /modifications
  • vous avez besoin d'une méthode générique parce que vous ne savez pas grand chose sur l'avenir du code et du modèle (vous n'êtes qu'un des développeurs)
  • solution analytique est plus coûteux computationaly, et vous avez besoin d'efficacité
  • solution analytique nécessite plus de mémoire, vous n'avez pas
  • solution analytique est difficile à mettre en œuvre et vous avez besoin de code facile et simple
12
répondu lejlot 2013-08-12 18:44:21

j'ai vu une très bonne réponse de https://stats.stackexchange.com/questions/23128/solving-for-regression-parameters-in-closed-form-vs-gradient-descent

essentiellement, les raisons sont:

1.Pour la plupart des problèmes de régression non linéaire il n'y a pas de solution de forme fermée.

2.Même dans la régression linéaire (l'un des rares cas où une forme fermée solution est disponible), il peut être difficile d'utiliser l' formule. L'exemple suivant montre une façon qui peut arriver.

7
répondu enaJ 2017-04-13 12:44:13

une autre raison est que la descente par gradient est immédiatement utile lorsque vous généralisez la régression linéaire, surtout si le problème n'a pas une solution de forme fermée, comme par exemple dans Lasso (qui ajoute le terme de régularisation consistant sur la somme des valeurs absolues du vecteur de poids).

0
répondu Jakub Bartczuk 2017-09-07 08:23:01