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?
Les réponses ci-dessus comparent GD et l’utilisation de dérivés.
Réponses:
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.
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.
la source
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?
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=ATb minimize ∥Ax−b∥2
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.
Supposons que notre matrice de données soit énorme et qu'il ne soit pas possible de la mémoriser, une descente de gradient stochastique peut être utilisée. J'ai une réponse pour expliquer pourquoi Comment une descente de gradient stochastique peut-elle gagner du temps par rapport à une descente de gradient standard?A
Pour des données clairsemées, consultez le livre intitulé Méthodes itératives pour les systèmes linéaires clairsemés.
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.
la source
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.
la source
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) N X X
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.
la source
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.)
la source
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.
la source