Ich habe die Erwartungen für das Studium der Bayes'schen Statistik überprüft.
Ich bezog mich auf das folgende Buch.
[Einführung in das maschinelle Lernen durch die Bayes'sche Inferenz der Startup-Serie des maschinellen Lernens](https://www.amazon.co.jp/%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92] % E3% 82% B9% E3% 82% BF% E3% 83% BC% E3% 83% 88% E3% 82% A2% E3% 83% 83% E3% 83% 97% E3% 82% B7% E3 % 83% AA% E3% 83% BC% E3% 82% BA-% E3% 83% 99% E3% 82% A4% E3% 82% BA% E6% 8E% A8% E8% AB% 96% E3% 81% AB% E3% 82% 88% E3% 82% 8B% E6% A9% 9F% E6% A2% B0% E5% AD% A6% E7% BF% 92% E5% 85% A5% E9% 96% 80-KS% E6% 83% 85% E5% A0% B1% E7% A7% 91% E5% AD% A6% E5% B0% 82% E9% 96% 80% E6% 9B% B8-% E9% A0 % 88% E5% B1% B1-% E6% 95% A6% E5% BF% 97 / dp / 4061538322)
[Mustererkennung und maschinelles Lernen (statistische Vorhersage nach der Bayes'schen Theorie)](https://www.amazon.co.jp/%E3%83%91%E3%82%BF%E3%83%BC%E3 % 83% B3% E8% AA% 8D% E8% AD% 98% E3% 81% A8% E6% A9% 9F% E6% A2% B0% E5% AD% A6% E7% BF% 92-% E4% B8% 8B-% E3% 83% 99% E3% 82% A4% E3% 82% BA% E7% 90% 86% E8% AB% 96% E3% 81% AB% E3% 82% 88% E3% 82 % 8B% E7% B5% B1% E8% A8% 88% E7% 9A% 84% E4% BA% 88% E6% B8% AC-CM-% E3% 83% 93% E3% 82% B7% E3% 83% A7% E3% 83% 83% E3% 83% 97 / dp / 4621061240)
Die Erwartung ist der Durchschnittswert von $ f (x) $ unter der Wahrscheinlichkeitsverteilung $ p (x) $ einer Funktion $ f (x) $. Schreiben Sie als Notation $ E [f] $.
In der diskreten Verteilung wird es wie folgt ausgedrückt.
E[f] = \sum_x p(x)f(x)
Andererseits können kontinuierliche Variablen als Integrale ausgedrückt werden.
E[f] = \int p(x)f(x)dx
Der folgende erwartete Wert für die Wahrscheinlichkeitsverteilung $ p (x) $ wird als Entropie bezeichnet.
\begin{align}
H[p(x)]& = - \sum_x p(x) ln(p(x))\\
\end{align}
Wenn die Menge der unabhängig von der Verteilung $ p (x) $ extrahierten Stichproben $ \ bf {z} ^ {(n)} (n = 1, ..., N) $ ist, sind die erwarteten Werte wie folgt. Kann als angenähert werden
E[f] = \frac{1}{L} \sum_{n=1}^{N}f(\bf{z}^{(N)})
Es wird sein.
Betrachten wir hier ein Beispiel. Beispiel Betrachten Sie eine diskrete Verteilung, so dass $ p (x = 1) = 0,3 und p (x = 1) = 0,7 $.
Nach der Definition von Entropie ist Entropie
\begin{align}
H[p(x)]& = - \sum_x p(x) ln(p(x))\\
&=-(p(x=1)lnp(x=1) + p(x=0)lnp(x=0) )\\
&= -(\frac{3}{10}ln\frac{3}{10}+\frac{7}{10}ln\frac{7}{10})\\
&=0.610
\end{align}
Es wird sein.
Berechnen wir nun, wenn wir dies mit einer endlichen Summe approximieren. Die Methode random.uniform
gibt einen zufälligen Wert zwischen 0 und 1 und $ x = 1 $ oder $ x = 2 $ aus, je nachdem, ob er größer als $ p (x = 1) = 0,3 $ ist. Ich versuche festzustellen, ob es ist.
Und die Häufigkeit, mit der $ x = 1,2 $ ist, wird von cnt
gezählt.
Das Programm wird wie folgt sein. Ich habe 1000 mal als Versuch berechnet.
cnt = []
proba_1 =[]
proba_2 =[]
time = 1000
a = random.uniform(0,1)
exp =[]
for i in range(time):
a = random.uniform(0,1)
if a > p1:
cnt = np.append(cnt,1)
else:
cnt = np.append(cnt, 0)
proba_1 = np.append(proba_1, (i+1-sum(cnt))/(i+1))
proba_2 = np.append(proba_2, sum(cnt)/(i+1))
exp = np.append(exp, -(((i+1-sum(cnt))*math.log(p1))+((sum(cnt))*math.log(p2)))/(i+1))
plt.xlabel('time')
plt.ylabel('probability')
plt.plot(time_plot, proba_2, label="p2")
plt.plot(time_plot, proba_1, label="p1")
plt.legend()
Es wurde gefunden, dass es nach ungefähr 100 Mal zu $ p (x = 1) = 0,3 und p (x = 2) = 0,7 $ konvergiert.
Es wurde gefunden, dass dies auch gegen 0,61 des erwarteten Wertes (= Entropie) konvergierte, der ursprünglich nach 100-mal erhalten wurde.
Es wurde bestätigt, dass es bei dieser Annäherungsmethode für den erwarteten Wert kein Problem gibt.
Diesmal war es ein sehr einfaches Beispiel, daher war es einfach zu berechnen und zu bestätigen. Bei tatsächlichen Problemen ist es jedoch oft schwierig, den erwarteten Wert analytisch zu erhalten. Daher halte ich es für nützlich, sich daran zu erinnern, dass sich diese Monte-Carlo-Stichprobe annähert.
Der vollständige Text des Programms ist hier. https://github.com/Fumio-eisan/VI20200520
Recommended Posts