Pourquoi utiliser la descente sur gradient pour la régression linéaire, lorsqu'une solution mathématique de forme fermée est disponible?

74

Je suis les cours d'apprentissage automatique en ligne et j'ai appris comment utiliser Gradient Descent pour calculer les valeurs optimales de l'hypothèse.

h(x) = B0 + B1X

pourquoi nous devons utiliser Gradient Descent si nous pouvons facilement trouver les valeurs avec la formule ci-dessous? Cela semble simple et facile aussi. mais GD a besoin de plusieurs itérations pour obtenir la valeur.

B1 = Correlation * (Std. Dev. of y/ Std. Dev. of x)

B0 = Mean(Y) – B1 * Mean(X)

REMARQUE: prises comme suit : https://www.dezyre.com/data-science-in-r-programming-tutorial/linear-regression-tutorial

J'ai vérifié les questions ci-dessous et pour moi ce n'était pas clair à comprendre.

Pourquoi la descente de pente est-elle nécessaire?

Pourquoi l'optimisation est-elle résolue avec une descente de gradient plutôt qu'avec une solution analytique?

Les réponses ci-dessus comparent GD et l’utilisation de dérivés.

Purus
la source
5
Vous n'avez pas besoin d'une descente de gradient pour estimer les coefficients de régression linéaire.
Rétablir Monica
8
@Sycorax "n'a pas besoin" est une déclaration forte. La méthode itérative peut être utile pour des données volumineuses. Disons que la matrice de données est très grosse et ne peut pas tenir dans la mémoire.
Haitao Du
8
@ hxd1011 Merci d'avoir clarifié cette dimension pratique du problème. Je pensais en termes purement mathématiques.
Réintégrer Monica

Réponses:

90

La descente de gradient est utilisée principalement pour la régression linéaire pour des raisons de complexité: il est parfois plus économique en calcul (plus rapide) de trouver la solution en utilisant la descente de gradient dans certains cas.

β=(XX)1XY
XXXXK×K

Ainsi, la descente de gradient permet de gagner beaucoup de temps sur les calculs. De plus, sa façon de procéder permet une parallélisation triviale, c'est-à-dire une répartition des calculs sur plusieurs processeurs ou machines. La solution d'algèbre linéaire peut également être parallélisée, mais elle est plus compliquée et toujours coûteuse.

En outre, il existe des versions de descente de gradient lorsque vous ne conservez qu'une partie de vos données en mémoire, ce qui réduit les besoins en mémoire de l'ordinateur. Globalement, pour les très gros problèmes, il est plus efficace que la solution d’algèbre linéaire.

Cela devient d'autant plus important que la dimensionnalité augmente, lorsque vous avez des milliers de variables, comme dans l'apprentissage automatique.

Remarque . J'ai été surpris par toute l'attention portée à la descente de gradient dans les conférences de Ng. Il passe beaucoup de temps à en parler, peut-être 20% de tout le cours. Pour moi, c'est juste un détail d'implémentation, c'est comment vous trouvez exactement ce qu'il y a de mieux. L’essentiel est de formuler le problème d’optimisation et comment vous le trouvez exactement non essentiel. Je ne m'inquiéterais pas trop à ce sujet. Laissez le soin aux informaticiens et concentrez-vous sur ce qui est important pour vous en tant que statisticien.

Cela dit, je dois nuancer mon propos en affirmant qu’il est en effet important de comprendre la complexité de calcul et la stabilité numérique des algorithmes de résolution. Je ne pense toujours pas que vous deviez connaître les détails de l’implémentation et du code des algorithmes. Ce n'est pas la meilleure utilisation de votre temps en tant que statisticien.

Note 1 . J'ai écrit que vous devez inverser la matrice à des fins didactiques et ce n'est pas comme d'habitude que vous résolvez l'équation. En pratique, les problèmes d’algèbre linéaire sont résolus en utilisant une factorisation telle que QR, dans laquelle vous n’inversez pas directement la matrice, mais vous effectuez d’autres manipulations équivalentes sur le plan mathématique pour obtenir une réponse. Vous faites cela parce que l'inversion de matrice est une opération coûteuse et numériquement instable dans de nombreux cas.

