Je passe en revue les vidéos du cours gratuit d' apprentissage automatique en ligne d' Andrew Ng à Stanford. Il décrit Gradient Descent comme un algorithme pour résoudre la régression linéaire et écrire des fonctions dans Octave pour l'exécuter. Vraisemblablement, je pourrais réécrire ces fonctions dans R, mais ma question est la fonction lm () ne me donne-t-elle pas déjà la sortie de la régression linéaire? Pourquoi voudrais-je écrire ma propre fonction de descente de gradient? Y a-t-il un avantage ou s'agit-il uniquement d'un exercice d'apprentissage? Est-ce que lm () fait une descente de gradient?
r
regression
machine-learning
gradient-descent
Utilisateur
la source
la source
Réponses:
La descente en pente est en fait un moyen assez médiocre de résoudre un problème de régression linéaire. La
lm()
fonction dans R utilise en interne une forme de décomposition QR , qui est considérablement plus efficace. Cependant, la descente de gradient est une technique généralement utile, et mérite d'être introduite dans ce contexte simple, de sorte qu'il est plus clair comment l'appliquer dans des problèmes plus complexes. Si vous souhaitez implémenter votre propre version comme un exercice d'apprentissage, c'est une chose utile à faire, maislm()
c'est un meilleur choix si tout ce que vous voulez est un outil pour effectuer une régression linéaire.la source
La raison pour laquelle le gradient en ligne est utile est pour les applications à grande échelle. Dans tous les cas, il existe maintenant des bibliothèques qui l'implémentent , vous n'avez donc pas besoin de le programmer. C'est un bon moyen d'apprendre comment les choses fonctionnent.
Dans les mots de Leon Bottou:
Apprentissage à grande échelle
projet sgd
la source