Kapitel 6 Überwachtes Lernen: Klassifizierung pg212 ~ [Lernen Sie, indem Sie sich mit Python bewegen! Neues Lehrbuch für maschinelles Lernen]

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

Beteiligtes Wissen

Was sie tun .. Warum diese Berechnungen zur Klassifizierung verwenden?

Höchstwahrscheinlich Schätzung (S. 212)

Zunächst aus der wahrscheinlichsten Schätzung Aus einem bestimmten Ereignis (in diesem Fall t = 0 zum 1. bis 3. Mal und t = 1 zum 4. Mal) wird die plausible Wahrscheinlichkeit geschätzt, dass jedes Ereignis auftreten kann.

P(t=1|x)=w Ein Ausdruck namens Wahrscheinlichkeit w, dass t = 1 für eine bestimmte Eingabe von x ist.

T = [0,0,0,1]. Wenn Sie also normal darüber nachdenken, ist es 1/4! Dies wird jedoch durch die wahrscheinlichste Schätzung berechnet.

Versuchen Sie, die Wahrscheinlichkeit zu finden, wenn w = 0,1 ist

Da $ w = P (t = 1 | x) = 0,1 $ ist, beträgt die Wahrscheinlichkeit (Wahrscheinlichkeit), dass t = 1 ist, $ 0,9 * 0,9 * 0,9 * 0,1 = 0,0729 $ (jeder Wert ist [0,0,0,1]). ](Wenn w = 1))

Der Grund für die Multiplikation dieser vier Ich möchte die Wahrscheinlichkeit finden, wenn T = [0,0,0,1] erscheint, also (Wahrscheinlichkeit des 1. Males t = 0 0,9) x (Wahrscheinlichkeit des 2. Males t = 0 0,9) x (Wahrscheinlichkeit des 3. Males t = 0 0,9) x (Wahrscheinlichkeit des 4. Males t = 0,1) = (Wahrscheinlichkeit, dass T = [0,0,0,1]) Weil es ausgedrückt werden kann als. Und die wahrscheinlichste Schätzung ist die Berechnung, um herauszufinden, ob w von 0,9, 0,1 plausibel ist.

Daher beträgt die Wahrscheinlichkeit, wenn w = 0,1 ist, 0,0729.

Was ist, wenn dies w = 0,2 ist? ?? Bei $ 0,8 * 0,8 * 0,8 * 0,2 = 0,104 $ Die Wahrscheinlichkeit, wenn w = 0,2 ist, beträgt 0,1024 Welches die höhere Wahrscheinlichkeit hat, ist natürlich das letztere, so dass es wahrscheinlicher erscheint, wenn die Wahrscheinlichkeit w von t = 1 0,2 beträgt.

Dies ist schließlich der höchste Wert, wenn w = 0,25 ($ 1/4 $). </ font>

** Überlegen Sie, welches w im Bereich von 0 bis 1 das beste ist, um analytisch herauszufinden, welche Wahrscheinlichkeit am wahrscheinlichsten ist. ** ・ Um es zu finden, verallgemeinern Sie die Formel, damit jede Zahl eingefügt werden kann. das ist, $ P(T=0,0,0,1|x)=(1-w)^3w $ Kann ausgedrückt werden durch.

Wenn dies im Bereich des Eingabewerts w von 0 bis 1 ausgedrückt wird, wird es ein Chevron (P214). Man kann sagen, dass der Apex-Teil der plausibelste w ist.

Finden wir den Maximalwert!

Nehmen Sie den Logarithmus von $ P = (1-w) ^ 3 (w) $, um die Berechnung zu vereinfachen und den Maximalwert zu finden (w ändert sich nicht, wenn der Logarithmus auf das Maximum gebracht wird). Der logarithmische ist ↓ logP=log{(1-w)^3w}=3log(1-w)+log{w} (Berechnung, wenn ein Logarithmus normal genommen wird. Die Leistung fällt ab und wird zu einer Addition)

