Maximum a posteriori bei Normalverteilungen

Werbung
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
Herunterladen