Stimatori parametrici

Transcript

Stimatori parametrici
Apprendimento supervisionato:
stime parametriche
Edmondo Trentin
25 aprile 2010
Autore: Edmondo Trentin
Prima trascrizione digitale: Pierluigi Failla (dagli originali di E.T.)
Il Problema della Stima
Finora abbiamo assunto di conoscere oltre alla forma di p(x|ωi ), i
parametri µi e Σi che ci permettono di calcolare per ogni x:
gi (x) = log p(x|ωi ) + log P(ωi )
(1)
gi (x) = wit x + bi
(2)
ovvero:
Se però i parametri Θ = (µ, Σ) non sono noti, c’è bisogno di una
tecnica per stimarli.
Stima parametrica: cerchiamo Θ = (µ, Σ) adeguati per
caratterizzare p(x|ωi ).
Stima non-parametrica: cerchiamo ad esempio wi e bi adeguati
dimenticando l’assunzione sulla forma normale di p(x|ωi ).
Stima Parametrica Supervisionata
◮
Sono dati c campioni, il training set Y1 , ..., Yc con
Yi = {y1i , ..., yni } e yni ∈ X indipendenti e identicamente
distribuiti (iid) secondo p(y |ωi ).
◮
Assumo che la p(y |ωi ) sia di forma nota ed univocamente
determinata da un vettore di parametri Θ (scriveremo
p(y |ωi , Θ)).
◮
Problema: usare l’informazione presente nei dati Y1 , ..., Yc
per stimare Θ1 , ..., Θc .
◮
Semplificazione: assumiamo che ci sia indipendenza
funzionale tra Θi e Θj se i 6= j.
◮
Possiamo allora ridurci a risolvere separatamente c problemi
indipendenti del tipo dati i campioni Y = {y1 , ..., yn } iid
secondo p(y|Θ), stimare Θ = (θ1 , ..., θp ).
Dato Y = {y1 , ..., yn } poiché sono indipendenti possiamo scrivere:
p(Y |Θ) =
n
Y
p(yk |Θ)
(3)
k=1
Questa funzione, detta verosimiglianza (likelihood), è una
funzione di Θ.
b a massima verosimiglianza è quella che massimizza
La stima Θ
p(Y |Θ).
Cerchiamo analiticamente di derivare delle condizioni necessarie
b deve soddisfare. Innanzitutto concentriamoci sul logaritmo
che Θ
(log-likelihood):
l (Θ) = log p(Y |Θ) =
n
X
log p(yk |Θ)
(4)
k=1
da cui
∇Θ l (Θ) =
n
X
∇Θ log p(yk |Θ)
(5)
k=1
con le seguenti condizioni necessarie:
b =0
∇Θ l (Θ)
(p equazioni)
(6)
Stima a Max-Likelihood: Caso Notevole I
p(y |Θ) =
1
|Σ|1/2 (2π)d/2
exp − 12 (y − µ)t Σ−1 (y − µ) e Θ = µ. Ho:
1
1
log p(y|µ) = − log {(2π)d |Σ|} − (y − µ)t Σ−1 (y − µ)
2
2
e quindi:
∇µ log p(y|µ) = Σ−1 (y − µ)
Poiché la stima µ
b a massima verosimiglianza deve soddisfare le
condizioni ∇µ l (b
µ) = 0, deve valere:
n
X
k=1
cioè:
n
X
k=1
b) = 0 ⇒
(yk − µ
n
X
k=1
b) = 0
Σ−1 (yk − µ
yk =
n
X
k=1
ovvero la media del campione!
µ
b⇒
n
X
k=1
n
µ⇒µ
b=
yk = nb
1X
yk
n
k=1
Stima a Max-Likelihood: Caso Notevole II
p(y |Θ) =
Ho:
√1
σ 2π
n
exp − 12
y −µ 2
σ
o
con Θ = (Θ1 , Θ2 ) = (µ, σ 2 ).
1
1
log p(y |Θ) = − log (2πΘ2 ) −
(y − Θ1 )2
2
2Θ2
da cui:
∇Θ log p(y |Θ) =
"
1
Θ2 (y − Θ1 )
(y −Θ1 )2
1
− 2Θ
+
2Θ22
2
#
Per soddisfare ∇Θ l (Θ) = 0 deve valere1 :
Pn
1
◮
(y − µ
b) = 0
k=1 σ
b2 k
P
⇒µ
b = n1 nk=1 yk (media campionaria)
Pn
P
µ)2
1
◮ −
+ nk=1 (ykσb−b
=0
4
k=1 σ
b2
P
b)2 (varianza campionaria)
⇒σ
b2 = n1 nk=1 (yk − µ
1
NdA: ricorda che Θ1 = µ e Θ2 = σ 2
Per normali multivariate, analogamente, si ha
n
1X
µ
b=
yk
n
k=1
per il vettore media campionaria, e
n
X
b=1
b)(yk − µ
b)t
(yk − µ
Σ
n
k=1
per la covarianza campionaria.
Esempio
Riconoscitore di caratteri manoscritti sull’alfabeto {a, b, c} per
questionari.
Figura: Riconoscimento di caratteri manoscritti
Abbiamo 3 classi: ω1 = a, ω2 = b e ω3 = c.
Le feature sono il numero di pixel occupati dal carattere lungo la
prima colonna non vuota, ad esempio: a → x = 5, b → x = 6 e
c → x = 4.
Suppongo di avere raccolto i seguenti campioni (per un totale di
n = 16):
b 1) = 6
◮ Ya = {4, 3, 4, 2, 5, 4} → P(ω
16
◮
◮
b 2) = 4
Yb = {7, 5, 8, 7} → P(ω
16
b
Yc = {3, 1, 3, 2, 4, 2} → P(ω3 ) =
6
16
Assumiamo che p(x|ωi ) = N(x; µi , σi2 ).
Stima a massima likelihood2 :
µ
c1 = 22/6, µ
c2 = 27/4 e µ
c3 = 15/6.
Esercizio: scrivere le stime a massima likelihood di σbi 2 .
b i ),µbi e σbi 2 per scrivere gi (x).
Esercizio: usa P(ω
2
NdA: le stime a massima likelihood sono le medie campionarie.
Validazione del Classificatore
Procedura base: training-test
◮
si stimano i parametri sul training-set etichettato
Y = Y1 ∪ Y2 ∪ ... ∪ Yc
◮
si verificano le prestazioni del classificatore su un test-set
τ = τ1 ∪ τ2 ∪ ... ∪ τc verificando la frazione di errori commessi
(error rate)
L’error rate è una stima (a massima likelihood) della probabilità di
errore. Esso dipende da:
1. Y
2. τ
3. la forma scelta per il modello
Nota: è metodologicamente scorretto usare τ per raffinare
iterativamente il classificatore. P
b j |x) come misura
Nota: è altresı̀ scorretto usare j6=i P(ω
dell’errore bayesiano3 .
3
Esercizio: perche’ ?
Uso di un validation set
Oltre a training set (o design set)
Y = Y1 ∪ Y2 ∪ ... ∪ Yc e a un test set
τ = τ1 ∪ τ2 ∪ ... ∪ τc , si usa anche un validation
set V = V1 ∪ V2 ∪ ... ∪ Vc . I campioni di V , come
quelli di Y e di τ , si suppongono estratti dalla
medesima popolazione. Procedura:
1. seleziona modello p(x; Θ)
b
2. usa i campioni di Y per stimare Θ
b su V (usa i campioni di V per
3. valida p(x; Θ)
b
stimare P(errore))
b
4. se P(errore)
non ci soddisfa si torna al punto 1
b
5. validazione finale di p(x; Θ)sui
campioni di τ
Metodo “Leave One Out”
Sia dato un dataset Y . Soprattutto nei casi in cui i campioni non
sono molti (ed è difficile o costoso raccoglierne di nuovi) è doloroso
spezzare Y in training, validation, e/o test set. Allora si può usare
la seguente tecnica:
1. sia Y = {Y1 , ..., Yn}
2. ripeti per i da 1 a n:
2.1 x = yi , Y ′ = Y \ {Yi }
b
2.2 usa Y ′ per stimare Θ
b
b
2.3 calcola e memorizza P(errore|x)
usando il modello Θ
b
b
= E [P(errore|x)]
3. P(errore)
=
P
n b
1
i=1 P(errore|yi )
n
Nota 1: l’errore viene sempre valutato su esempi non inclusi nel
design set.
Nota 2: tutti i campioni sono usati in training e test.
Metodo “Many-Fold Crossvalidation”
Leave-one-out ha un grande vantaggio rispetto alle tecniche
Y − V − τ : non dipende dalla particolare scelta (ripartizione) dei
dati nei tre sottoinsiemi.
Se però |Y | = n è grande allora leave-one-out è
computazionalmente troppo pesante. Una buona alternativa che
ne preserva la filosofia è allora k-fold crossvalidation:
1. sia Y = {y1, ..., yn}
2. ripeti per i da 1 a k (con k < n):
3.
2.1 τi ⊂ Y , τi ∩ τj = 0 ∀j = [1, ..., i − 1]
b
2.2 usa Y \ τi per stimare Θ
b
b
2.3 stima P(errore)
i su τi usando Θ
P
b
b
P(errore)
= k1 ki=1 P(errore)
i
Nota: possono valere le stesse considerazioni fatte per
leave-one-out.