Pas à pas sur la théorie, l'implémentation en python et l'analyse à l'aide de scikit-learn sur l'algorithme précédemment repris dans "Classification of Machine Learning" J'étudierai avec. Je l'écris pour un apprentissage personnel, alors j'aimerais que vous oubliez toute erreur.
Jusqu'à présent, nous avons vu «régression simple» et «régression multiple», mais les deux ont parlé dans le même domaine de régression linéaire. Cette fois, je voudrais résumer le "** modèle de régression de base linéaire " qui généralise la régression linéaire et la " méthode de descente de gradient **" pour optimiser la fonction de perte. Les sites suivants ont été mentionnés cette fois.
Pour dessiner une courbe approximative pour la chaîne de données, le modèle de régression unique est
y=w_0x_0+w_1x_1+\cdots+w_nx_n
Il devait être approximé par. De plus, on peut voir que pour la régression simple, seuls deux items de l'équation de régression multiple ont été utilisés.
Maintenant, si le poids de chaque terme est $ (w_0, w_1, \ cdots, w_n) $, la fonction du modèle peut en fait être n'importe quoi, et si c'est $ y = \ phi (x) $,
y(\boldsymbol{x}, \boldsymbol{w}) = \sum_{j=0}^{M-1}w_j\phi_{j}(\boldsymbol{x})
Il est exprimé comme. $ \ boldsymbol {w} = (w_0, w_1, \ cdots, w_ {M-1}) ^ T $, $ \ boldsymbol {\ phi} = (\ phi_0, \ phi_1, \ cdots, \ phi_ {M-1 }) ^ T $. Si $ \ phi_0 = 1 $ (terme de section),
y(\boldsymbol{x}, \boldsymbol{w}) = \boldsymbol{w}^T\phi(x)
devenir. Cette $ \ phi (x) $ est appelée ** fonction de base **.
L'expression généralisée signifie que la régression linéaire signifie trouver une séquence de coefficients $ \ boldsymbol {w} $ qui représente le mieux une chaîne de données donnée en combinant certaines fonctions de base. ..
scikit-learn vous permet d'utiliser diverses fonctions de base pour la régression.
Pour les régressions simples et multiples, nous avons trouvé un coefficient qui minimisait la somme des carrés des résidus. Bien qu'il ait été possible de trouver w mathématiquement avec une régression simple, il est souvent très difficile de trouver une solution analytique lorsque la fonction de base est compliquée ou lorsque les données ont de nombreuses dimensions. Dans de tels cas, il est nécessaire de trouver le coefficient approximativement. Dans ce cas, "** méthode de descente de gradient **" est utilisée. Littéralement, c'est une méthode pour trouver la valeur optimale en descendant la pente (gradient).
Réfléchissez à la manière de trouver les coefficients, y compris comment les résoudre mathématiquement. Il est décrit en détail ci-dessous.
C'est une méthode pour trouver une solution par transformation de formule comme décrit dans la régression simple et la régression multiple. C'est une méthode de résolution d'équations simultanées à partir de la complétion carrée et de la différenciation partielle. Si la formule est simple, il n'y a pas de problème, mais si le modèle est compliqué, il y a des cas où il ne peut pas être résolu.
La méthode du gradient est littéralement un moyen de descendre le gradient de la fonction de perte. La valeur de la fonction de perte doit être petite pour trouver le paramètre optimal, mais c'est une image de descente d'une pente vers une valeur plus petite.
La méthode de descente la plus raide et la méthode de descente de gradient probabiliste sont souvent introduites sur les sites d'apprentissage automatique, mais dans le monde de l'apprentissage profond, la méthode de descente de gradient utilisée augmente. On peut dire que c'est un domaine où l'apprentissage en profondeur est florissant et se développe.
Étant donné la fonction de perte $ f (x, y) $, si le vecteur de gradient est partiellement différencié par $ x $ et $ y
Cependant, la faiblesse de cette méthode est qu'il n'y a pas toujours une fonction de perte. La position de convergence change lorsque la valeur initiale est prise (converge vers la solution locale).
La méthode de descente la plus raide se réfère à un point, tandis que la méthode de descente de gradient probabiliste se réfère à plusieurs échantillons. Calculez
Dans la plupart des cas, SGD semble converger plus rapidement, mais la méthode de descente la plus raide est plus rapide à calculer. Dans la plupart des cas, je pense que ce n'est pas grave si vous utilisez SGD (Wikipedia talk % 9A% 84% E5% 8B% BE% E9% 85% 8D% E9% 99% 8D% E4% B8% 8B% E6% B3% 95)).
J'ai écrit sur les régressions générales et les solutions en développant des régressions simples et multiples. En utilisant la théorie jusqu'ici, je pense qu'il est nécessaire de revenir à divers échantillons.
Je voulais en fait essayer l'implémentation python, mais j'étais épuisé. Ensuite, après avoir essayé quelques implémentations en python, je voudrais résumer le surajustement et la régularisation.
Recommended Posts