pourquoi descente de gradient quand on peut résoudre la régression linéaire analytiquement

Quel est l’avantage d’utiliser la descente en gradient dans l’espace de régression linéaire? On dirait que nous pouvons résoudre le problème (trouver theta0-n minimum que le coût de fonctionnement) avec la méthode analytique alors pourquoi nous voulons toujours utiliser la descente de gradient pour faire la même chose? Merci

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

    entrer la description de l'image ici

    Où X est votre masortingce d’observations en entrée et y votre vecteur de sortie. Le problème avec cette opération est la complexité temporelle du calcul de l’inverse d’une masortingce nxn qui est O (n ^ 3) et que n augmente, cela peut prendre beaucoup de temps.

    Lorsque n est faible (n <1000 ou n <10000), vous pouvez considérer les équations normales comme la meilleure option pour le calcul thêta, mais pour des valeurs supérieures, la descente en dégradé est beaucoup plus rapide. La seule raison est le temps 🙂

    Vous devriez fournir plus de détails sur votre problème – que demandez-vous exactement – parlons-nous de la régression linéaire dans une ou plusieurs dimensions? Simple ou généralisé?

    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 le plus général, vous pouvez toujours l’utiliser

    Alors qu’en est-il des solutions analytiques? Eh bien, nous les utilisons, votre affirmation est simplement fausse ici (si nous parlons en général), par exemple la méthode OLS est une solution analytique de forme fermée, largement utilisée. Si vous pouvez utiliser la solution analytique, il s’agit d’un outil informatique abordable (car parfois, GD est simplement plus économique ou plus rapide), vous pouvez même l’utiliser.

    Neverlethles cela est toujours une question de pour et de contre – les solutions analytiques sont fortement liées au modèle, donc 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, ils sont simplement plus difficiles à mettre en œuvre. Si rien de ce qui précède n’est vrai, vous devriez utiliser la solution analytique et les gens le font vraiment.

    En résumé, vous préférez utiliser GD plutôt que la solution analytique si:

    • vous envisagez des changements dans le modèle, des généralisations, l’ajout de termes / régularisation / modifications plus complexes
    • vous avez besoin d’une méthode générique car 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ûteuse computationaly, et vous avez besoin d’efficacité
    • solution analytique nécessite plus de mémoire, ce que vous n’avez pas
    • la solution analytique est difficile à mettre en œuvre et vous avez besoin d’un code simple et facile

    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

    Fondamentalement, les raisons sont les suivantes:

    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 en régression linéaire (l’un des rares cas où une solution en format fermé est disponible), il peut être peu pratique d’utiliser la formule. L’exemple suivant montre comment cela peut se produire.

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