Cela fait apparaître un autre petit avantage de l’algorithme de descente de gradient en tant qu’effet secondaire: il fonctionne même lorsque la matrice de conception présente des problèmes de colinéarité. Le chemin habituel de l'algèbre linéaire exploserait et la descente du gradient continuerait, même pour les prédicteurs colinéaires.

Aksakal
la source
17
Mais Ng est un informaticien.
amibe dit de réintégrer Monica
21
Concernant votre remarque: en tant que mathématicien, j’étais d’accord. Mais si j'ai bien compris, dans l'apprentissage automatique moderne, la méthode d'optimisation est intrinsèquement liée à l'objectif optimisé. Certaines formes de régularisation, telles que l'abandon scolaire, sont plus clairement exprimées en termes d'algorithme plutôt que d'objectif. En bref: si vous prenez un filet profond, conservez la fonction objectif mais changez la méthode d'optimisation, vous obtiendrez peut-être des performances très différentes. En fait, parfois, un meilleur optimiseur produit de moins bons résultats dans la pratique ...
A. Rex
14
XXXXβ=Xyβ
3
@AnderBiguri La solution avec une factorisation QR, quant à elle, est stable en amont et offre donc une solution aussi précise que possible compte tenu de l'incertitude des données d'entrée.
Federico Poloni
7
β=(XtX)1XtyXtXβ=Xty
21

Tout d'abord, je vous recommande fortement de lire les deux articles suivants (sinon dupliqués)

Veuillez vérifier la réponse de JM dans

Quel algorithme est utilisé dans la régression linéaire?

Veuillez vérifier la réponse de Mark (du point de vue de la stabilité numérique) dans

Avons-nous besoin d'une descente de gradient pour trouver les coefficients d'un modèle de régression linéaire?


minimize Axb2
2AT(Axb)0
ATAx=ATb

En haut niveau, il existe deux manières de résoudre un système linéaire. Méthode directe et méthode itérative. Remarque la méthode directe résout , et la descente de gradient (un exemple de méthode itérative) résout directement .ATAx=ATbminimize Axb2

Comparaison avec les méthodes directes (Say QR / LU Decomposition). Les méthodes itératives présentent certains avantages lorsque nous avons une grande quantité de données ou que les données sont très rares.

