[PYTHON] Ich habe versucht, mich über MCMC zu organisieren.

Über die Markov-Ketten-Monte-Carlo-Methode (MCMC-Methode) ・ Was ist die MCMC-Methode? -MCMC-Methodentypen und Python-Module Ich habe versucht zusammenzufassen.

0. Was ist die Markov-Ketten-Monte-Carlo-Methode (MCMC-Methode)?

Durch die Verwendung der Markov-Kette wird die Monte-Carlo-Methode gestärkt.

Ich werde später ausführlich schreiben, Weil die Monte-Carlo-Methode eine wirklich zufällige Stichprobe ist ・ Die Berechnungskosten sind hoch ・ Die Genauigkeit verbessert sich nicht Es gibt ein Problem. Daher ist die Markov-Ketten-Monte-Carlo-Methode Dieses Problem wurde durch Verwendung der Markov-Kette verbessert.

1. 1. Was ist die Monte-Carlo-Methode?

"Einführung in die Monte-Carlo-Methode von Python" http://aidiary.hatenablog.com/entry/20140620/1403272044 Die Monte-Carlo-Methode wird von Anfang an sorgfältig erklärt, Darüber hinaus wird eine Python-Implementierung mitgeliefert.

Sie können die Theorie mit sehr detaillierten Erklärungen lernen, während Sie diesen Betrag ausprobieren. Ich habe das Originalbuch, aber es ist besser, diese Seite zu lesen Ich denke, es sollte viel weniger mühsam und leicht zu verstehen sein.

Es gibt einige Arten von Monte-Carlo-Methoden. ・ Inverse Konvertierungsmethode ・ Box-Muller-Methode ・ Akzeptanz-Ablehnungsmethode ・ Priority Sampling

2. Was ist die Markov-Kette?

Grob, um einen probabilistischen Übergang in Zeitreihen zu machen Es führt Matrixoperationen aus. (Nicht genau ...) Sie können es sich auch als einen Automaten vorstellen, der wahrscheinlich übergeht.

"Introduction to Markov chain : simplified!" http://www.analyticsvidhya.com/…/07/markov-chain-simplified/ Obwohl es auf Englisch ist, ist es ein guter Artikel.

3. 3. Markov-Ketten-Monte-Carlo-Methode (MCMC-Methode)

1) Was ist die MCMC-Methode?

Weil die Monte-Carlo-Methode eine wirklich zufällige Stichprobe ist ・ Die Berechnungskosten sind hoch ・ Die Genauigkeit verbessert sich nicht Es gibt ein Problem.

Die Markov-Ketten-Monte-Carlo-Methode ist Durch Probenahme mit der Markov-Kette als stetige Verteilung, Dies ist eine Methode, die die oben genannten Probleme verbessert.

2) MCMC-Methodenalgorithmus

Schritt 1. Bestimmen Sie den Anfangspunkt Schritt 2. Bestimmen Sie die Verteilung für die nächste Probenahme durch die Markov-Kette

4. Übe mit Python

1) Erste MCMC (Metropolis Hastings-Methode)

https://tatsyblog.wordpress.com/

Von der Seite des Lesens des Quellcodes Ich habe das Gefühl, dass MCMC verstehen kann.

Die Methode von Metropolis Hasting basiert auf der natürlichsten Idee Es ist eine entworfene orthodoxe Methode. Mit einer gewissen Wahrscheinlichkeit, wenn man zur niedrigeren Wahrscheinlichkeit geht Es ist ein Stopper, um den Übergang der stetigen Verteilung zu verhindern.

2) Arten der MCMC-Methode

Andere, ・ Gibbs-Probenahmemethode ・ Hybrid-Monte-Carlo-Methode ・ Schnittprobenmethode Wird vorgestellt, siehe aber ↑ Artikel.

3) Python-Modul

↑ Der Link verwendet das mcmc-Modul. Daneben scheint das pymc3-Modul auch häufig verwendet zu werden. http://qiita.com/kenmatsu4/items/a0c703762a2429e21793

5. Das theoretische System lernen

