Machine Learning Xiaobai Notes Régression linéaire série

Cette série est destinée aux notes du groupe d'étude DataWhale. Du point de vue d'un débutant qui a une faible base en statistique et en théorie de l'apprentissage automatique, sur la base du matériel d'étude de groupe, les connaissances sont résumées et organisées du superficiel au profond. La nouvelle compréhension pourrait continuer de s'améliorer. Étant donné que le niveau est vraiment limité, les erreurs sont inévitables et les lecteurs sont invités à critiquer et à corriger. Si vous devez réimprimer, veuillez contacter le blogueur, merci

Concepts de base des algorithmes de régression linéaire


Qu'est-ce que la régression linéaire?

Le modèle de régression est une fonction utilisée pour exprimer la relation de mappage entre les variables d'entrée (variables indépendantes) et les variables de sortie (variables dépendantes). Lorsque la fonction appartient à une fonction linéaire, elle est appelée modèle de régression linéaire, qui peut être considérée comme une combinaison linéaire d'un ou plusieurs paramètres de modèle appelés coefficients de régression.
En termes simples, il s'agit d'une équation linéaire utilisée pour exprimer quantitativement la relation quantitative entre plusieurs indicateurs (tels que le nombre de chambres, la superficie des chambres et le prix total du logement).

Formulaire de réalisation générale de régression linéaire

Supposons que \ (x_ {1} \) , \ (x_ {2} \) …… \ (x_ {d} \) est la variable indépendante de l'objet à étudier (comme le nombre de pièces, la superficie de la pièce, etc.), \ (y \) Pour la variable dépendante (prix total du logement) liée à la variable indépendante, si elle est exprimée en fonction linéaire, la relation entre les deux peut s'écrire:

\ [\ begin {align *} f (x) & = \ theta_0 + \ theta_1x_1 + \ theta_2x_2 + ... + \ theta_dx_d \\ & = \ sum_ {i = 0} ^ {d} \ theta_ix_i \\ \ end {aligner*}\]

