Descente en pente ou non pour une régression linéaire simple

9

Il existe un certain nombre de sites Web décrivant la descente de gradient pour trouver les paramètres d'une régression linéaire simple (en voici un). Google le décrit également dans son nouveau cours de ML (au public).

Cependant, sur Wikipedia , les formules suivantes pour calculer les paramètres sont fournies:

α^=y¯β^x¯,β^=i=1n(xix¯)(yiy¯)i=1n(xix¯)2

En outre, la fonction LinearRegression de scikit-learn n'a pas n_iter_d'attribut (nombre d'itérations) comme elle le fait pour de nombreuses autres fonctions d'apprentissage, ce qui, je suppose, suggère que la descente de gradient n'est pas utilisée?

Des questions:

  1. Les sites Web décrivant la descente du gradient pour une régression linéaire simple ne le font-ils que pour enseigner le concept de celui-ci sur le modèle ML le plus élémentaire? La formule sur Wikipedia est-elle celle que la plupart des logiciels de statistiques utiliseraient pour calculer les paramètres (au moins, scikit-learn ne semble pas utiliser la descente de gradient)?
  2. Qu'est-ce qui est généralement utilisé pour la régression linéaire multiple?
  3. Pour quels types de modèles d'apprentissage statistique la descente de gradient est-elle généralement utilisée pour trouver les paramètres par rapport à d'autres méthodes? Existe-t-il une règle d'or?
Oliver Angelil
la source

Réponses:

8
  1. La régression linéaire est couramment utilisée pour introduire le concept de descente en gradient.

  2. La factorisation QR est la stratégie la plus courante. La factorisation SVD et Cholesky sont d'autres options. Voir Avons-nous besoin d'une descente de gradient pour trouver les coefficients d'un modèle de régression linéaire

En particulier, notez que les équations que vous avez écrites peuvent prouver un mauvais conditionnement numérique et / ou être coûteuses à calculer. La factorisation QR est moins sensible aux problèmes de conditionnement (mais pas immunisée) et n'est pas trop chère.

  1. Les réseaux de neurones sont l'exemple le plus important d'utilisation appliquée de la descente en gradient, mais il est loin d'être le seul exemple. Un autre exemple d'un problème qui nécessite des mises à jour itératives est la régression logistique, qui ne permet pas de solutions directes, donc typiquement Newton-Raphson est utilisé. (Mais GD ou ses variantes peuvent également être utilisées.)
Sycorax dit de réintégrer Monica
la source
Dans le lien que vous avez fourni, n ° 3: les "équations normales", font-elles référence aux équations de ma question ici? Sinon, quel est le terme technique pour ces équations?
Oliver Angelil
1
@OliverAngelil Les "équations normales" sont en effet le terme de jargon pour le système linéaire d'équations qui sont les conditions de premier ordre pour le problème d'optimisation des moindres carrés ordinaires.
Matthew Gunn
Les «équations normales» sont-elles donc utilisées dans les logiciels statistiques lorsqu'il n'y a qu'une seule variable prédictive? Pour n = 100, j'obtiens les coefficients b0 et b1 identiques (à 6 décimales) lorsque j'utilise les équations normales par rapport à la fonction LinearRegression dans scikit-learn. Bien que je sois confus: # 3 dans le lien indique que les "équations normales" sont une idée "TERRIBLE" ??
Oliver Angelil
1
6 décimales me suffisent largement!
Oliver Angelil
2
@anu Résoudre la régression logistique de manière non itérative nécessite de minimiser un système non linéaire d'équations; en général, c'est difficile! Cette situation est analogue au théorème d'Abel-Ruffini (pas de solution algébrique aux racines d'un polynôme du 5e degré): nous n'avons tout simplement pas de méthodes de calcul directes pour résoudre exactement le système. IIRC, ceci est discuté dans le chapitre Elements of Statistical Learning sur la régression logistique. Il y a probablement un fil quelque part sur stats.SE à ce sujet également, mais j'ai du mal à en trouver un bon.
Sycorax dit Réintégrer Monica