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 iZ iZ iZ =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