Maschinelles Lernen Maximum Likelihood-Schätzung Maximum a posteriori-Schätzung Bayessches Lernen - Wiederholung Satz von Bayes Posterior Likelihood Prior P( x | ) P( ) P( | x) P( x) Dabei sind x die Daten, ω ist eine Klasse/ eine Kategorie. Evidenz (a | ) P( | x) Erwartetes Risiko/Verlust/Loss von Aktion a bei gegebener Lossfunktion λ: R(a | x) Erwarteter Verlust bei gegebener Entscheidungsregel a: R(a) R(a( x) | x) p(x) dx C x Das Leben könnte so einfach sein… Optimale Entscheidungsregel (Bayes-Entscheidungsregel): Bei gegebenen Daten x wähle die Aktion a(x)=a, für die R(a,x) minimal wird. … isses aaber nicht: Prior und Likelihood müssen bekannt sein, aber genau das ist praktisch nie der Fall. Maschinelles Lernen beschäftigt sich zu einem großen Teil mit der Konstruktion geeigneter Prior und Likelihoods aus gegebenen Daten. Seite 2/14/2017| 2 MAP- und ML-Schätzung. Beispiel Wie konstruiert man aus gegebenen Daten geegnete Prior und Likelihoods? 1. Versuch: Benutze die empirischen Häufigkeiten PEmp(ωj) als Annäherung an die wahren Prior P(ωj) Benutze die empirischen Verteilungen PEmp(x|ωj) als Annäherung an die wahre Likelihood P(x|ωj). Daten (Beobachtungen) Empirische Verteilung(en) PEmp(x | Lachs) PEmp(x | Barsch) Das Auszählen der Klassenhäufigkeiten liefert meist eine gute Approximation der wahren Prior. Problem: Die empirische Verteilung ist meist eine schlechte Approximation der Likelihood. Es existieren zu wenige Beobachtungen, um insbesondere hochdimensionale Verteilungen genau zu schätzen. Seite 2/14/2017| 3 MAP- und ML-Schätzung. Beispiel Lösungsmöglichkeit: Lasse Wissen über die Art des Problems, d.h. über die Form der Likelihood, einfließen. Mache zusätzliche Modellannahmen. Beispiel: Daten D = {x1 , ... ,xk } , xj = Größe von Barsch j in mm D.h. die gesuchte Verteilung die der Zufallsvariable X = Länge eines Barsches. tatsächliche Dichte von X „gelernte“ Dichtefunktion empirische Dichtefunktion Histogram of b = a) density(x density(x = a) 180 200 N = 1000 Bandwidth = 2.363 Seite 2/14/2017| 4 220 150 140 0.03 160 160 170 180 180 190 200 200 N = 1000b Bandwidth = 2.363 Parameterschätzung: Mittelwert = 179 Standardabw. = 9.5 220 0.03 0.02 0.01 0.00 0.01 0.00 0 0.00 160 0.02 Density 0.02 5 0.01 10 Density Frequency 0.02 0.01 0.00 140 dnorm(seq(150, 210, length = 100), mean = 178, sd = 10) Modellannahme: X ist eine normalverteilte Zufallsvariable N(μ,σ2) 15 0.03 0.0320 0.04 density(x = a) 140 150 160 160 170 180 180 190 200 200 length = 100) N =seq(150, 1000 210, Bandwidth = 2.363 210 220 MAP- und ML-Schätzung Modellannahmen können helfen, eine Zufallsvariable (bzw. deren Verteilung) besser zu approximieren. Modellannahmen fließen meist durch die Wahl einer Modellklasse ein. Eine Modellklasse ist eine Menge von Zufallsvariablen, von denen jedes Element durch eine feste, kleine Zahl von Parametern beschrieben werden kann. Beispiele: Die Modellklasse aller eindimensionalen Normalverteilungen {N(μ,σ2) | μ∊R , σ2>0 } Die Modellklasse aller multivariaten (n-dimensionalen) Normalverteilungen {N(μ,Σ) | μ∊Rn , Σ positiv definite n x n Matrix} Die Klasse der Bayesnetze { BN(V, L) | V gerichteter azyklischer Graph, L Menge von lokalen bedingten Wahrscheinlichkeitsverteilungen} Die Klasse der Hidden Markov Modelle { HMM(S,A,B,π,V) , Zustandsmenge S, Übergangsmatrix A, Menge Emissionswahrscheinlichkeitsverteilungen B, Anfangsverteilung π, Merkmalsraum V } u.v.m. Problem (Modellselektion): Welches ist die „richtige“ Modellklasse? Welches ist eine „vernünftige“ Modellklasse? Seite 2/14/2017| 5 MAP- und ML-Schätzung Sei eine Modellklasse {Pω(x) | ω∊Ω } gegeben. D.h. jedes konkrete Modell ist eine Wahrscheinlichkeitsverteilung Pω(x), welche durch einen Satz von Parametern ω∊Ω definiert wird. Es soll nun das bestpassende Modell Pω(x) gefunden werden, d.h. der Parametersatz ω∊Ω , welcher die beste Approximation der wahren Verteilung P(X) der Daten liefern. Problem (Parameteridentifikation): Wie finde ich die „richtigen“ Parameter? Gesucht: Ein Verfahren, das aus den beobachteten Daten D={x1,…,xn} die Parameter Ω eines möglichst gut passenden Modells schätzt. 1. Möglichkeit: Maximum Likelihood Schätzung (ML). Finde das (ein) ̂∊Ω (den ML-Schätzer), für welches die Beobachtung der Daten D am wahrscheinlichsten ist. Anm.: Fast immer nimmt man die Unabhängigkeit der Daten an. D.h. die Daten sind i.i.d. (=independent, identically distributed) Realisierungen der Zufallsvariablen X. Somit entsteht jedes xj durch unabhängiges Ziehen aus der gleichen Verteilung Pω(x). Dann ist n P ( Daten) P ( x j ) j 1 Seite 2/14/2017| 6 und ˆ arg max P ( Daten) MAP- und ML-Schätzung 2. Möglichkeit: Maximum A Posteriori Schätzung (MAP). Nimm an, der Parameterraum Ω sei ein Wahrscheinlichkeitsraum mit Dichte P(ω). Dann ist Likelihood Modellrior Posterior P( | x) P( x | ) P( ) P ( x) P( ) Finde das (ein) ̂ ∊Ω (den MAP-Schätzer), welches bei gegebenen Daten den Posterior für ω maximiert. Datenunabhängigkeit angenommen, ergibt sich n n j 1 j 1 P( | Daten) P( Daten | ) P( ) P( ) P( x j | ) P( ) P ( x) und ˆ arg max P( | Daten) Formal unterscheiden sich MAP- und ML-Schätzer nur durch den Modellprior P(ω). Ist der Prior uniform ( P(ω) = const. ), so sind MAP- und ML-Schätzer identisch. Konzeptionell sind beide Verfahren verschieden: ML betrachtet die Daten als Realisierungen eines festen Modells Pω(x), MAP betrachtet die Daten als fest und die Modelle als Realisierungen einer Zufallsvariablen mit der Dichte P(ω|Daten). Seite 2/14/2017| 7 Maximum Likelihood bei Normalverteilungen Die eingezeichneten Werte (schwarze Punkte) wurden aus einer Normalverteilung N(θ,σ2) mit bekannter Standardabweichung σ, aber unbekanntem Erwartungswert θ gezogen. θ1 θ2 θ3 θ4 Verschiedene Dichten P(x | θj) Likelihoodfunktion P(D|θ). Dies ist i.d.R. keine Wahrscheinlichkeitsdichte! log-Likelihoodfunktion l(θ) = ln P(D|θ) (Oft ist es leichter, die logLikelihood zu maximieren) Seite 2/14/2017| 8 Maximum Likelihood bei Normalverteilungen Seite 2/14/2017| 9 Maximum Likelihood bei Normalverteilungen (Beweis: Übung) Seite 2/14/2017| 10 Maximum a posteriori bei Normalverteilungen n Wir wollen P(μ|D) ∝ P(D| μ) P(μ) maximieren. Spezifikation des Priors: P(μ) ~N(μ0,σ02) , μ0 und σ02 sind festgelegt P(μ|D) Seite 2/14/2017| 11 Maximum a posteriori bei Normalverteilungen Somit hat p(μ|D) die Gestalt Koeffizientenvergleich ergibt: 1 Seite 2/14/2017| 12 2 n n 2 1 2 0 und n 0 n 2 x 2 2 n 0 , wobei 1 n x xk n k 1 Maximum a posteriori bei Normalverteilungen 1 n Auflösen nach μn, σn ergibt (mit x xk ) : n k 1 n 2 n n x x 0 2 2 2 2 n 0 n 0 2 0 1 für n∞ 2 2 0 n2 n 02 2 0 für n∞ 0 für n∞ p(μ|D) nimmt bei μn sein Maximum an, somit ist μn der MAP-Schätzer. Für n∞ geht dieser in den ML-Schätzer μ = x über. Der Posterior versammelt seine Masse mit n∞ immer enger um μn. Mit zunehmendem n wird der Einfluss des Priors (μ0,σ0) auf den Posterior bzw. den MAP-Schätzer immer geringer. Seite 2/14/2017| 13 Maximum a posteriori bei Normalverteilungen Während der ML-Schätzer ein Punktschätzer ist (es wird nur ein Satz Parameter ermittelt), liefert der MAP-Ansatz neben einem Punktschätzer eine Wahrscheinlichkeitsverteilung der Parameter, p(μ|D). Seite 2/14/2017| 14 Maximum a posteriori bei Binomialverteilungen Einmaliger Münzwurf mit Kopfwahrscheinlichkeit θ: wenn x Kopf P( x | ) 1 - wenn x Zahl n-faches Werfen derselben Münze (D={x1,…,xn}, davon nK Mal Kopf und nZ Mal Zahl) : P( D | ) nK (1 ) nZ Wir suchen den Posterior P(θ|D), gegeben ein geeigneter Prior. Es gibt eine geschickte Priorwahl: P( ) ~ Beta( , ) ( -1) (1 ) ( 1) Seite 2/14/2017| 15 α=β=1 Konjugierte Prior Der Posterior kann nämlich in geschlossener Form ausgerechnet werden, und hat wieder eine Beta-Verteilung, stammt also aus der gleichen Verteilungsfamilie wie der Prior: P( ) ~ Beta( , ) P( | D) P(D|θ ) P( ) nK (1 ) nZ ( -1) (1 ) ( 1) ( nK -1) (1 ) ( nZ 1) ~ Beta( nK , nZ ) Sei eine Likelihoodfunktion gegeben. Ein Prior, bezüglich dessen der Posterior aus der gleichen Familie von Wahrscheinlichkeitsverteilungen wie der Prior stammt, heißt konjugierter Prior. Vorteil konjugierter Prior: Die Berechnung des Posteriors ist besonders leicht, da nur die Parameter der Verteilung berechnet werden müssen, wie in obigem Beispiel: Likelihood = Binomialvert. Parameter des Priors: (α,β) Seite 2/14/2017| 16 Parameter des Posteriors: (α+nK,β+nZ) Konjugierte Prior 5 R-Code zur Berechnung des Posteriors nach wiederholtem Münzwurf 3 (uniformer Prior) 0 1 2 Dichte 4 n= 0 n= 10 n= 20 n= 30 n= 40 0.0 Seite 2/14/2017| 17 0.2 0.4 0.6 0.8 1.0 Konjugierte Prior Seite 2/14/2017| 18 from Wikipedia, „conjugate prior“ Maschinelles Lernen Erste Schritte in R Verwendung von R-Packages Was ist „R“ ? • Umgebung zur statistischen Datenanalyse • Open source, weitgehend kompatibel mit Splus • Sehr dynamisch durch einfache Einbindung neuer Funktionen („Packages“) • In der wissenschaftlichen Gemeinschaft das (zusammen mit SAS) am weitesten verbreitete Statistik-Tool • Für Computational Biology der de facto - Standard Seite 2/14/2017| 20 Installation von R/Bioconductor http://cran.r-project.org Seite 2/14/2017| 21 Installation von R/Bioconductor Seite 2/14/2017| 22 Installation von R/Bioconductor Seite 2/14/2017| 23 Installation von R/Bioconductor http://bioconductor.org Seite 2/14/2017| 24 Installation von R/Bioconductor Seite 2/14/2017| 25 Installation von R/Bioconductor Seite 2/14/2017| 26 400 R-Syntax, elementare Rechenoperationen 200 100 0 y 0 1 x 20 300 > x = 0:20 > y = x*x > plot(x,y) 0 0 0 0*0 1 1 1*1 y x * x * 20 20 20 * 20 Seite 2/14/2017| 27 5 10 x 15 20 R-Syntax, elementare Rechenoperationen > x = 1:4 > y = x*2 > z = x*c(0,1) 1 2 x 3 4 1 1 2 2 2 2 2 4 y x * 2 * 2 * 3 3 2 6 4 4 2 8 1 1 0 0 0 2 0 2 1 2 z x * * * 1 3 1 3 0 0 4 4 1 4 Seite 2/14/2017| 28 R-Syntax, elementare Rechenoperationen 40 Histogram of x 20 density.default(x = x) 0 0.3 10 Frequency 30 > x = rnorm(100,mean=0,sd=1) > hist(x) > density(x) -1 1 0 4 3 0.0 0.1 x 2 0.2 -2 Density -3 -4 Seite 2/14/2017| 29 -2 0 2 N = 100 Bandwidth = 0.3958 4 R-Syntax, elementare Rechenoperationen 0.0010 0.0005 0.0000 sapply(theta, likelihood) $objective [1] 0.001796537 0.0015 > x = rnorm(6,mean=0,sd=1) > x [1] -1.08095279 -1.32442492 -0.77553316 -0.44245375 0.03208035 0.03687350 > likelihood = + function(mu=0,sigma=1,daten=x) + {prod(dnorm(daten,mean=mu,sd=sigma))} > theta = seq(from=-5,to=5,length=100) > plot(theta,sapply(theta,likelihood)) > optimize(likelihood,interval = c(-5,5),maximum=TRUE) $maximum [1] -0.5924009 Seite 2/14/2017| 30 -4 -2 0 theta 2 4 Konjugierte Prior R-Code zur Berechnung des Posteriors nach wiederholtem Münzwurf Seite 2/14/2017| 31 5 theta=0.3 alpha = 1; beta = 1 x = seq(0,1,length=200) plot(x,dbeta(x,alpha,beta),type="l",lwd=2,ylab="Dichte", xlab="",ylim=c(0,5.5)) abline(v=theta) n=10 for (j in 2:5) { nk = rbinom(1,size=n,prob=theta) nz = n-nk alpha = alpha + nk beta = beta + nz points(x,dbeta(x,alpha,beta),type="l",lwd=2,col=j) } legend(0.6,5,legend=paste("n=",(0:4)*n),col=1:5,lty=1) 3 2 1 Dichte 4 n= 0 n= 10 n= 20 n= 30 n= 40 0 > > > > + > > > + + + + + + + > 0.0 0.2 0.4 0.6 0.8 1.0