Chapitre 6 Apprentissage supervisé: Classification pg212 ~ [Apprenez en vous déplaçant avec Python! Nouveau manuel d'apprentissage automatique]

https://www.amazon.co.jp/Python%E3%81%A7%E5%8B%95%E3%81%8B%E3%81%97%E3%81%A6%E5%AD%A6%E3%81%B6%EF%BC%81-%E3%81%82%E3%81%9F%E3%82%89%E3%81%97%E3%81%84%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%81%AE%E6%95%99%E7%A7%91%E6%9B%B8-%E4%BC%8A%E8%97%A4-%E7%9C%9F/dp/4798144983

Connaissances impliquées

Ce qu'ils font .. Pourquoi utiliser ces calculs pour classer

Estimation la plus probable (pg212)

Tout d'abord, à partir de l'estimation la plus probable A partir d'un certain événement (t = 0 pour la 1ère à la 3ème fois et t = 1 pour la 4ème fois dans ce cas), la probabilité plausible que chaque événement puisse se produire est estimée.

P(t=1|x)=w Une expression appelée probabilité w que t = 1 pour une certaine entrée de x.

T = [0,0,0,1], donc si vous y pensez normalement, c'est 1/4! Cependant, cela est calculé par l'estimation la plus probable.

Essayez de trouver la probabilité lorsque w = 0,1

Puisque $ w = P (t = 1 | x) = 0,1 $, la probabilité (probabilité) que t = 1 soit de 0,9 $ * 0,9 * 0,9 * 0,1 = 0,0729 $ (chaque valeur est [0,0,0,1] ](Lorsque w = 1))

La raison de multiplier ces quatre Je veux trouver la probabilité lorsque T = [0,0,0,1] apparaît, donc (Probabilité du 1er t = 0 0,9) x (Probabilité du 2e t = 0 0,9) x (Probabilité du 3e t = 0 0,9) x (Probabilité du 4e t = 0,1) = (Probabilité que T = [0,0,0,1]) Parce qu'il peut être exprimé comme. Et l'estimation la plus probable est le calcul pour savoir si w de 0,9, 0,1 est plausible.

Par conséquent, la probabilité lorsque w = 0,1 est de 0,0729.

Et si c'est w = 0,2? ?? À 0,8 $ * 0,8 * 0,8 * 0,2 = 0,104 $ La probabilité lorsque w = 0,2 est 0,1024 Lequel a la plus grande probabilité est, bien sûr, le dernier, donc il semble plus probable lorsque la probabilité w de t = 1 est de 0,2.

C'est finalement le plus élevé lorsque w = 0,25 ($ 1/4 $). </ font>

** Considérez quel w est le meilleur dans la plage de 0 à 1 afin de déterminer analytiquement quelle probabilité est la plus probable. ** ・ Pour le trouver, généralisez la formule afin que chaque nombre puisse être inséré. C'est, $ P(T=0,0,0,1|x)=(1-w)^3w $ Peut être exprimé par.

Lorsqu'elle est exprimée dans la plage de la valeur d'entrée w de 0 à 1, elle devient un chevron (P214). , On peut dire que la partie apex est la plus plausible w.

Trouvons la valeur maximale!

Prenez le journal de $ P = (1-w) ^ 3 (w) $ pour faciliter le calcul et trouvez la valeur maximale (w ne change pas lorsque le journal est pris au maximum) Le logarithmique est ↓ logP=log{(1-w)^3w}=3log(1-w)+log{w} (Calcul en prenant un logarithme normalement. La puissance diminue et devient une addition)

Différencier et trouver la pièce avec une inclinaison = 0

