[PYTHON] Fasst jede der Markov-Ketten- und Monte-Carlo-Methoden zusammen

Einführung

Ich lerne gerade etwas über Bayesianische Statistiken. Darunter werde ich die Markov-Ketten-Monte-Carlo-Methode zusammenfassen. Als Ausgangspunkt gibt Ihnen dieser Artikel einen Überblick über die Markov-Kette und die Monte-Carlo-Methode.

Nächster Artikel

Hier ist das Buch, auf das ich mich diesmal bezog.

Was ist die Markov-Ketten-Monte-Carlo-Methode?

Betrachten Sie in der Bayes'schen Inferenz das Wahrscheinlichkeitsmodell $ P (X, Z) $, wobei $ X $ die beobachteten Daten und $ Z $ die Menge nicht beobachteter Variablen wie Parameter und latenter Variablen sind. Zu diesem Zeitpunkt ist es notwendig, die posteriore Verteilung von $ P (Z | X) $ zu berechnen, um bestimmte Probleme wie Lernen und Vorhersage zu lösen. Übrigens gibt es das Problem, dass diese hintere Verteilung nicht analytisch gelöst werden kann oder dass das numerische Lösen einen großen Rechenaufwand erfordert. Daher werde ich versuchen, die Eigenschaften dieser gewünschten Verteilung zu untersuchen, indem ich mehrere Stichproben aus $ P (Z | X) $ erhalte. Als diese Beispielringmethode gibt es die ** Markov-Ketten-Monte-Carlo-Methode **.

Um jeden Begriff kurz zu erklären,

Es wird sein. Nachfolgend finden Sie jeweils eine kurze Zusammenfassung.

Monte-Carlo-Methoden

Dies ist eine Methode, um eine ungefähre Lösung durch Versuch unter Verwendung von Zufallszahlen zu finden. Ein häufiges Beispiel für eine Erklärung ist eine Näherungslösung mit einem Umfangsverhältnis von $ π $. Stellen Sie sich einen Kreis mit einem Radius von $ R $ und einem Quadrat vor, das ihn bedeckt.

image.png

Wenn zu diesem Zeitpunkt die Fläche des Kreises $ So $ und die Fläche des Quadrats minus der Fläche des Kreises $ Ss $ ist,

So = πR^2\\
Ss = 4R^2-πR^2\\

Kann ausgedrückt werden als. Fügen Sie nun diese beiden Formeln hinzu und drücken Sie $ π $ mit $ So $ und $ Ss $ aus.

π = \frac {4So}{So + Ss}

Es wird sein. Ändern wir nun den Radius in $ 1 $. Durch Generieren einer Zufallszahl im Intervall $ [0,1] $ wird die Wahrscheinlichkeit berechnet, $ 1 $ zu werden, wenn es sich innerhalb des Kreises befindet, und $ 0 $, wenn es sich außerhalb des Kreises befindet. Implementieren Sie in Python als Beispiel.

import random
inner =0
for i in range(1000000):
    x, y = random.random(), random.random()
    if x**2 + y**2 < 1:
        inner +=1
print (inner * 4/1000000)

Es wurde $ 3.141072 $. Es stellt sich heraus, dass der Wert nahe bei 3,1415 $ liegt. Ich habe die Monte-Carlo-Methode bestätigt, die eine Approximation durch Zufallszahlen durchführt.

Markov-Kette

Die Markov-Kette bedeutet, dass der nächste Zustand nur durch den vorherigen Zustand bestimmt wird. Wenn Sie die schrittweise Formel kennen, die Sie in der Mathematik der High School lernen, sollten Sie darüber nachdenken. Es ist schwer, sich ein tatsächliches Beispiel vorzustellen, das vom vorherigen Status bestimmt wird, aber hier ist ein Beispiel, das in einem Lehrbuch oder einer Webseite zu sehen ist.

Es gibt kein Ende, es zu erhöhen.

Betrachten Sie nun ein Beispiel.