D'autre part, je pense que l'une des raisons pour lesquelles Andrew Ng l'a souligné est qu'il s'agit d'une méthode générique (la méthode la plus largement utilisée dans l'apprentissage automatique) et qu'elle peut être utilisée dans d'autres modèles tels que la régression logistique ou le réseau de neurones.

Haitao Du
la source
Tu as tout à fait raison. SGD est très utile lorsque vous manipulez une grande quantité de données. La méthode démontrée par le professeur Ng est la plus classique et la plus pure. Il faut partir de là pour avoir une idée claire. Si l’on peut comprendre le slogan de cette estimation linéaire intégrale, elle le comprendra parfaitement.
Sandipan Karmakar
1
La taille du maxtrix de données n'est pas réellement un problème, en utilisant la relation ; vous pouvez calculer et une observation à la fois. C’est ce qu’a fait SAS à l’époque où la mémoire de l’ordinateur était beaucoup plus limitée qu’aujourd’hui. C'est le nombre de colonnes dans qui est le facteur limitant. XTX=xixiTXTXXTyX
jbowman
6

Sycorax a raison de dire que vous n’avez pas besoin de descente de gradient pour estimer la régression linéaire. Votre cours utilisera peut-être un exemple simple pour vous enseigner la descente par gradient afin de commencer par des versions plus complexes.

Une chose intéressante que je veux ajouter, cependant, est qu'il ya actuellement une petite niche de recherche impliquant mettre fin à la descente de gradient précoce afin d' éviter surajustement d'un modèle.

Tim Atreides
la source
2
Pour une déclaration de surajustement, pourriez-vous fournir le lien? L'ajout du terme de régularisation est-il préférable à la limitation du nombre d'itérations?
Haitao Du
Vous pouvez consulter le chapitre 7 de Deep learning de Goodfellow et al., Qui mentionne l'arrêt précoce pour éviter les surajustements dans les réseaux neuronaux.
Batman
2
La régularisation par arrêt précoce n'est en aucun cas une nouvelle technique; C'est une technique bien connue, par exemple, dans l'itération Landweber: en.wikipedia.org/wiki/Landweber_iteration
cfh
3

Si je ne me trompe pas, je pense que vous vous dirigez vers le MOOC offert par le professeur Andrew Ng. Pour trouver les coefficients de régression optimaux, deux méthodes sont disponibles. La première consiste à utiliser des équations normales, c’est-à-dire simplement en découvrant et la seconde en minimisant critère de carrés qui est dérivé de l'hypothèse que vous avez cité. Soit dit en passant, la première méthode, à savoir les équations de Normal, est un produit de la deuxième méthode, à savoir la méthode d'optimisation.(XTX)1XTy

La méthode que vous avez mentionnée, à savoir l’utilisation de la corrélation, ne s’applique qu’à un seul prédicteur et une seule quantité interceptée. Juste remarquer la forme. Ainsi, lorsque le nombre de prédicteurs est supérieur à un, quel est le moyen de s'en sortir? Il faut ensuite recourir aux autres méthodes, à savoir l’équation normale ou l’optimisation.

Maintenant, pourquoi l'optimisation (ici Gradient Descent) bien que l'équation normale directe soit disponible. Notez que dans l'équation normale, il faut inverser une matrice. Maintenant, inverser une matrice coûte pour le calcul, où est le nombre de lignes de la matrice , c'est-à-dire les observations. De plus, si le est mal conditionné, il créera des erreurs de calcul dans l'estimation. Donc, c’est le type d’algorithme d’optimisation Gradient Descent qui peut nous éviter ce type de problème. Un autre problème est l’insuffisance et l’insuffisance d’estimation des coefficients de régression.N X XO(N3)NXX

Ma suggestion est que vous n'allez pas simplement résoudre un problème. Essayez de comprendre la théorie. Le professeur Ng est l’un des meilleurs professeurs au monde qui enseigne avec gentillesse l’apprentissage automatique en MOOC. Ainsi, quand il enseigne de cette façon, il doit avoir des intentions latentes. J'espère que mes mots ne vous dérangeront pas.

Bonne chance.

Sandipan Karmakar
la source
5
"Inverser une matrice" n'est PAS vivement recommandé. QR est plus stable numériquement pour résoudre un système linéaire.
Haitao Du
1
Je suis d'accord avec l'argument de calcul. Cependant, l'insuffisance ou l'insuffisance d'adaptation n'a rien à voir avec l'utilisation de GD par rapport à l'équation normale, mais plutôt avec la complexité du modèle (de régression). Les deux méthodes (GD si cela fonctionne correctement) recherchent la même solution des moindres carrés (si elle existe) et par conséquent sur-ajustent ou sous-ajustent les données du même montant.
Ruben van Bergen
2

Premièrement, oui, la vraie raison est celle donnée par Tim Atreides; c'est un exercice pédagogique.

Cependant, il est possible, bien que peu probable, que l’on veuille effectuer une régression linéaire sur, par exemple, plusieurs trillions de points de données transférés depuis une prise réseau. Dans ce cas, l'évaluation naïve de la solution analytique serait irréalisable, tandis que certaines variantes de descente de gradient stochastique / adaptatif convergeraient vers la solution correcte avec un surcoût de mémoire minimal.

(on pourrait, pour une régression linéaire, reformuler la solution analytique en un système de récurrence, mais ce n'est pas une technique générale.)

Timothy Teräväinen
la source
2

Une autre raison est que la descente de gradient est une méthode plus générale. Pour de nombreux problèmes d’apprentissage automatique, la fonction de coût n’est pas convexe (factorisation matricielle, réseaux de neurones, par exemple); vous ne pouvez donc pas utiliser une solution sous forme fermée. Dans ces cas, la descente de gradient est utilisée pour trouver de bons points optimum locaux. Ou si vous souhaitez implémenter une version en ligne, vous devez utiliser un algorithme basé sur la descente de gradient.

Sanyo Mn
la source