Markov Chain Monte Carlo

Werbung
Maschinelles
Lernen
Ziehen von Zufallszahlen,
Markovketten, MCMC
Ziehen von Zufallszahlen
Warum braucht man Zufallszahlen?
Physik: Simulation von Experimenten in Kern- und Teilchenphysik
Biologie: Evolution von Populationen, Genetik
Wirtschaft: Prognosen, Risikoabschätzung
Mathematik: Integration, Berechnung von Erwartungswerten
Computer: Tests von Programmen, Verschlüsselung,
stochastische Optimierungs- und Suchalgorithmen
Generell werden Zufallszahlen zur Untersuchung von Problemen benutzt, bei
denen das Ergebnis komplex (und nicht analytisch beschreibbar) von vielen
Parametern abhängt.
Die Grundidee bei der Integration ist: Sind xj unabhängige Realisierungen
von X~p(x), und existiert der Erwartungswert von f bzgl. X, so gilt:
E X ( f )   f ( x) p( x)dx 

n , fast sicher

1 n
f ( x) pˆ ( x)dx   f ( x j )
n j 1
pˆ ( x )
Seite
5/16/2016|
2
Dabei ist
die aus den xj konstruierte empirische, aus Punktmassen
der Größe 1/n bestehende Verteilung
Ziehen von Zufallszahlen
Wozu brauchen wir Zufallszahlen?
Normalisierung. Will man p(x|Daten) berechnen, so taucht in der BayesFormel ein hässlicher Nenner auf (die Normalisierungskonstante), der
meist nur numerisch integriert werden kann:
p( Daten | x) p( x)
p( Daten | x) p( x)
p( x | Daten) 

p( Daten)
 p( Daten | z) p( z)dz
Marginalisierung. Hat man eine gemeinsame Verteilung p(x,y|Daten)
gelernt, will man p(x|Daten) ausrechnen. Auch hier muss oft numerisch
integriert werden (z.B. in Bayes-Netzen: Der Posterior über die lokalen
Verteilungen (y) interessiert nicht, der Strukturposterior (x) sehr wohl).
p( x | Daten)   p( x, y | Daten)dy
Erwartungswerte. Oftmals interessiert gar nicht der gesamte Posterior
p(x|Daten), sondern nur Kenngrößen f, die aus der Verteilung von x
abgeleitet werden. D.h. es soll der Erwartungswert von f bezüglich
X|Daten berechnet werden (Bsp.: Erwartete Auszahlung bei LottoSystemtipps).
E X |Daten ( f )   f ( x) p( x | Daten) dx
Seite
5/16/2016|
3
Ziehen von Zufallszahlen
Wie generiert man uniform verteilte Zufallszahlen?
Echte Zufallszahlen erhält man natürlich nur aus wirklich stochastischen Prozessen,
wie z.B. radioaktiver Zerfall, Rauschen (Fernseher?!), Roulette, Lotto.
Für praktische Anwendungen sind echte Zufallszahlen meist unbrauchbar, da nicht
mit benötigter Schnelligkeit und in ausreichender Menge verfügbar.
Stattdessen generiert man mit dem Computer Pseudo-Zufallszahlen (es gibt viele
Algorithmen, die sich durch Effizienz und Güte der erzeugten Zahlen unterscheiden).
Eine einfache Möglichkeit ist die Verwendung eines
Linearen Kongruenzgenerators:
Wähle a,m ∊|N, 1<a<m, m groß
Wähle z0, 1 ≤ z0 ≤ m-1 , ggT(z0,m)=1
Berechne rekursiv zj = azj-1 (mod m)
Setze uj = zj/m
Für geeignete Wahlen von a,m und z0 ergeben sich brauchbare Sequenzen (uj) von
uniform verteilten Pseudozufallszahlen, die sehr schnell berechnet werden können.
Seite
5/16/2016|
4
Ziehen von Zufallszahlen: Inversionsmethode
Wie generiert man nicht-uniforme Zufallszahlen?
Inversionsmethode:
Sollen Zufallszahlen einer reellen Zufallsvariablen X erzeugt („realisiert“) werden,
deren Verteilungsfunktion F(x) = P(X ≤ x) bekannt ist, geht man folgendermaßen
vor:
Ziehe u~U=U[0,1]
Setze x = F-1(u) , wobei F-1(u) = inf {x | F(x) ≥ u }
Beweis: z.z. ist F-1(U) ~ X:
Es gilt F-1(u) ≤ x ⇔ u ≤ F(x)
(beachte: F ist rechtsstetig)
Daraus folgt
P(F-1(U)
≤ x) = P(U ≤ F(x)) = F(x)
Daher haben F-1(U) und X die gleiche
Verteilungsfunktion F.
Seite
5/16/2016|
5
P( x)   exp( x) , x  0
F ( x)  1  exp( x)
F 1 (u )   ln( 1  u ) / 
Ziehen von Zufallszahlen: Rejection Sampling
Wie kann man Zufallszahlen bei gegebener Dichtefunktion p(x) erzeugen?
Annahme: Es sei möglich, aus einer Verteilung q(x) zu ziehen, und es gebe ein
c mit c·q(x) > p(x) für alle x
Erzeuge ein Zufallselement x aus der Verteilung q.
Ziehe eine Zufallszahl u aus U[0,1]
Akzeptiere x, falls c·q(x)·u ≤ p(x), ansonsten „lehne x ab“ (rejection) und
wiederhole die ersten beiden Schritte
Seite
5/16/2016|
6
Ziehen von Zufallszahlen: Rejection Sampling
Die so realisierte Zufallsvariable ist verteilt wie p(x).
Beweis: Sei Y~q(x)
P(" x wird akzeptiert " , Y  x)
P(" x wird akzeptiert " )
 P(uc  q( x)  p( x), Y  x)
