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.