\ (θ_ {i} \) est le paramètre du modèle, qui est chargé d'ajuster le poids de l'influence de chaque variable indépendante sur la variable dépendante. Le processus d'ajustement du modèle de régression linéaire peut être vu comme utilisant l'ensemble de données que nous avons obtenu (échantillonné, où chaque ensemble de données contient la valeur de chaque variable indépendante de l'échantillon \ (x_ {i} \) et son facteur correspondant La valeur de la variable \ (y_ {i} \) ) pour trouver le paramètre le plus approprié \ (θ_ {i} \) , afin que la valeur prédite du modèle \ (f (x) \) soit aussi proche que possible de la vraie valeur \ (y \ ) Processus.

Pour trouver les paramètres les plus appropriés, il doit y avoir une norme pour évaluer l'efficacité du modèle, ainsi qu'une stratégie pour ajuster les paramètres.
L'erreur quadratique moyenne, en tant que somme des carrés de la différence entre la valeur prédite et la valeur réelle, est l'un des indicateurs d'évaluation les plus couramment utilisés dans les modèles de régression linéaire, à savoir:

\ [J (\ theta) = \ frac {1} {2} \ sum_ {j = 1} ^ {n} (f _ {\ theta} (x ^ {(i)}) - y ^ {(i)} ) ^ 2 \]

Notre tâche consiste à trouver les paramètres optimaux du modèle en minimisant l'erreur quadratique moyenne. L'erreur quadratique moyenne ici est également appelée la fonction de coût , qui est une fonction utilisée pour mesurer l'écart moyen de tous les ensembles d'échantillons. .

Méthode d'optimisation du modèle de régression linéaire

D'après la discussion ci-dessus, nous avons besoin d'une stratégie d'ajustement des paramètres pour minimiser la fonction de coût. Les méthodes couramment utilisées ici sont les moindres carrés, la descente de gradient, Newton et quasi-Newton:

Moindres carrés: On
suppose qu'il y a n échantillons (valeurs observées) dans l'ensemble de données pour un certain problème, et chaque échantillon contient m caractéristiques (variables indépendantes), qui peuvent être exprimées par la matrice comme:

\ [X = \ left [\ begin {array} {cccc} (x ^ {(1)}) ^ T \\ (x ^ {(2)}) ^ T \\ \ ldots \\ (x ^ {( n)}) ^ T \ end {array} \ right] = \ begin {bmatrix} x_ {11} & x_ {12} & x_ {13} & \ ldots & x_ {1m} \\ x_ {21} & x_ {22} & x_ {23} & \ ldots & x_ {2m} \\ && \ ldots \\ x_ {n1} & x_ {n2} & x_ {n3} & \ ldots & x_ {nm} \ end {bmatrix} \]

Sa sortie (variable dépendante) peut être exprimée comme:

\ [Y = \ left [\ begin {array} {cccc} y ^ {(1)} \\ y ^ {(2)} \\ \ ldots \\ y ^ {(n)} \ end {array} \ droite]\]

L'équation linéaire peut s'écrire:

\ [f_ \ theta (x) = X \ theta \]

Par dérivation, le paramètre optimal θ peut être obtenu par la formule suivante:

\ [\ theta = (X ^ TX) ^ {(- 1)} X ^ TY \]

La méthode ci-dessus est une méthode de résolution matricielle des moindres carrés. Cette solution est plus concise que les autres solutions, et elle est également pratique pour le fonctionnement de l'ordinateur. C'est l'une des méthodes les plus couramment utilisées pour obtenir les moindres carrés.

Descente en gradient:
L'idée de base de la descente en gradient est d'utiliser l'itération pour mettre à jour en continu les paramètres pour faire converger la fonction objectif vers la valeur minimale. La méthode d'implémentation spécifique consiste à trouver la valeur de fonction la plus dégradable à la position actuelle de la fonction différenciable (fonction objectif) La direction rapide (c'est-à-dire la direction inverse du gradient, le gradient peut être considéré comme un vecteur formé par la fonction dérivant séparément chaque variable indépendante), puis la variable indépendante (c'est-à-dire le paramètre θ) est mise à jour à une certaine vitesse le long de la direction, comme suit Comme indiqué:

\ [\ theta_j: = \ theta_j- \ alpha \ frac {\ partial {J (\ theta)}} {\ partial \ theta} \]

α est le taux d'apprentissage, qui détermine la taille du pas de chaque pas de descente de gradient. Plus le taux est élevé, plus la valeur de la fonction diminue rapidement. Cependant, un taux d'apprentissage trop grand peut entraîner une non-convergence. Dérivation de J (θ) dans la formule:

\ [\ begin {align *} \ frac {\ partial {J (\ theta)}} {\ partial \ theta} & = \ frac {\ partial} {\ partial \ theta_j} \ frac {1} {2} \ sum_ {i = 1} ^ {n} (f_ \ thêta (x) ^ {(i)} - y ^ {(i)}) ^ 2 \\ & = 2 * \ frac {1} {2} \ sum_ {i = 1} ^ {n} (f_ \ theta (x) ^ {(i)} - y ^ {(i)}) * \ frac {\ partial} {\ partial \ theta_j} (f_ \ theta (x ) ^ {(i)} - y ^ {(i)}) \\ & = \ sum_ {i = 1} ^ {n} (f_ \ theta (x) ^ {(i)} - y ^ {(i )}) * \ frac {\ partial} {\ partial \ theta_j} (\ sum_ {j = 0} ^ {d} \ theta_jx_j ^ {(i)} - y ^ {(i)})) \\ & = \ sum_ {i = 1} ^ {n} (f_ \ thêta (x) ^ {(i)} - y ^ {(i)}) x_j ^ {(i)} \\ \ end {align *} \]

Ici, l'indice j indique le jème paramètre et l'indice supérieur i indique le ième point de données. Substituez $$ frac {\ partial {J (\ theta)}} {\ partial \ theta} $$ dans une expression de mise à jour des paramètres exprimée sous forme de vecteur:

\ [\ theta = \ theta + \ alpha \ sum_ {i = 1} ^ {n} (y ^ {(i)} - f_ \ theta (x) ^ {(i)}) x ^ {(i)} \]

Cette méthode devient une descente de gradient par lots, c'est-à-dire qu'elle calcule tous les échantillons en même temps en une seule itération. Lorsque la fonction objectif est convexe, elle peut être garantie d'atteindre la valeur minimale, mais lorsque la taille de l'échantillon est grande, elle apportera une grande quantité de calcul. Afin de résoudre ce problème, les gens ont proposé une méthode de descente de gradient stochastique:

\ [\ theta = \ theta + \ alpha (y ^ {(i)} - f_ \ theta (x) ^ {(i)}) x ^ {(i)} \]

La méthode de descente de gradient stochastique a une petite quantité de calcul et le programme s'exécute rapidement, mais elle présente les inconvénients d'une précision réduite et d'une convergence possible vers l'optimum local. Par conséquent, une méthode de descente en petits lots a été proposée par la suite, c'est-à-dire qu'un nombre fixe d'échantillons a été calculé à chaque fois pour mettre à jour les paramètres, ce qui ne sera pas répété ici.