P(Y  x |" x wird akzeptiert " ) 
 P(u 

p( x)
| Y  x)  p(Y  x)
c  q ( x)
p( x)
 q( x)  p ( x) / c
c  q( x)
(hieraus folgt nebenbei, dass p(„x wird akzeptiert“) = 1/c ist)
Probleme:
Wie kann man sich eine brauchbare Verteilung q beschaffen?
In hochdimensionalen Räumen tendiert die Konstante c dazu, sehr groß
zu werden. Damit wird auch uc·q(x) i.d.R. sehr groß, d.h., die
Akzeptanzrate 1/c wird extrem gering, was das Verfahren dann
unpraktikabel macht.
Seite
5/16/2016|
7
Markovketten
Eine Sequenz (Xn), n=0,1,2,… von Zufallsvariablen heißt Markov-Kette (erster
Ordnung), wenn für alle n gilt
P(Xn+1| Xn) = P(Xn+1| Xn, Xn-1,…, X0)
Wir nehmen im Folgenden der Einfachheit halber an, der Wertebereich aller
Xn sei gleich der endlichen Menge Z. Die Markov-Kette (Xn) heißt
homogen, wenn die Übergangswahrscheinlichkeiten pij := P(Xn+1 = j | Xn=i) für
alle i, j unabhängig von n sind
irreduzibel, wenn jeder Zustand von jedem Zustand mit positiver Wahrscheinlichkeit
erreichbar ist:
Zu jedem Zustand i und j existiert ein n, so dass P( X n  j | X 0  i)  0
aperiodisch, wenn alle Zustände i die Periode 1 haben, wobei die Periode von i der
ggT aller Werte n ist, für die gilt:
P [ X n  i  X k  i für k  1,..., n  1 | X 0  i ]  0
ergodisch, wenn sie homogen, irreduzibel und aperiodisch ist.
Seite
5/16/2016|
8
Markovketten
Beispiel: Homogene Markovkette mit 3 Zuständen und Übergangswahrscheinlichkeiten.
p22 = 0.1
z2
p12 = 1
z1
Ist die dargestellte Kette irreduzibel? Ist sie aperiodisch?
Seite
5/16/2016|
9
z3
Markovketten
Beispiel: Homogene Markovkette mit 3 Zuständen und Übergangswahrscheinlichkeiten.
Schreibe die
Übergangswahrscheinlichkeiten als
Matrix P = (pij)i,j∊Z
Es gilt dann pij ≥ 0 für alle i,j und
Σjpij = 1 für alle i. Eine solche
Matrix heißt stochastisch (weil sie
einen stochastischen Prozess
beschreibt).
z2
z1
z3
Stelle die Zufallsvariable Xn durch
ihre Verteilung als Vektor
πn = (πnz) = (P(Xn=z))z∊Z dar.
Dann gilt:
πn =
Seite
5/16/2016|
10
π0
Pn
(ChapmanKolmogorovGleichung)
Markovketten
Für ergodische Markovketten gilt: Es gibt eine Zufallsvariable X
(bzw. ein π = (πz) = (P(X=z))z∊Z ) derart, dass für alle X0 bzw. π0 gilt:
lim X n  X
n
bzw.
lim  n  
n
und dieses π ist ein Fixpunkt von P, d.h.
 P 