Von Dr. Yukito Iba, Institut für Statistische Mathematik MCMC-Vortrag (https://www.youtube.com/watch?v=-H28H1unn0M)

Von der stationären Verteilung über die Art der Markov-Kette bis hin zu den physikalischen Aspekten Die Erklärung ist einfach und leicht zu verstehen. Wenn Sie sich das ansehen, können Sie die Grundlagen von MCMC leicht verstehen.

6. Schließlich

Die MCMC-Methode ist ein großartiger Kommentar zu einem kürzlich besprochenen Buch [Besonderheit] Support-Seite für Bayesianisches Denken und MCMC-freie Software https://sites.google.com/site/iwanamidatascience/vol1/support_tokushu Es kann genug sein, um zu sehen.

Recommended Posts

Ich habe versucht, mich über MCMC zu organisieren.
Ich habe versucht zu debuggen.
Ich habe versucht, PredNet zu lernen
Ich habe versucht, PCANet zu implementieren
Ich habe versucht, Pylint vorzustellen
Ich habe versucht, SparseMatrix zusammenzufassen
jupyter ich habe es berührt
Ich habe versucht, StarGAN (1) zu implementieren.
Ich habe versucht, die Umrisse von Big Gorilla herauszufinden
Ich habe versucht, Deep VQE zu implementieren
Ich habe versucht, eine Quip-API zu erstellen
Ich habe versucht, Python zu berühren (Installation)
Ich habe versucht, eine kontroverse Validierung zu implementieren
Ich habe Watson Voice Authentication (Speech to Text) ausprobiert.
[Python] Ich habe versucht, Tweets über Corona mit WordCloud zu visualisieren
Ich habe Teslas API berührt
Ich habe versucht, Realness GAN zu implementieren
Ich habe versucht, den Ball zu bewegen
Ich habe versucht, den Abschnitt zu schätzen.
Ich habe versucht, Pepper über Ereignisinformationen und Mitgliederinformationen sprechen zu lassen
Ich habe versucht, einen Linebot zu erstellen (Implementierung)
Ich habe versucht, Autoencoder mit TensorFlow zu implementieren
Ich habe versucht, den Befehl umask zusammenzufassen
Ich habe versucht, Permutation in Python zu implementieren
Ich habe versucht, einen Linebot zu erstellen (Vorbereitung)
Ich habe versucht, AutoEncoder mit TensorFlow zu visualisieren
Ich versuchte das Weckwort zu erkennen
Ich habe versucht, mit Hy anzufangen
Ich habe versucht, PLSA in Python 2 zu implementieren
Python3-Standardeingabe habe ich versucht zusammenzufassen
Ich habe versucht, Text mit TensorFlow zu klassifizieren
Ich habe versucht, die grafische Modellierung zusammenzufassen.
Ich habe versucht, der CPython-Implementierung ein Post-Inkrement hinzuzufügen
Ich habe versucht, ADALINE in Python zu implementieren
Ich habe versucht, Optuna die Nummer lösen zu lassen
Ich habe versucht, das Umfangsverhältnis π probabilistisch abzuschätzen
Ich habe versucht, die COTOHA-API zu berühren
Ich habe versucht, CVAE mit PyTorch zu implementieren
Ich habe eine Web-API erstellt
Ich habe versucht, TSP mit QAOA zu lösen
[Python] Ich habe versucht, TF-IDF stetig zu berechnen
Ich habe versucht, Python zu berühren (grundlegende Syntax)
Ich versuchte mein Bestes, um zu Lasso zurückzukehren
Ich habe versucht, Ansibles Module-Linux-Edition zusammenzufassen
Ich habe versucht, eine Blockchain zu implementieren, die tatsächlich mit ungefähr 170 Zeilen funktioniert
Ich habe versucht zu kratzen
Ich habe PyQ ausprobiert
Ich habe versucht, die logische Denkweise über Objektorientierung zusammenzufassen.
Ich habe es mit Papiermühle versucht
Ich habe versucht, Django-Slack
Ich habe es mit Django versucht
Ich habe es mit Spleeter versucht
Ich habe es mit cgo versucht
Ich habe versucht, nächstes Jahr mit AI vorherzusagen
Ich habe versucht, eine Super-Resolution-Methode / ESPCN zu erstellen
Ich habe versucht, die Blasensortierung nach Sprache zu programmieren
Ich habe Web Scraping versucht, um die Texte zu analysieren.