31
Maschinelles Lernen Maximum Likelihood- Schätzung Maximum a posteriori- Schätzung

Maschinelles Lernen

Embed Size (px)

DESCRIPTION

Maschinelles Lernen. Maximum Likelihood-Schätzung Maximum a posteriori-Schätzung. Bayessches Lernen - Wiederholung. Satz von Bayes. Likelihood. Prior. Dabei sind x die Daten, ω ist eine Klasse/ eine Kategorie. Posterior. Evidenz. - PowerPoint PPT Presentation

Citation preview

Page 1: Maschinelles  Lernen

Maschinelles Lernen

 

Maximum Likelihood-SchätzungMaximum a posteriori-Schätzung

Page 2: Maschinelles  Lernen

Seite 204/20/23|

Bayessches Lernen - Wiederholung

Satz von Bayes

)(

)()|( )|(

xP

PxPxP

Posterior

Likelihood Prior

Evidenz

Dabei sind x die Daten, ω ist eine Klasse/ eine Kategorie.

)|()|( )|(

C

xPaxaR

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.

Erwartetes Risiko/Verlust/Loss von Aktion a bei gegebener Lossfunktion λ:

… 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.

dx )|)(()( p(x)xxaRaRxErwarteter Verlust bei gegebener

Entscheidungsregel a:

Page 3: Maschinelles  Lernen

Seite 304/20/23|

MAP- und ML-Schätzung. Beispiel

Wie konstruiert man aus gegebenen Daten geegnete Prior und Likelihoods?

Daten (Beobachtungen) Empirische Verteilung(en)

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).

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.

Page 4: Maschinelles  Lernen

Seite 404/20/23|

Histogram of b

b

Fre

quen

cy

150 160 170 180 190 200

05

1015

20

Modellannahme: X ist eine

normalverteilte Zufallsvariable

N(μ,σ2)

Parameterschätzung:Mittelwert = 179

Standardabw. = 9.5

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

empirische Dichtefunktion

140 160 180 200 220

0.0

00.0

10.0

20.0

3

density(x = a)

N = 1000 Bandwidth = 2.363

Densi

ty

„gelernte“ Dichtefunktion

150 160 170 180 190 200 210

0.00

0.01

0.02

0.03

0.04

seq(150, 210, length = 100)

dnor

m(s

eq(1

50, 2

10, l

engt

h =

100)

, mea

n =

178,

sd

= 10

)

MAP- und ML-Schätzung. Beispiel

140 160 180 200 220

0.0

00.0

10.0

20.0

3density(x = a)

N = 1000 Bandwidth = 2.363

Densi

ty

140 160 180 200 220

0.0

00.0

10.0

20.0

3

density(x = a)

N = 1000 Bandwidth = 2.363D

ensi

ty

Page 5: Maschinelles  Lernen

Seite 504/20/23|

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?

Page 6: Maschinelles  Lernen

Seite 604/20/23|

MAP- und ML-Schätzung

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.

Sei eine Modellklasse {Pω(x) | ω∊Ω } gegeben. D.h. jedes konkrete Modell ist eine Wahrscheinlichkeitsverteilung Pω(x), welche durch einen Satz von Parametern ω Ω∊ definiert wird.

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

jjxPDatenP

1

)()(

und )( maxarg ˆ DatenP

Page 7: Maschinelles  Lernen

Seite 704/20/23|

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

n

j

n

jj xPPxPPPDatenPDatenP

11

)()( )|()( )()|( )|(

)()( )()|( )|( PxPPxPxP Posterior

Likelihood Modellrior

Datenunabhängigkeit angenommen, ergibt sich

Finde das (ein) Ω∊ (den MAP-Schätzer), welches bei gegebenen Daten den Posterior für ω maximiert.

und )| maxarg ˆ DatenP(

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).

Page 8: Maschinelles  Lernen

Seite 804/20/23|

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 log-Likelihood zu maximieren)

Page 9: Maschinelles  Lernen

Seite 904/20/23|

Maximum Likelihood bei Normalverteilungen

Page 10: Maschinelles  Lernen

Seite 1004/20/23|

Maximum Likelihood bei Normalverteilungen

(Beweis: Übung)

Page 11: Maschinelles  Lernen

Seite 1104/20/23|

Maximum a posteriori bei Normalverteilungen

Wir wollen P(μ|D) ∝ P(D| μ) P(μ) maximieren.

Spezifikation des Priors: P(μ) ~N(μ0,σ02) , μ0 und σ0

2 sind festgelegt

n

P(μ|D)

Page 12: Maschinelles  Lernen

Seite 1204/20/23|

Maximum a posteriori bei Normalverteilungen

20

22

11

n

n20

022

x

n

n

n

n

kkx

nx

1

1

Somit hat p(μ|D) die Gestalt