Problem mit der Krawatte: Eine High School bietet offiziell drei Arten von Uniformbindungen an. Zhu, grün und blau. Angenommen, es gibt 100 Erstklässler. Es ist empirisch bekannt, dass am ersten Tag rote, grüne und blaue Krawatten mit einer Wahrscheinlichkeit von 0,6,0,25,0,15 $ getragen werden. ** Die Schüler dieser High School entscheiden das Krawattenmuster für den Tag nur anhand des am Vortag gepressten Krawattenmusters. ** ** ** Die Wahrscheinlichkeit ist unten gezeigt. Wie hoch ist nun die Wahrscheinlichkeit, jede Farbe einen Tag später oder zehn Tage später zu tragen?

Tabelle Am Tag: Zhu Am Tag: Grün Am Tag: Blau
Am Tag zuvor: Zhu 0.3 0.3 0.4
Am Tag zuvor: grün 0.1 0.5 0.4
Am Tag zuvor: blau 0.2 0.6 0.2

Die Wahrscheinlichkeitsvariable, die das Muster der Bindung am $ t $ Tag darstellt, sei $ X ^ {t} $ unter Verwendung des Index $ t (= 1, ...., T) $. Eine stochastische Variable, die sich im Laufe der Zeit ändert, wird als ** stochastischer Prozess ** bezeichnet. Der allgemeine stochastische Prozess ist

P(X^t|X^{t-1},・ ・ ・,X^1)

Es ist eine bedingte Wahrscheinlichkeit, die auf den Umständen davor basiert. In diesem Fall jedoch

P(X^t|X^{t-1},・ ・ ・,X^1) = P(X^t|X^{t-1})

Der Wahrscheinlichkeitsprozess, der nur von der Wahrscheinlichkeit des Vortages beeinflusst wird, wird als Markov-Kette bezeichnet.

Die bedingte Wahrscheinlichkeit, die diese Markov-Kette definiert, kann wie folgt ausgedrückt werden. Dies wird als ** Übergangskern oder Übergangskernel ** bezeichnet.


{\bf{P}}=\begin{pmatrix} 0.3 & 0.3 & 0.4 \\ 
0.1 & 0.5 & 0.4 \\
 0.2 & 0.6 & 0.2 \end{pmatrix} 

Konvergenz zu einer stetigen Verteilung

Lassen Sie uns nun die Wahrscheinlichkeitsverteilung nach einigen Tagen ermitteln. Wenn $ p_Zhu ^ {t} = p (X ^ {t} = Zhu) $ geschrieben wird, ist die Wahrscheinlichkeitsverteilung von $ X ^ {t} $ $ \ textbf p ^ {t} = (p_1 ^ {t}) , p_2 ^ {t}, p_3 ^ {t}) $ und $ \ textbf p ^ {1} = (0,6,0,25,0,15) $. Die Wahrscheinlichkeit, am zweiten Tag eine zinnoberrote Krawatte zu tragen, ist $ \ Textbf p (X ^ 2 = Zhu) = 0,3 × 0,6 + 0,1 × 0,25 + 0,2 × 0,15 = 0,235 $ Es wird sein.

Sie kann wie folgt berechnet werden, indem die Berechnung mit derselben Idee wiederholt wird. image.png

Sie können sehen, dass es nach dem 4. Tag keine Änderung mehr gibt. Die Antwort, die ich zuvor erwähnt habe, lautet: "Nach dem 4. Tag ist es bei Zinnoberrot stabil: grün: blau = 1/6: 1/2: 1/3".

Die Wahrscheinlichkeitsverteilung $ \ bf p $, die sich zu diesem Zeitpunkt nicht ändert, wird als ** stetige Verteilung oder invariante Verteilung ** bezeichnet. Der Zeitraum bis zum Ersetzen dieser stetigen Verteilung wird als ** Einbrennzeit ** bezeichnet.

Detaillierte Ausgleichsbedingungen (Fusion der Markov-Kette und Monte-Carlo-Methode)