Differenziere und finde das Teil mit Neigung = 0

$ \ frac {\ partiell} {\ partiell w} logP = \ frac {\ partiell} {\ partiell 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)

Daher ist das, was ich hier sage, das Beste, wenn $ w = \ frac {1} {4} $. T = [0,0,0,1] ist der Modellparameter, der höchstwahrscheinlich generiert wird. Das heißt </ font>

w = 1/4 ist die wahrscheinlichste Schätzung.

** Höchstwahrscheinlich Schätzung Elementarversion fertig! ** ** **

Logistisches Regressionsmodell (P216)

  • Durch Verwendung des logistischen Regressionsmodells kann die Eingabe x im Bereich von 0 bis 1 komprimiert werden, sodass sie einfach als Wahrscheinlichkeit für die Klassifizierung verwendet werden kann.

Durch Durchlaufen der Sigmoidfunktion durch das lineare Modell kann die Wahrscheinlichkeit, dass x zu t = 1 wird, wie folgt ausgedrückt werden. ** Logistische Rückgabe ** $ y=w_0x+w_1\\ $ $ y=\sigma(w_0x+w_1)=\frac{1}{1+exp(-(w_0x+w_1))} $

(Durchschnitt) Kreuzentropiefehler

・ Logistische Regression wird als Wahrscheinlichkeit angesehen (vorheriger w-Wert) ・ Daher ab dem Eingabewert x ・ Ich möchte ein gutes Gewicht w finden. Geben Sie als Nächstes unter Verwendung des erhaltenen w den Wert von x in das erstellte Modell ein, um den vorhergesagten Wert zu erhalten.

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

Zu diesem Zeitpunkt repräsentiert y die Wahrscheinlichkeit. Plötzlich kam eine Sigmoidfunktion heraus, aber diese ist diejenige, die die Wahrscheinlichkeit w, die bisher behandelt wurde, in y setzt. (Mit der Sigmoid-Funktion kann y, das aus dem Eingabewert x ($ y = w_0x + w_1 $) erhalten wird, als Wahrscheinlichkeit ausgedrückt werden. Ich sage das.

⭐️ ** Aus dem Obigen ergibt sich $ y = w = \ sigma (w_0x + w_1) = P (t = 1 | x) $. ** ** **

(wichtig): In P218 wird geschätzt, dass die Parameter $ w_0 $ und $ w_1 $ dieses Modells höchstwahrscheinlich mit den Insektendaten übereinstimmen. "Unter der Annahme, dass aus diesem Modell Insektendaten generiert wurden, werden wir die wahrscheinlichsten (wahrscheinlich hohen) Parameter finden."

In der vorherigen Theorie haben wir T = [0,0,0,1] betrachtet, aber dieses Mal werden wir es betrachten, damit es auf alle Fälle angewendet werden kann.

P218

Wenn es nur ein Datenelement gibt und t = 1 für ein bestimmtes Gewicht x ist, ist die Wahrscheinlichkeit, dass t = 1 aus dem Modell generiert wird, der Ausgabewert y des logistischen Regressionsmodells selbst.

Es gibt eine Beschreibung, aber was bedeutet das? iOS の画像 (1).jpg

Dies ist das Bild auf der vorherigen Seite. ** Wenn man dies betrachtet, kann das logistische Regressionsmodell als Wahrscheinlichkeit behandelt werden, da das lineare Modell (dieser lineare Ausdruck ist ein linearer Ausdruck, der den Wert y aus dem Eingabewert x erhält) durch die Sigmoidfunktion im Bereich von 1 bis 0 zerquetscht wird. es kann. ** ** **

Also hier y = (Wahrscheinlichkeit, dass t = 1) 1-y = (Wahrscheinlichkeit, dass t = 0) Behandeln wie.

Das Modell, das dies verallgemeinert, ist der Pfeil $ P(t|x)=y^t(1-y)^{1-t} $


Betrachten wir nun den Fall, in dem die Anzahl der Daten N beträgt Wo ich im vorherigen Abschnitt über T = [0,0,0,1] nachgedacht habe X = [$ x_0, x_1, ..., x_n ] T = [ t_0, t_1, ..., t_n $] Betrachten Sie das Muster (T = [0,0,0,1,1,1,0,1, ... N Teile]).

Wie im vorherigen Abschnitt ist das, was wir als [$ 0,8 * 0,8 * 0,8 * 0,2 = 0,104 $] gefunden haben, auch in der verallgemeinerten Formel am wahrscheinlichsten, wenn T = [0,0,0,1] ist. Schätzungen sollten berechnet werden, daher sollten alle Muster von $ x_0 bis x_n $ multipliziert werden.

Dies ist, was P219 sagt: "Da alle Daten mit der Generierungswahrscheinlichkeit jeder Daten multipliziert werden können, wird es wie Gleichung (6-15). Dies ist die Wahrscheinlichkeit."

Dies ist der Teil von.

Gleichung (6-15) lautet also wie folgt (weil sie alle multipliziert werden) $ 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} $ ** _, was die Wahrscheinlichkeit darstellt. (Das Chevron-Diagramm auf Seite 214) _ ** </ font>

