[PYTHON] Apprentissage automatique
** Qu'est-ce que l'apprentissage automatique **
On dit que les programmes informatiques mesurent la tâche T avec l'indice de performance P et, si ses performances sont améliorées par l'expérience E, apprennent de l'expérience E en ce qui concerne la tâche T et l'indice de performance P (Tom Mitchell 1997).
・ Supposons que vous saisissiez des données dans un programme informatique et résolvez la tâche T.
・ La sortie Y1 est émise lorsque des données inconnues sont entrées.
・ La sortie Y1 peut être mesurée par l'indice de performance P
・ Entrer de nouvelles données et sortir Y2
・ Si Y2 est amélioré par rapport à Y1 lorsque mesuré par l'indice de performance P, on peut dire que ce programme informatique a appris.
** Régression linéaire **
- ** Problème de retour **
- Variable explicative (entrée)
$ x = (x_1, x_2, ・ ・ ・, x_m) ^ T \ dans ℝ ^ m $
- Variable objective (sortie)
$ y \in ℝ^1$
- ** Modèle de régression linéaire **
- L'un des modèles d'apprentissage automatique pour résoudre les problèmes de régression
- Enseignement supervisé
- Un modèle qui produit une combinaison linéaire de paramètres d'entrée et de m dimensions
- Ajouter un chapeau à la valeur prédite (distinguer de y dans les données de l'enseignant)
** Données enseignants **
$$ {(x_i, y_i) ; i = 1, ... , n} $$
** Paramètres ** (même nombre de dimensions que les variables d'entrée)
$$ w = (w_1, w_2, ... , w_m)^T \in ℝ^m $$
** Jointure linéaire ** (produit interne du paramètre inconnu w et de l'entrée x)
$$\hat{y} = w^Tx + w_0 = \sum_{j = 1}^{m} w_jx_j + w_0 $$
-
** Connexion linéaire **
-La somme des produits internes du paramètre inconnu w et de l'entrée x
・ Ajouter la section w_0 (section = intersection avec l'axe y, a pour effet de se déplacer en parallèle vers l'axe y)
・ Même si le vecteur d'entrée $ x_j $ est multidimensionnel, la sortie sera unidimensionnelle (scalaire).
-
** Paramètres du modèle **
・ Ensemble de poids $ w_j $ (Comment le montant de la caractéristique affecte la zone prévue)
・ Estimer le meilleur gradient par la méthode du carré minimum
- ~ Pour un modèle de régression simple (variable explicative m = 1) ~ *
$ y = w_0 + w_1x_1 + \epsilon $
$ (variable objective = section + coefficient de régression x variable explicative + erreur) $
** Équations simultanées **
$y_1 = w_0 + w_1x_1 + \epsilon_1 $
$y_1 = w_0 + w_1x_2 + \epsilon_2 $
$y_1 = w_0 + w_1x_n + \epsilon_n $
** Représentation matricielle **
$ y = Xw + \epsilon $
- ~ Pour le modèle de régression multiple (variable explicative m> 1) ~ *
$ y = w_0 + w_1x_1 + w_2x_2 + \ epsilon $ etc.
** Répartition des données **
- Erreur quadratique moyenne (somme des carrés résiduels)
- Somme de l'erreur quadratique des données et du modèle
- Dépend uniquement des paramètres
$ MSE_{train} = \frac{1}{n_{train}} \sum_{i=1}^{n_{train}}(\hat{y_i}^{(train)} - y_i^{(train)})^2 $
- Recherche de paramètres qui minimisent l'erreur quadratique moyenne des données d'entraînement (gradient 0 = minimum)
- À propos du point minimum MSE = $ \ hat {w} $ dans w espace
Lorsque $ \ frac {\ partial} {\ partial {w} MSE_ {train}} = 0 $ (le point où MSE devient w = 0 par la différenciation par rapport à w) est calculé, ...
- ** Coefficient de régression **
$ \hat{w} = (X^{(train)T}X^{(train)})^ {-1}X^{(train)T}y^{(train)} $
La valeur prédite $ \ hat {y} est le produit interne $ du coefficient de régression \ hat {w} et de la variable explicative x, donc ...
- ** Valeur prédite **
$\hat{y} = X(X^{(train)T}X^{(train)})^ {-1}X^{(train)T}y^{(train)}$
** Modèle de régression non linéaire **
-
Fonction de base
$ y_i = f(x_i) + \epsilon_i $
Une fois que x est délinéarisé par une application linéaire $ \ phi , le produit interne avec w est obtenu.
$ y_i = w_0 + \sum_{i=1}^{m}
w_i\phi_j(x_i) + \epsilon_i $$
Exemples de fonctions de base: fonctions polymorphes, fonctions de base gaussiennes, fonctions de spline (B), etc.
-
Régression non linéaire basée sur une fonction de base unidimensionnelle
- Polygone (1er au 9ème ordre)
$\phi_j = x^j$
- Base gaussienne
$ \phi(x) = exp{\frac{(x - \mu_j)^2}{2h_j}}$
- Puisqu'il est sous la forme d'une distribution normale, il devient 1 lorsqu'il est intégré.
――L'emplacement moyen de la distribution normale et l'étendue d'une montagne sont définis par un paramètre appelé bande passante → Peut être utilisé pour une fonction de base bidimensionnelle
- Régression non linéaire basée sur une fonction de base bidimensionnelle
- Fonction de base gaussienne bidimensionnelle
$\phi_j(x) = exp{\frac{(x - \mu_j)^T(x - \mu_j)}{2h_j}}$
- Les fonctions de base peuvent être placées dans l'espace de données
- Méthode d'expansion de base
- Variable explicative
$ x_i = (x_ {i1}, x_ {i2}, ・ ・ ・, x_ {im}) \ in ℝ ^ m $
Convertissez les variables explicatives en vecteur de fonction de base (convertissez x avec K préréglages $ \ phi $), et ...
- Vecteur de fonction non linéaire (vecteur de caractéristiques K-dimensionnel)
$ \ phi (x_i) = (\ phi_1 (x_i), \ phi_2 (x_i), ・ ・ ・, \ phi_k (x_i)) ^ T \ in ℝ ^ k $
Puisqu'il y a n i (données d'apprentissage), n vecteurs de paramètres à k dimensions apparaîtront si le mappage est utilisé comme données d'apprentissage. Cela donne la matrice de planification
- Matrice de planification
$ \ Phi ^ {(train)} = (\ phi (x_1), \ phi (x_2), ・ ・ ・, \ phi (x_n)) ^ T \ in ℝ ^ {n * k} $
Après cela, trouvez la valeur prédite en utilisant la méthode la plus probable
- Valeur prédite
$\hat{y} = \Phi(\Phi^{(train)T}\Phi^{(train)})^ {-1}\Phi^{(train)T}y^{(train)}$
- Superapprentissage et désapprentissage
- En cas de sous-ajustement ,,,
Faible expressivité du modèle $ \ rightarrow $ Utiliser un modèle expressif élevé
- En cas de surajustement ,,,
Augmenter les données d'entraînement /
Supprimer les fonctions de base inutiles (variables) /
Régularisation
** Régularisation **
-
Méthode de régularisation (méthode de pénalisation)
Donner des pénalités pour réduire la complexité du modèle
$ S\gamma = (y - \Phi w)^T(y - \Phi w) + \gamma R(w) $
-
Rôle du terme de régularisation R
- Non R ・ ・ ・ Estimation du carré minimum
- Norme L2 ・ ・ ・ Quantité d'estimation de la crête (○ type, estimation réduite)
Contraignez le paramètre près de l'origine et recherchez le point qui minimise MSE dans la contrainte
- Norme L1 ・ ・ ・ Estimation au lasso (type ◇, estimation clairsemée)
Le point de contact qui minimise MSE est Kado, et certains paramètres ($ w_1 $) sont estimés à exactement 0. Les bases et les variables inutiles peuvent être éliminées au stade de l'estimation (lorsqu'il y a de nombreuses variables explicatives, il est utile de fixer la variable qui a un petit effet sur la prédiction à 0 dans une estimation)
-
Paramètre $ \ gamma $ = Taille de la surface de contrainte
Rendre $ \ gamma $ plus petit → Augmenter la surface de contrainte
Augmenter $ \ gamma $ → diminuer la surface de contrainte
-
Choisir le bon modèle
- Méthode Holdout
S'il n'y a pas beaucoup de données, cela ne donnera pas une bonne évaluation des performances
- Validation croisée
Divisé pour l'apprentissage et l'évaluation pour chaque itérateur
Même si la précision moyenne = valeur CV est inférieure au modèle vérifié par holdout, les performances de généralisation ne sont pas nécessairement élevées.
** Retour logistique **
- Problème de classification
** Variable explicative (entrée) **
$ x = (x_1, x_2, ・ ・ ・, x_m) ^ T \ dans ℝ ^ m $
** Variable objective (sortie) **
$ y \in \{0, 1\}$
- Modèle de régression logistique
- L'un des modèles d'apprentissage automatique pour résoudre les problèmes de classification
- Enseignement supervisé
- Combinaison linéaire de sortie des paramètres d'entrée et m-dimensionnels à la fonction sigmoïde
- La sortie sera la valeur de la probabilité que y = 1
** Données enseignants **
$ {(x_i, y_i) ; i = 1, ... , n} $
** Paramètres ** (même nombre de dimensions que les variables d'entrée)
$ w = (w_1, w_2, ... , w_m)^T \in ℝ^m $
** Jointure linéaire ** (produit interne du paramètre inconnu w et de l'entrée x)
$\hat{y} = w^Tx + w_0 = \sum_{j = 1}^{m} w_jx_j + w_0 $
- Fonction Sigmaid
- L'entrée est réelle
- La sortie est 0-1
- Lorsque le paramètre a augmente, la pente de la courbe près de x = 0 augmente.
- Les changements de biais modifient la position du pas
$ \sigma(x) = \frac{1}{1 + exp(-ax)}$
- Propriétés de la fonction sigmoïde
- Différenciation facile
- Dans l'estimation des paramètres du modèle, il est nécessaire de trouver les points qui minimisent et maximisent des critères tels que l'EQM et la vraisemblance → Il est avantageux de pouvoir différencier facilement
$ \ frac {\ partial \ sigma (x)} {\ partial x} = \ frac {\ partial} {\ partial x} \ biggl (\ frac {1} {1 + exp (-ax)} \ biggr) \\ = (-1) ・ \ {1 + exp (-ax) \} ^ {-2} ・ exp (-ax) ・ (-a) \\ = \ frac {a ・ exp (-ax)} { \ {1 + exp (-ax) \} ^ 2} = \ frac {a} {1 + exp (-ax)} ・ \ frac {1 + exp (-ax) --1} {1 + exp (-ax) )} \\ = a \ sigma (x) (1- \ sigma (x)) $
- Formulation de la régression logistique
$ P(Y = 1|x) = \sigma(w_0 + w_1x_1 + ... + w_mx_m) $
$ (Probabilité que Y = 1 lorsque la variable explicative x est donnée) (Connexion linéaire aux paramètres de données) $
- Distribution de Bernoulli
- Un des divers modèles de distribution tels que la distribution normale
- Distribution de probabilité discrète (probabilité p → 1, probabilité 1-p → 0)
Probabilité de $ y = y_1 $ dans un essai
$P(y)=p^y(1-p)^{1-y}$
- Estimation la plus probable (quel est le P le plus probable?)
- Probabilité simultanée
Chaque variable de probabilité est indépendante → multiplication des probabilités
** Probabilité de $ y_1 $ ~ $ y_n $ ** simultanés dans n essais
$ P (y_1, y_2, ..., y_n; p) = \ prod_ {i = 1} {n} p ^ {y_i} (1-p) ^ {1-y_i} $ ($ P, y_i $ Est connu)
- Probabilité = Probabilité d'extraire un échantillon spécifique $ x_k $ du groupe cible $ \ mu $
- La valeur logarithmique de probabilité = fonction de vraisemblance
- Le choix d'un paramètre qui maximise la fonction de vraisemblance est appelé estimation de vraisemblance.
Fonction de probabilité lorsque des données de $ y_1 $ ~ $ y_n $ sont obtenues
$ P (y_1, y_2, ..., y_n; p) = \ prod_ {i = 1} {n} p ^ {y_i} (1-p) ^ {1-y_i} $ ($ P est inconnu) , Y_i $ est connu)
- Fonction de vraisemblance logarithmique
- L'addition et la soustraction sont plus faciles à calculer que de répéter la multiplication de valeurs complexes
→ Prendre le logarithme et convertir la multiplication en addition
- La fonction de vraisemblance est maximisée avec le même coefficient w qu'avant la logarithmisation (la fonction logarithmique augmente de manière monotone)
→ Cet optimal w est appelé l'estimation la plus probable (solution optimale locale ou globale)
- Minimisez la fonction de vraisemblance multipliée par moins et combinez-la avec la minimisation de la méthode des moindres carrés
→ Méthode de descente de gradient
$E(w_0, w_1, ... , w_m) = -logL(w_0, w_1, ... , w_m) = \sum_{i=1}^{n}\{y_i log p_i + (1 - y_i) log(1 - p_i)\}$
- Entropie croisée (fonction de vraisemblance de type log négatif)
- Mettre à jour la fonction d'apprentissage avec la mauvaise probabilité
- Méthode de descente de gradient
- Approche de mise à jour séquentielle des paramètres (par ordinateur) par apprentissage itératif
- $ \ eta $ est un hyper paramètre appelé taux d'apprentissage qui ajuste la facilité de convergence des paramètres du modèle.
- La différenciation des paramètres MSE peut être calculée analytiquement.
$w^{(k+1) = w^{(k)} + \eta \sum_{i=1}^{n}(y_i - p_i)x_i}$
Dans la méthode de descente de gradient, il est nécessaire de trouver la somme de toutes les N données pour la mise à jour des paramètres.
→ Il y a des problèmes tels qu'une mémoire insuffisante et un temps de calcul énorme.
- Méthode de descente de gradient probabiliste (SGD)
- Sélectionnez au hasard (de manière probabiliste) les données une par une et mettez à jour les paramètres
- Étant donné que le paramètre peut être mis à jour n fois avec la même quantité de calcul que la mise à jour du paramètre une fois par la méthode de descente d'achat, la solution optimale peut être recherchée efficacement.
- Les mises à jour des paramètres sont dans une certaine mesure irrégulières (par rapport à la méthode de descente de gradient), et il est difficile de tomber dans une solution localement optimale proche de la valeur initiale (cela n'a pas beaucoup d'importance car il n'y a qu'un seul pic de régression logistique).
$w(k+1) = w^k + \eta (y_i - p_i)x_i$
- Évaluation du modèle
- Matrice de confusion
- Résultats des données de validation: résultats de prédiction du modèle
- TP (vrai positif) = ○: ○, correct positif
- FP (faux négatif) = ×: ○, faussement positif (possible de rendre anormal une personne normale)
- FN (faux positif) = ○: ×, faussement négatif (normalement confondu avec une personne anormale)
- TN (vrai négatif) = ×: ×, correctement négatif
- Taux de réponse correct
$\frac {TP+TN}{TP+FN+FP+TN}$
- Rappel
- Pourcentage de "vraiment positifs" qui peuvent être prédits comme positifs
- Exemple: dépistage des maladies (la surveillance est NG)
$\frac{TP}{TP+FN}$
- Le pourcentage de ce que le modèle prévoit comme positif est "vraiment positif"
- Spam mail (certains oublis sont acceptables)
$\frac{TP}{TP+FP}$
- Moyenne harmonisée de rappel et de précision
Analyse en composantes principales (ACP)
- Compression dimensionnelle
- Compresser la structure des données multivariées en un plus petit nombre d'indicateurs
- Je souhaite réduire au maximum la perte d'informations
- Peut être analysé et visualisé avec un petit nombre de variables (environ 2 ou 3 dimensions)
- Données d'entraînement
$ x = (x_1, x_2, ・ ・ ・, x_m) ^ T \ dans ℝ ^ m $
- Moyenne (vecteur)
$ \bar{x} = \frac{1}{n} \sum_{i=1}^{n} x_i $
- Matrice de données
$ \ bar {X} = (x_1- \ bar x, ..., x_n- \ bar x) ^ T \\ (je vais le centrer pour qu'il soit distribué autour de l'origine) $
- Matrice co-distribuée distribuée
$ \sum = Var(\bar{X}) = \frac1n \bar{X}^T \bar{X}$
- Vecteur après conversion linéaire
$ s_j = (s_{1j}, ... , s_{nj})^T = \bar{X}a_j$
$a_j \in ℝ^m $
- (Paramètre inconnu w de n données converties par le commun a → s)
- (J est le nombre de dimensions de la destination de conversion 3 dimensions → 1 ou 2 dimensions, etc., index de l'axe)
- La perte d'informations peut être supprimée en maximisant la distribution des données converties $ s_j $
- Recherche d'un axe cartographique qui maximise la dispersion des variables après transformation linéaire
- Dispersion après transformation linéaire
$Var(s_j) = \frac1n s^T_j s_j \\ = \frac1n (\bar{X}a_j)^T (\bar{X}a_j) \\ = \frac1n a^T_j \bar{X}^T \bar{X} a_j \\ = a^T_j Var(\bar{X}) a_j $
- Problème d'optimisation des contraintes
- Insérez une contrainte que la norme est 1 (sans la contrainte, il y a des solutions infinies)
- Fonction objective
$ arg max a ^ T_j Var (\ bar {X}) a_j \\ a \ in ℝ ^ m \\ (Valeur de distribution de la destination de conversion) $
- Contraintes
$ a^T_j a_j =1 $
- Fonction Lagrange
$ E(a_j) = a^T_j Var(\bar{X}) a_j - \lambda(a^T_j a_j - 1)$
Fonction de Lagrange = fonction objectif-multiplicateur de Lagrange x condition de contrainte
$ (trouver le point à maximiser par rapport à a) $
- Différenciation
$\\ \frac{\partial E(a_j)}{\partial a_j} = 2 Var(\bar{(X)}a_j - 2 \lambda a_j = 0)$
- Solution
- Valeur propre = forme de vecteur propre
$ Var(\bar{X} a_j = \lambda a_j)$
- La variance de la destination de projection correspond à la valeur propre
$Var(s_1) = a_1^T Var(\bar{X}) a_1 = \lambda_1 a_1^T a_1 = \lambda_1 $
- Taux de cotisation
- Combien d'informations ont été perdues à la suite de la compression des dimensions
- La somme des valeurs propres correspond à la distribution des données dans l'espace d'origine
$ V_{total} = \sum^{m}_{i=1} \lambda_i $
Distribution totale des données originales = distribution totale des principaux composants
- Taux de contribution: Le rapport de la dispersion d'un certain axe (kème composante principale) à la dispersion totale
- Taux de cotisation cumulé: pourcentage de perte d'information une fois compressé au composant principal de 1 k
$c_k = \frac{\lambda_k}{\sum_{i=1}^{m}\lambda_i} $
= (Dispersion du kème composant principal) / (Dispersion totale du composant principal)
$c_k = \frac { \sum_{j=1}^{k} \lambda_j}{\sum_{i=1}^{m}\lambda_i} \\ $
= (Dispersion des 1er à k composants principaux) / (Dispersion totale des composants principaux)
Méthode de voisinage K
- Définissez la valeur initiale du centre du cluster
- Pour chaque point de données, calculez la distance à chaque centre de cluster et attribuez le cluster le plus proche
- Calculez le vecteur moyen (centre) de chaque cluster
- Répétez quelques étapes jusqu'à ce qu'il converge
--Si vous modifiez la valeur initiale du centre, le résultat du clustering changera également. Le résultat change même si la valeur de K est modifiée