mithin ist π dadurch eindeutig bestimmt. Man nennt π die stationäre Verteilung
der Markovkette.
Dies bedeutet: Führt man einen Zufallslauf (zt) über den Graphen der
Markovkette aus, so konvergiert die empirische Verteilung der zt gegen π. D.h.
man kann die Zustände zt (für hinreichend große t) als Realisierungen von X
auffassen.
Beweis: s. Tafel.
Seite
5/16/2016|
11
Markovketten: Detailed Balance Relation
Hat man auf einem endlichen (meist sehr großen) Zustandsraum Z eine
Zufallsvariable X gegeben, so versucht man, eine homogene, irreduzible und
aperiodische Markovkette (insbesondere eine Übergangsmatrix) zu basteln, welche
gegen X konvergiert. Hierzu genügt es, dass die Übergangsmatrix zusätzlich die
Detailed Balance Relation erfüllt:
 i pij   j p ji
für alle Zustände i,j
Beweis:
( P) j   i pij    j p ji   j  p ji   j
iZ
iZ
iZ
=1, da P stochastisch
Erzeugt man nun eine zufällige Folge von Zuständen gemäß der Übergangsmatrix
(pij), so nennt man diese Methode Markov Chain Monte Carlo (MCMC) Verfahren.
Seite
5/16/2016|
12
Markov Chain Monte Carlo
Sei X eine Zufallsvariable mit Werten in der endlichen Menge Z. Die Verteilung P(X),
aus der gezogen werden soll, sei gegeben.
Der Metropolis-Hastings Algorithmus benutzt eine Vorschlagsfunktion Q(z’|zt) welche
vom aktuellen Zustand zt abhängig ist, um die folgende Übergansmatrix zu
konstruieren:
 P( j )Q(i | j ) 
pij  Q( j | i )  min 1,

 P(i )Q( j | i ) 
für i≠j
Diese Übergangsmatrix efüllt die Detailed Balance Relation für π = (πz) = (P(z))z∊Z :
Fall 1: Sei
Dann ist
P( j )Q(i | j )
1
P(i )Q( j | i )
 P ( j )Q(i | j ) 
P ( j )Q (i | j )
pij i  Q( j | i )  min 1,

P
(
i
)

Q
(
j
|
i
)

 P (i )

P (i )Q( j | i )
 P (i )Q ( j | i ) 
 P ( j )Q(i | j ) 1
 P (i )Q ( j | i ) 
 P ( j )Q(i | j )  min 1,

P
(
j
)
Q
(
i
|
j
)


  j p ji  p ji j