Wenn Sie den logarithmischen Wert wie zuvor verwenden und die Formel vereinfachen, beträgt die logarithmische Wahrscheinlichkeit ↓ $ logP(T|X)=\sum_{n=0}^{N-1}[\{t_nlogy_n+(1-t_n)log(1-y_n)}]\hspace{70pt}(6-16) $

** Wie beim letzten Mal können Sie dennoch den mit dem Maximalwert dieser Wahrscheinlichkeit auswählen ($ w_0 und w_1 $ werden erhalten, da dies die maximale Wahrscheinlichkeit ist) **

Dies wird mit -1 multipliziert und auf den Kopf gestellt und durch N geteilt wird als "durchschnittlicher Kreuzungsentropiefehler ($ E (n) $)" bezeichnet.
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)

** Berechnen Sie danach und da $ w_0, w_1 $ bei diesem Mindestwert ein geeignetes w ist, setzen Sie $ w_0 = 1, w_1 = 1 $ in die Analyse ein. Überprüfen Sie die Steigung durch teilweise Differenzierung von und fahren Sie mit der Steigung mit der kleineren Steigung fort. OK! ** </ font>

Klassifizierung der 2D-Eingabe-2-Klasse (P228)

Bei Insekten gibt es eine Eingabe von Gewicht ($ x_1 ) und Körperlänge ( x_2 $) (zweidimensionale Eingabe) und unterscheidet zwischen Mann und Frau (zwei Klassen).

1ofK-Codierung

Wie man ausdrückt, wo in jeder Klasse es klassifiziert ist iOS の画像 (2).jpg

Logistisches Regressionsmodell (2D-Eingabe ver.)

Bis zum letzten Mal habe ich über eindimensionale Eingaben nachgedacht, daher werde ich diesmal über zweidimensionale Eingaben nachdenken.

Betrachten Sie P232 $ y = \ sigma (a) $ $ y=\sigma(a) $ Bis zum letzten Mal wurde dieses a als $ w_ox + w_1 $ ausgedrückt, was eine eindimensionale Eingabe war, aber betrachten Sie dies als eine zweidimensionale Eingabe. In diesem Fall ändert sich der Teil von a = von [$ a = w_0x + w_1 ] zu → [ a = w_0x_0 + w_1x_1 + w_2 $].

Ähnlich wie beim vorherigen Mal wird die Wahrscheinlichkeit (y) von t = 1 oder = 0 erhalten, indem diese durch die Sigmoidfunktion geleitet wird. (Diesmal ist die Wahrscheinlichkeit, wenn t = 0 ist, y und die Wahrscheinlichkeit, wenn t = 1 ist, 1-y)

Deshalb, P(t=0|x)=\sigma(a)=y P(t=1|x)=\sigma(a)=1-y Es wird ein Modell.