Méthode de Newton et méthodes de Quasi-Newton:
La méthode de Newton et la méthode de quasi-Newton sont également des méthodes couramment utilisées pour traiter les problèmes d'optimisation sans contrainte, et leur caractéristique exceptionnelle est la convergence rapide. L'idée de base de la méthode de Newton est d'utiliser l'expansion de Taylor pour approximer une fonction plus complexe à la position actuelle avec une fonction linéaire, puis approximer la valeur minimale de la fonction d'origine en trouvant la valeur minimale de la fonction dans la région et itérer par itération Recherchez la valeur minimale. L'expansion de Taylor de la fonction f (x) et le fait d'ignorer les termes d'ordre supérieur de plus de deux fois donne:

\ [f (x) = f (x_0) + f '(x_0) (x - x_0) + \ frac {1} {2} f' '(x_0) (x - x_0) ^ 2 \]

Exprimé sous forme vectorielle comme:

\ [f (x) = f (x_0) + \ bigtriangledown f (x_0) ^ {T} (x - x_0) + \ frac {1} {2} (x - x_0) ^ {T} \ bigtriangledown ^ {2 } f (x_0) (x - x_0) \]

Trouvez le dégradé des deux côtés et rendez le dégradé égal à 0:

\ [x = x_0 - \ left (\ bigtriangledown ^ {2} f (x_0) \ right) ^ {- 1} \ bigtriangledown f (x_0) \]

Parmi eux, \ (\ bigtriangledown ^ {2} f (x_0) \) est appelé matrice de Hesse, qui est représentée par H.
Revenons à notre problème d'optimisation des paramètres, soit \ (l (\ theta) \) la fonction de perte, et notre stratégie mise à jour est:

\ [\ theta: = \ theta- \ frac {l '(\ theta)} {l' '(\ theta)} = \ theta - H ^ {- 1} \ Delta _ {\ theta} l (\ theta) \ ]

Parmi eux, \ (\ Delta _ {\ theta} l (\ theta) \) est la dérivée partielle de \ (l (\ theta) \) à \ (\ theta_i \) , qui est de trouver le gradient. \ (H \) est la matrice hessoise de \ (J (\ theta) \) ,

\ [H_ {ij} = \ frac {\ partial ^ 2l (\ theta)} {\ partial \ theta_i \ partial \ theta_j} \]

Pour résumer les étapes complètes de la méthode de Newton sont les suivantes:

  1. Définissez la valeur initiale \ (x_0 \) et l'exigence de précision ε.
  2. Calculez le gradient \ (\ Delta _ {\ theta} l (\ theta) \) et la matrice de Hesse de la fonction approximative actuelle .
  3. On estime que si le module du gradient est inférieur à l'exigence de précision ε, le modèle converge et arrête son itération, sinon il passe à l'étape suivante.
  4. Itérer selon la formule de mise à jour des paramètres pour obtenir l'emplacement du point suivant \ (x_1 \) , puis revenir à la deuxième étape.

Le calcul de la matrice de Hesse est plus compliqué et l'influence est plus grande quand il y a beaucoup de paramètres. Par conséquent, les gens ont proposé une méthode quasi-Newton et construit une matrice symétrique définie positive B qui peut approximer la matrice de Hesse (ou l'inverse de la matrice de Hesse) sans la dérivée partielle de second ordre pour terminer le calcul. Soit \ (x_k \) la k-ième valeur d'itération, alors les exigences pour la matrice nouvellement construite sont les suivantes (ignorez la preuve ...):

\ [f '(x_ {k + 1}) - f' (x_k) = f '' (x_k) (x_ {k + 1} - x_k) = H (x_ {k + 1} - x_k) \]

Le tableau récapitulatif des formules d'itération de la méthode quasi-Newton couramment utilisées vues d'Internet: À l'

avenir, il y aura une discussion approfondie sur la méthode quasi-Newton.

Matériaux de référence:

  1. https://github.com/datawhalechina/team-learning/tree/master/Machine learning basics sur les matériaux d'apprentissage du groupe DataWhale
  2. https://baike.baidu.com/item/ régression linéaire / 8190345? fr = aladdin Baidu Encyclopedia-régression linéaire
  3. https://blog.csdn.net/qq_41800366/article/details/86583789 Explication du principe de la méthode de descente en gradient
  4. https://blog.csdn.net/sigai_csdn/article/details/80678812Comprendre la méthode Newton
  5. https://zhuanlan.zhihu.com/p/46536960 Méthode Newton et méthode quasi-Newton

Je suppose que tu aimes

Origine www.cnblogs.com/liugd-2020/p/12736960.html
conseillé
Classement