Der Zweck dieses Bindungsproblems bestand darin, den endgültigen Verschleißzustand, den stationären Zustand, zu finden. Dieses Mal möchte ich jedoch bei klarer posteriorer Verteilung eine Zufallszahl erhalten, die der posterioren Verteilung entspricht. Mit anderen Worten, erwägen Sie, einen Übergangskern so zu gestalten, dass die hintere Verteilung zu einer stationären Verteilung wird. Auf diese Weise wird für die Verteilung, die Sie abtasten möchten, die Methode zum Aufbau der Markov-Kette mit der ** konstanten Verteilung ** als ** Markov-Ketten-Monte-Carlo-Methode ** (allgemein als MCMC-Methode bekannt) bezeichnet.

Bei der MCMC-Methode ist die stationäre Verteilung bekannt, aber der Übergangskern ist unbekannt (im Gegensatz zum Bindungsproblem).

Hier verwenden wir die Idee der ** detaillierten Gleichgewichtsbedingung ** als Bedingung für die Konvergenz der Markov-Kette zu einer stetigen Verteilung. Für die Wahrscheinlichkeitsvariablen $ θ und θ '$ bezieht sich dies auf die folgende Formel.

f(θ'|θ)f(θ) = f(θ|θ')f(θ')

Im Fall des zuvor erwähnten Krawattenproblems

p(Zhu|Grün) ×\frac {1}{6} = p(Grün|Zhu) ×\frac {1}{2}

Es wird sein. f(θ'|θ)Oderf(θ|θ')Ist der Übergangskern.

image.png

Hier finden Sie eine Übersicht über die detaillierten Ausgleichsbedingungen. Der Punkt $ θ $ sei nahe dem Zentrum der Verteilung und der Punkt $ θ '$ sei die Peripherie der Verteilung. Zu diesem Zeitpunkt bedeuten die detaillierten Ausgleichsbedingungen

f(θ'):f(θ) = 1 :Wenn ein\\ 
f(θ|θ'):f(θ'|θ) = a :1

Es wird sein.

Die Bewegung von $ θ '$ → $ θ $ ist $ a $ wahrscheinlicher als die Bewegung von $ θ $ → $ θ' $. Mit anderen Worten bedeutet dies, dass es einfach ist, sich in der Nähe des Zentrums zu bewegen.

Wenn diese detaillierte Gleichgewichtsbedingung gebrochen ist, bedeutet dies, dass die Zufallszahlenfolge schließlich in die Mitte gezogen wird, selbst wenn der Anfangszustand zufällig genommen wird.

Am Ende

Nachdem ich die Markov-Kette bzw. die Monte-Carlo-Methode zusammengefasst hatte, fasste ich das Bindungsproblem als Beispiel für die Markov-Ketten-Monte-Carlo-Methode zusammen. Nachdem die Gliederung vollständig ist, möchte ich mich mit der Erklärung des Algorithmus befassen, der diese MCMC-Methode beim nächsten Mal verwendet.

Der nächste Artikel.

Verstehen Sie die Metropolitan Hasting-Methode (eine der Methoden in der Markov-Ketten-Monte-Carlo-Methode) mit der Implementierung https://qiita.com/Fumio-eisan/items/6e8bad9977e945ddb2fc

Es wird auch unten als Blog beschrieben. Die Rolle besteht darin, detaillierter zusammenzufassen.

https://fumio-eisan.hatenablog.com/

Recommended Posts

Fasst jede der Markov-Ketten- und Monte-Carlo-Methoden zusammen
PRML Kapitel 11 Implementierung der Markov-Kette Monte Carlo Python
Die erste Markov-Ketten-Monte-Carlo-Methode von PyStan
Verstehen Sie die Metropolitan Hasting-Methode (eine der Methoden in der Markov-Ketten-Monte-Carlo-Methode) mit der Implementierung
[Statistik] Ich werde die Abtastung nach der Markov-Ketten-Monte-Carlo-Methode (MCMC) mit Animation erläutern.
Wie Python-Klassen und magische Methoden funktionieren.
Monte-Carlo-Methode