Da das verallgemeinerte Modell wie zuvor $ P (t | x) = y ^ t (1-y) ^ {1-t} $ ist, ist die Verlustfunktion zum Ermitteln des durchschnittlichen Kreuzentropiefehlers davon $ E(w)=logP(T|X)=\sum_{n=0}^{N-1}[\{t_nlogy_n+(1-t_n)log(1-y_n)}]\hspace{70pt} $ Kann so wie es ist verwendet werden.

** Geeignete Werte $ w_0, w_1, w_2 $ können erhalten werden, indem der Minimalwert dieses Schnittpunktentropiefehlers durch die Gradientenmethode ermittelt wird. ** ** **

Verwenden Sie schließlich die berechneten $ w_0, w_1, w_2 $ und setzen Sie diesen Wert in w von $ y = \ sigma (a) $ ($ a = w_0x_0 + w_1x_1 + w_2 $), den Fehler Sie können mit wenigen ein Klassifizierungsmodell erstellen.

Das Diagramm des erstellten Klassifizierungsmodells ist das Diagramm auf Seite 238, und die Grenzlinie ist die Grenzlinie, die jede Klasse trennt.

2D-Eingabe 3 Klassenklassifizierung

Betrachten wir von nun an den Fall, in dem die Eingabe zweidimensional bleibt, aber drei Klassen zu klassifizieren sind. Dies kann der Klassifizierung von 3 oder mehr Klassen entsprechen, indem die Softmax-Funktion anstelle der Sigmoid-Funktion in die Ausgabe des Modells eingeführt wird.

Betrachten Sie beispielsweise im Fall eines Klassifizierungsproblems mit drei Klassen die Gesamteingabe $ a_k (k = 0,1,2) , die den drei Klassen entspricht. $ a_k=w_{k0}x_0+w_{k1}x_1+w_{k2}\hspace{20pt}(k=0,1,2)\hspace{40pt}(6-40) $$

Derzeit gibt es zwei Eingaben, $ X = [x_0, x_1] $, aber ich werde einen Dummy-Eingabewert $ x_2 $ festlegen, der dort immer 1 nimmt. Dann $ 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) $ Wird sein.

Geben Sie also wie beim letzten Mal $ a_k $ in die Softmax-Funktion ein, entsprechend der Prozedur, die Sie in die Sigmoid-Funktion eingegeben haben. $ Softmax-Funktion = y_i = \ frac {exp (x_i)} {\ sum_ {j = 0} ^ {K-1} exp (x_j)} $ Dieses x ändert sich in die Summe $ a_k , daher ist das diesmal verwendete Modell $ y_i=\frac{exp(a_k)}{\sum_{k=0}^{K-1}exp(a_k)} $$ Wird sein. Setzen Sie den Summenteil der Unterseite als u u=exp(a_0)+exp(a_1)+exp(a_2) Die damit erhaltene Formel lautet

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

Wird sein.

Danach werde ich das Gleiche tun wie im vorherigen Abschnitt ・ Erstellen Sie für jede Wahrscheinlichkeit eine verallgemeinerte Formel. $ P (t | x) = y_0 ^ {t_0} y_1 ^ {t_1} y_2 ^ {t_2} $ (P242) ・ Und N, ich werde alles multiplizieren, um die Wahrscheinlichkeit zu ermitteln, dass diese Daten generiert wurden. ・ Schließlich wird die logarithmische Wahrscheinlichkeit genommen, um den Minimalwert zu finden, und ein geeignetes w wird abgeleitet. - Erstellen Sie ein Modell für die Klassifizierung mit diesem w (Sie können einen Ausdruck erhalten, der die Klassifizierungslinie anzeigen kann).

** Erstellen Sie ein Modell für die Klassifizierung unter Verwendung von Trainingsdaten. Wenn Sie Testdaten in dieses Modell einfügen, wird die Klassifizierung ausgegeben. **

Recommended Posts