$ \ frac {\ partial} {\ partial w} logP = \ frac {\ partial} {\ partial w} [3log (1-w) + log w] = 0 $![iOS image.jpg](https :: //qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/381710/f797dc43-9cbf-8af6-8c66-3f90283f0a5d.jpeg)

Par conséquent, ce que je dis ici est le meilleur quand $ w = \ frac {1} {4} $. T = [0,0,0,1] est le paramètre de modèle qui sera probablement généré. Cela signifie </ font>

w = 1/4 est l'estimation la plus probable.

** La version élémentaire d'estimation la plus probable est terminée! ** **

Modèle de régression logistique (P216)

-En utilisant le modèle de régression logistique, l'entrée x peut être compressée dans la plage de 0 à 1, il est donc facile à utiliser comme probabilité de classification.

En passant la fonction sigmoïde à travers le modèle linéaire, la probabilité que x devienne t = 1 peut être exprimée comme suit. ** Retour logistique ** $ y=w_0x+w_1\\ $ $ y=\sigma(w_0x+w_1)=\frac{1}{1+exp(-(w_0x+w_1))} $

(Moyenne) Erreur d'entropie croisée

・ La régression logistique est considérée comme une probabilité (valeur w précédente) ・ Par conséquent, à partir de la valeur d'entrée x ・ Je veux trouver un bon poids w. Ensuite, en utilisant le w obtenu, entrez la valeur de x dans le modèle créé pour obtenir la valeur prédite.

y=\sigma(w_0x+w_1)=P(t=1|x)

A ce moment, y représente la probabilité. Soudain, une fonction sigmoïde est sortie, mais c'est celle qui met la probabilité w qui a été gérée jusqu'ici dans y. (En utilisant la fonction sigmoïde, y obtenu à partir de la valeur d'entrée x ($ y = w_0x + w_1 $)) peut être exprimé comme une probabilité. Je dis ça.

⭐️ ** À partir de ce qui précède, $ y = w = \ sigma (w_0x + w_1) = P (t = 1 | x) $. ** **

(important): Dans P218, les paramètres $ w_0 $ et $ w_1 $ de ce modèle sont les plus susceptibles d'être estimés pour correspondre aux données sur les insectes. "En supposant que les données sur les insectes ont été générées à partir de ce modèle, trouvez les paramètres les plus probables (probablement élevés)."

Dans la théorie précédente, nous avons considéré T = [0,0,0,1], mais cette fois nous la considérerons pour qu'elle puisse s'appliquer à tous les cas.

P218

S'il n'y a qu'une seule donnée et t = 1 pour un certain poids x, la probabilité que t = 1 soit générée à partir du modèle est la valeur de sortie y du modèle de régression logistique lui-même.

Il y a une description, mais qu'est-ce que cela signifie? iOS の画像 (1).jpg

C'est l'image de la page précédente. ** En regardant cela, le modèle de régression logistique peut être traité comme une probabilité car le modèle linéaire (cette expression linéaire est une expression linéaire qui obtient la valeur y à partir de la valeur d'entrée x) est écrasé dans la plage de 1 à 0 par la fonction sigmoïde. ça peut. ** **

Donc ici y = (probabilité que t = 1) 1-y = (probabilité que t = 0) Traiter comme.

Le modèle qui généralise cela est la flèche $ P(t|x)=y^t(1-y)^{1-t} $


Considérons maintenant le cas où le nombre de données est N Où je pensais à T = [0,0,0,1] dans la section précédente X = [$ x_0, x_1, ..., x_n ] T = [ t_0, t_1, ..., t_n $] Considérons le motif (T = [0,0,0,1,1,1,0,1, ... N pièces]).

Comme nous l'avons fait dans la section précédente, lorsque T = [0,0,0,1], ce que nous avons trouvé comme [0,8 $ * 0,8 * 0,8 * 0,2 = 0,104 $] est également le plus probable dans la formule généralisée. Les estimations doivent être calculées, donc tous les modèles de $ x_0 à x_n $ doivent être multipliés.

C'est ce que dit P219: "Puisque toutes les données peuvent être multipliées par la probabilité de génération de chaque donnée, cela devient comme l'équation (6-15). C'est la vraisemblance."

C'est la partie de.

Donc l'équation (6-15) est la suivante (car ils sont tous multipliés) $ P(T|X)=\prod_{n=0}^{N-1}P(T|X)=\prod_{n=0}^{N-1}y_n^{t_n}(1-y_n)^{1-t_n} $ ** _, qui représente la probabilité. (Le graphique en chevron à la page 214) _ ** </ font>

Si vous prenez la valeur logarithmique comme avant et simplifiez la formule, la vraisemblance logarithmique sera ↓ $ logP(T|X)=\sum_{n=0}^{N-1}[\{t_nlogy_n+(1-t_n)log(1-y_n)}]\hspace{70pt}(6-16) $

** Pourtant, comme la dernière fois, vous pouvez choisir celui avec la valeur maximale de cette probabilité ($ w_0 et w_1 $ sont obtenus car c'est le maximum de vraisemblance) **

Celle-ci est multipliée par -1 et inversée, et divisée par N est appelée «erreur d'entropie de croisement moyenne ($ E (n) $)».
E(n)=-\frac{1}{N}logP(T|X)=-\frac{1}{N}\sum_{n=0}^{N-1}[\{t_nlogy_n+(1-t_n)log(1-y_n)}]\hspace{70pt}(6-17)

** Après cela, calculez, et puisque $ w_0, w_1 $ à cette valeur minimale est un w approprié, mettez $ w_0 = 1, w_1 = 1 $ dans l'analyse. Vérifiez la pente par différenciation partielle de, et passez à celle avec la pente la plus petite OK! ** </ font>

Classification de classe d'entrée 2D 2 (P228)

Dans le cas des insectes, il y a une entrée du poids ($ x_1 ) et de la longueur du corps ( x_2 $) (entrée bidimensionnelle), et il fait la distinction entre mâle et femelle (deux classes).

Encodage 1ofK

Comment exprimer où dans chaque classe il est classé iOS の画像 (2).jpg

Modèle de régression logistique (entrée 2D ver.)

Jusqu'à la dernière fois, je pensais à une entrée unidimensionnelle, donc cette fois je considérerai l'entrée bidimensionnelle.

Considérons P232 $ y = \ sigma (a) $ $ y=\sigma(a) $ Jusqu'à la dernière fois, ce a était exprimé sous la forme $ w_ox + w_1 , qui était une entrée unidimensionnelle, mais considérez cela comme une entrée bidimensionnelle. Dans ce cas, la partie de a = passe de [ a = w_0x + w_1 ] à → [ a = w_0x_0 + w_1x_1 + w_2 $].

Semblable à la fois précédente, passer cela à travers la fonction sigmoïde donne la probabilité (y) de t = 1ort = 0. (Cette fois, la probabilité lorsque t = 0 est y, et la probabilité lorsque t = 1 est 1-y)

Donc, P(t=0|x)=\sigma(a)=y P(t=1|x)=\sigma(a)=1-y Cela devient un modèle.

Puisque le modèle généralisé est aussi $ P (t | x) = y ^ t (1-y) ^ {1-t} $ comme précédemment, la fonction de perte pour trouver l'erreur d'entropie croisée moyenne de ceci est $ E(w)=logP(T|X)=\sum_{n=0}^{N-1}[\{t_nlogy_n+(1-t_n)log(1-y_n)}]\hspace{70pt} $ Peut être utilisé tel quel.

** Si la valeur minimale de cette erreur d'entropie croisée est obtenue par la méthode du gradient, les valeurs appropriées $ w_0, w_1, w_2 $ peuvent être obtenues. ** **

Enfin, en utilisant les $ w_0, w_1, w_2 $ calculés et en mettant cette valeur dans w de $ y = \ sigma (a) $ ($ a = w_0x_0 + w_1x_1 + w_2 $), l'erreur Vous pouvez créer un modèle de classification avec quelques-uns.

Le graphique du modèle de classification créé est le graphique de la page 238 et la ligne de démarcation est la ligne de démarcation qui sépare chaque classe.

Classification de classe d'entrée 2D 3

A partir de maintenant, considérons le cas où l'entrée reste bidimensionnelle, mais il y a trois classes à classer. Cela peut être fait pour correspondre à la classification de 3 classes ou plus en introduisant la fonction softmax au lieu de la fonction sigmoïde dans la sortie du modèle.

Par exemple, dans le cas d'un problème de classification à trois classes, considérons l'entrée totale $ a_k (k = 0,1,2) $ correspondant aux trois classes. $ a_k=w_{k0}x_0+w_{k1}x_1+w_{k2}\hspace{20pt}(k=0,1,2)\hspace{40pt}(6-40) $

Actuellement, il y a deux entrées, $ X = [x_0, x_1] $, mais je vais définir une valeur d'entrée factice $ x_2 $ qui prend toujours 1. Puis $ a_k=w_{k0}x_0+w_{k1}x_1+w_{k2}x_2=\sum_{i=0}^{D}w_{ki}x_{i}\hspace{10pt}(k=0,1,2) $ Sera.

Donc, comme la dernière fois, mettez $ a_k $ dans la fonction softmax selon la procédure que vous avez mise dans la fonction sigmoïde. $ Fonction Softmax = y_i = \ frac {exp (x_i)} {\ sum_ {j = 0} ^ {K-1} exp (x_j)} $ Ce x devient le total $ a_k , le modèle utilisé cette fois est $ y_i=\frac{exp(a_k)}{\sum_{k=0}^{K-1}exp(a_k)} $$ Sera. Mettez la partie somme du côté inférieur comme u u=exp(a_0)+exp(a_1)+exp(a_2) La formule obtenue avec elle est

y_k=\frac{exp(a_k)}{u}\hspace{20pt}(k=0,1,2)

Sera.

Après cela, je ferai la même chose que j'ai fait dans la section précédente ・ Créez une formule généralisée pour chaque probabilité. $ P (t | x) = y_0 ^ {t_0} y_1 ^ {t_1} y_2 ^ {t_2} $ (P242) ・ Et N, je multiplie tout pour obtenir la probabilité que ces données aient été générées. ・ Enfin, la vraisemblance logarithmique est prise pour trouver la valeur minimale, et un w approprié est dérivé. -Créer un modèle pour la classification en utilisant ce w (vous pouvez obtenir une expression qui peut afficher la ligne de classification)

** Créez un modèle de classification à l'aide des données d'entraînement, et si vous mettez des données de test dans ce modèle, la classification sera émise **

Recommended Posts