Koeffizientenvergleich ergibt:

und , wobei

Page 13: Maschinelles  Lernen

Seite 1304/20/23|

Maximum a posteriori bei Normalverteilungen

Auflösen nach μn, σn ergibt (mit ) :

n

kkx

nx

1

1

xn

xn

n nn 022

0

2

220

20

0 für n∞1 für n∞

220

20

22

nn

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 μ = über.x

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.

Page 14: Maschinelles  Lernen

Seite 1404/20/23|

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).

Page 15: Maschinelles  Lernen

Seite 1504/20/23|

Maximum a posteriori bei Binomialverteilungen

Zahl wenn x-1

Kopf wenn x )|(

xP

Einmaliger Münzwurf mit Kopfwahrscheinlichkeit θ:

n-faches Werfen derselben Münze (D={x1,…,xn}, davon nK Mal Kopf und

nZ Mal Zahl) :ZK nnDP )1( )|(

Wir suchen den Posterior P(θ|D), gegeben ein geeigneter Prior. Es gibt eine geschickte Priorwahl:

)1(1)-( )1(

),Beta( ~ )(

P

α=β=1

Page 16: Maschinelles  Lernen

Seite 1604/20/23|

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:

),Beta( ~

)1(

)1()1( )() )|()1(1)-(

)1(1)-(

ZK

nn

nn

nn

PP(D|θDPZK

ZK

),Beta( ~ )( P

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: (α,β) Parameter des Posteriors: (α+nK,β+nZ)

Page 17: Maschinelles  Lernen

Seite 1704/20/23|

0.0 0.2 0.4 0.6 0.8 1.0

01

23

45

Dic

hte

n= 0n= 10n= 20n= 30n= 40

Konjugierte Prior

R-Code zur Berechnung des Posteriors nach wiederholtem Münzwurf

(uniformer Prior)

Page 18: Maschinelles  Lernen

Seite 1804/20/23|

Konjugierte Prior

from Wikipedia, „conjugate prior“

Page 19: Maschinelles  Lernen

Erste Schritte in RVerwendung von R-Packages

Maschinelles Lernen

 

Page 20: Maschinelles  Lernen

Seite 2004/20/23|

• 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

Was ist „R“ ?

Page 21: Maschinelles  Lernen

Seite 2104/20/23|

http://cran.r-project.org

Installation von R/Bioconductor

Page 22: Maschinelles  Lernen

Seite 2204/20/23|

Installation von R/Bioconductor

Page 23: Maschinelles  Lernen

Seite 2304/20/23|

Installation von R/Bioconductor

Page 24: Maschinelles  Lernen

Seite 2404/20/23|

http://bioconductor.org

Installation von R/Bioconductor

Page 25: Maschinelles  Lernen

Seite 2504/20/23|

Installation von R/Bioconductor

Page 26: Maschinelles  Lernen

Seite 2604/20/23|

Installation von R/Bioconductor

Page 27: Maschinelles  Lernen

Seite 2704/20/23|

20

1

0

x

20*20

1*1

0*0

20

1

0

*

20

1

0

*

xxy

> x = 0:20> y = x*x> plot(x,y)

0 5 10 15 20

010

020

030

040

0

xy

R-Syntax, elementare Rechenoperationen

Page 28: Maschinelles  Lernen

Seite 2804/20/23|

4

3

2

1

x

> x = 1:4> y = x*2> z = x*c(0,1)

8

6

4

2

2

2

2

2

*

4

3

2

1

2*

4

3

2

1

2*xy

4

0

2

0

1

0

1

0

*

4

3

2

1

1

0*

4

3

2

1

1

0*xz

R-Syntax, elementare Rechenoperationen

Page 29: Maschinelles  Lernen

Seite 2904/20/23|

> x = rnorm(100,mean=0,sd=1)> hist(x)> density(x)

R-Syntax, elementare Rechenoperationen

Histogram of x

x

Fre

qu

en

cy

-3 -2 -1 0 1 2 3 4

01

02

03

04

0

-4 -2 0 2 4

0.0

0.1

0.2

0.3

density.default(x = x)

N = 100 Bandwidth = 0.3958

De

nsity

Page 30: Maschinelles  Lernen

Seite 3004/20/23|

R-Syntax, elementare Rechenoperationen

> 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

$objective[1] 0.001796537

-4 -2 0 2 4

0.0

00

00

.00

05

0.0

01

00

.00

15

theta

sap

ply

(th

eta

, lik

elih

oo

d)

Page 31: Maschinelles  Lernen

Seite 3104/20/23|

Konjugierte Prior

> 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)

0.0 0.2 0.4 0.6 0.8 1.0

01

23

45

Dic

hte

n= 0n= 10n= 20n= 30n= 40

R-Code zur Berechnung des Posteriors nach wiederholtem Münzwurf