Der zweite Fall ist symmetrisch zum ersten Fall
Seite
5/16/2016|
13
Markov Chain Monte Carlo
Somit sind hat die Übergangsmatrix (pij) die Verteilung P(X) als stationäre
Verteilung. Die Werte zt eines Zufallslaufs gemäß der Übergangsmatrix (pij) für
hinreichend große t (annähernd) Realisierungen der Zufallsvariablen X mit
Verteilung P(X). Allerdings sind die zt im Gegensatz zum Rejection Sampling
abhängig!
Metropolis-Hastings Algorithmus
Seite
5/16/2016|
14
•
Starte mit einem beliebigen Zustand z0
•
Gegeben ein zt , schlage ein z‘ aus der Verteilung Q(z‘| zt) vor
•
Ziehe eine Zufallszahl u aus U[0,1]
•
Akzeptiere ab, falls
•
Im Ablehnungsfalle setze zt+1=zt, ansonsten setze zt+1=z‘
P( z ' )Q( zt | z ' )
u
P( zt )Q( z ' | zt )
Markov Chain Monte Carlo
Bemerkung: Die bisherigen Überlegungen können in leicht modifizierter Form
auch für kontinuierliche Zufallsvariablen angestellt werden und
führen zum gleichen Ergebnis.
Beispiel. Verschiedene Vorschlagsfunktionen für verschiedene
Ausgangszustände x(t).
Seite
5/16/2016|
15
Markov Chain Monte Carlo
Beispiel. Konvergenz einer Markovkette. Die tatsächliche Verteilung ist als
Kurve eingezeichnet, die aus der Markovkette ermittelte empirische
Verteilung ist nach 100,500,1000 und 5000 Zügen dargestellt.
Seite
5/16/2016|
16
Markov Chain Monte Carlo
Konvergenzgeschwindigkeit
Ein großer Vorteil von MCMC-Methoden gegenüber Rejection Sampling (und
verwandten Verfahren) ist ihre höhere Akzeptanzwahrscheinlichkeit. Diese hängt
entscheidend von der Vorschlagsfunktion Q(i|j) ab. Könnte man z.B. aus Q(i|j)=P(i)
Vorschläge machen – was genau das Problem lösen würde, das durch MetropolisHastings angegangen werden soll – so wäre die Akzeptanzwahrscheinlichkeit
gleich
 P( j )Q(i | j ) 
 P( j ) P(i ) 
min 1,

min

1,
 1
 P(i )Q( j | i) 
 P(i ) P( j ) 
Ziel ist es daher, eine Vorschlagsfunktion zu wählen, die der tatsächlichen
Verteilung möglichst nahe kommt.
Im kontinuierlichen Fall nimmt man oft mangels Wissens als Vorschlagsfunktion
eine (multivariate) radialsymmetrische Normalverteilung mit Varianz σ2. Die Wahl
von σ2 ist kritisch, wie folgendes Beispiel zeigt:
Seite
5/16/2016|
17
Markov Chain Monte Carlo
Schlechte
Konvergenz:
Es werden nur Werte
in der engen
Umgebung des
aktuellen Zustands
vorgeschlagen. Die
Akzeptanzrate ist zwar
hoch, aber die
Sprungweite ist zu
gering. Das zweite
Maximum wird
(innerhalb der
endlichen Zahl der
Züge) nicht gefunen.
Gute Konvergenz
Seite
5/16/2016|
18
Schlechte
Konvergenz:
Es werden „absurde“,
weitab der
tatsächlichen
Wahrscheinlichkeitsmasse liegende
Werte vorgeschlagen.
Die Ablehnungsrate
ist sehr hoch, die
Kette bleibt of auf
einem Wert stehen.
Aufeinanderfolgende
Zustände sind stark
korreliert.
Markov Chain Monte Carlo. Beispiel
Manchmal ist es schon schwierig, gleichverteilt aus einer Menge M zu ziehen!
Angenommen, man will gleichverteilt aus der Menge aller gerichteten
azyklisen Graphen ziehen (z.B. wenn man die Struktur eines Bayesnetzes
nicht kennt, und deshalb die Struktur als Parameter numerisch ausintegrieren
will).
Wir brauchen eine Vorschlagsfunktion Q(Γ‘,Γ) für den Term
P (' | D )Q (t | ' , D )
P (t | D )Q(' | t , D)
Wichtig ist hierbei, dass der gesamte Suchraum in wenigen Zügen Γ→Γ‘
durchschritten werden kann (dann ist die Gefahr geringer, „am Rande der
Verteilung gefangen zu bleiben“, und die Korrelation der aufeinander
folgenden Samples nimmt mit schneller ab).
Idee: Zu gegebenem Γ definiere eine Menge M(Γ) von „benachbarten
Graphen“, deren Kardinalität |M(Γ)| relativ leicht bestimmt werden kann,
und aus der uniform gezogen werden kann. Ziehe nun Γ‘ uniform aus M(Γ)
und setze
Q(Γ‘,Γ)=1/ |M(Γ)|
Seite
5/16/2016|
19
Markov Chain Monte Carlo. Beispiel
Vorschlagsfunktion Q(Γ‘,Γ)
x
y
„MCMC Moves“
Γ
z
Mögliche Γ‘
xDie Nachbarschaft
y M(Γ) ist
x dann die Menge
x
y aller Graphen,
y
die durch
einen MCMC-Move aus Γ hervorgeht.
Die Schwierigkeit besteht in der Bestimmung von |M(Γ)|.
Seite
5/16/2016|
20
z
z
z
Kante löschen
Kante umdrehen
Kante einfügen
Nützliches Nebenprodukt: Simulated Annealing
Simulated Annealing: Stochastisches Verfahren zum Auffinden des
Maximums einer unbekannten Funktion (Wahrscheinlichkeitsdichte).
Verändere die Übergangsmatrix zeitlich so, dass (pij(t)) die stationäre Verteilung
~ P(X)λt hat für ein geeignetes λ>0. Die stationäre Verteilung versammelt ihre
Masse zusehends enger um das Maximum von P(X) herum.
Seite
5/16/2016|
21
Herunterladen