J'essayais d'apprendre l'apprentissage automatique en utilisant le matériel Coursera . Dans cette conférence, Andrew Ng utilise un algorithme de descente de gradient pour trouver les coefficients du modèle de régression linéaire qui minimiseront la fonction d'erreur (fonction de coût).
Pour la régression linéaire, avons-nous besoin d'une descente de gradient? Il semble que je puisse différencier analytiquement la fonction d'erreur et la mettre à zéro pour résoudre les coefficients; Est-ce correct?
Réponses:
Les moindres carrés linéaires peuvent être résolus par
0) Utilisation d'un solveur de moindres carrés linéaires de haute qualité, basé sur SVD ou QR, comme décrit ci-dessous, pour les moindres carrés linéaires non contraints, ou basé sur une version de programmation quadratique ou d'optimisation conique pour les moindres carrés liés ou linéairement contraints, comme décrit ci-dessous. Un tel solveur est prêt à l'emploi, soumis à de nombreux tests et prêt à l'emploi - utilisez-le.
1) SVD, qui est la méthode la plus fiable et la plus précise numériquement, mais prend également plus de calcul que d'alternatives. Dans MATLAB, la solution SVD du problème des moindres carrés linéaires non contraints A * X = b est pinv (A) * b, ce qui est très précis et fiable.
2) QR, qui est assez fiable et numériquement précis, mais pas autant que SVD, et est plus rapide que SVD. Dans MATLAB, la solution QR du problème des moindres carrés linéaires non contraints A * X = b est A \ b, ce qui est assez précis et fiable, sauf lorsque A est mal conditionné, c'est-à-dire qu'il a un grand nombre de conditions. A \ b est plus rapide à calculer que pinv (A) * b, mais pas aussi fiable ou précis.
3) Formation des équations normales (TERRIBLE du point de vue de la fiabilité et de la précision numérique, car elle évalue le nombre de conditions, ce qui est une très mauvaise chose à faire) et
3a) résolution par factorisation de Cholesky (pas bonne)
3b) matrice à inversion explicite (HORRIBLE)
4) Résolution d'un problème de programmation quadratique ou d'un problème de cône de second ordre
4a) Résolvez en utilisant un logiciel de programmation quadratique de haute qualité. Ceci est fiable et numériquement précis, mais prend plus de temps que SVD ou QR. Cependant, il est facile d'ajouter des contraintes linéaires liées ou générales, ou des termes de pénalisation ou de régularisation linéaires ou quadratiques (deux normes) à la fonction objectif, tout en résolvant le problème à l'aide du logiciel de programmation quadratique.
4b) Résoudre un problème de cône de second ordre à l'aide d'un logiciel d'optimisation conique de haute qualité. Les remarques sont les mêmes que pour le logiciel de programmation quadratique, mais vous pouvez également ajouter des contraintes linéaires liées ou générales et d'autres contraintes coniques ou termes de fonction objective, tels que des termes de pénalité ou de régularisation dans diverses normes.
5) Résolvez en utilisant un logiciel d'optimisation non linéaire à usage général de haute qualité. Cela peut toujours bien fonctionner, mais sera généralement plus lent que le logiciel de programmation quadratique ou d'optimisation conique, et peut-être pas aussi fiable. Cependant, il peut être possible d'inclure non seulement des contraintes linéaires liées et générales, mais également des contraintes non linéaires dans l'optimisation des moindres carrés. Peut également être utilisé pour les moindres carrés non linéaires et si d'autres termes non linéaires sont ajoutés à la fonction objectif.
6) Résolvez en utilisant des algorithmes d'optimisation non linéaires à usage général -> NE FAITES JAMAIS CECI.
7) Résoudre en utilisant LE PIRE algorithme d'optimisation non linéaire à usage général qui existe, c'est-à-dire la descente de gradient. N'utilisez ceci que si vous voulez voir à quel point une méthode de solution peut être mauvaise et peu fiable. Si quelqu'un vous dit d'utiliser la descente de gradient pour résoudre les problèmes des moindres carrés linéaires
7 i) En savoir plus sur le calcul statistique auprès de quelqu'un qui en sait quelque chose
7 ii) Apprenez l'optimisation de quelqu'un qui en sait quelque chose.
la source
La recherche de coefficients d'un modèle linéaire est techniquement le processus de recherche de solutions à un ensemble d'équations linéaires .
Pour le calcul de telles solutions, beaucoup
optimization techniques
ont été développées et enGradient Descent
fait partie.Ainsi, Gradient Descent n'est pas le seul moyen de le faire.
Andrew Ng l'utilise dans le cours parce qu'il est simple à comprendre, sans traiter d'algèbre linéaire avancée et de calcul numérique.
la source
GD
-gradient decent- est utilisé comme exemple pour introduire des méthodes plus avancées (par exempleSGD
- stochastiqueGD
).SGD