Metody systemowe i decyzyjne w informatyce

Transkrypt

Metody systemowe i decyzyjne w informatyce
Metody systemowe i decyzyjne w informatyce
Laboratorium – JAVA – Zadanie nr 2
Rozpoznawanie liter
autorzy: A. Gonczarek, J.M. Tomczak
Cel zadania
Celem zadania jest zapoznanie się z problemem klasyfikacji oraz stworzenie aplikacji w języku
JAVA rozpoznającej pismo ręczne. Dla uproszczenia zagadnienia przyjmujemy, że program będzie
rozróżniał jedynie trzy litery:
1. Litery A, B, C opisane przez dwie cechy przedstawione w instrukcji do zadania.
2. Wybrane trzy litery (różne od A, B, C) opisane przez zestaw cech zaproponowany przez
grupę.
Należy zaimplementować oba klasyfikatory.
Rozpoznawanie liter
Niech X = [xij ]I×J oznacza obraz o rozmiarach I na J, tj. macierz pikseli reprezentujący rozpoznawaną literę, w której pojedynczy piksel przyjmuje wartość czarną, xij = 1, lub białą, xij = 0.
Zadanie rozpoznawania liter polega na przyporządkowaniu obrazowi litery, którą oznaczać będziemy poprzez y ∈ Y, gdzie Y oznacza zbiór K liter, np. Y = {A, B, C}. Zakładamy, że litery
numerujemy od 1 do K, np. dla liter A, B i C, y 1 odpowiada literze A, y 2 to B, a y 3 to C. Dalej
wykorzystywać będziemy tzw. schemat 1-na-K, który polega na zakodowaniu y za pomocą wektora 0-1 o długości K, y = (y 1 . . . y K )T . Jeżeli litera przyjmuje k-tą wartość, to y k = 1 i wszystkie
pozostałe pozycje przyjmują wartość 0.
Proces rozpoznawania liter składa się z następujących etapów (patrz Rysunek 1). Po pierwsze,
litera zapisywana jest za pomocą macierzy pikseli X. Następnie, z obrazu ekstrahowane są cechy φ.
W trzecim kroku, na podstawie wyuczonego modelu, wyznaczany jest rozkład a posteriori p(y|x),
na podstawie którego podejmowana jest decyzja.
Ekstrakcja cech
Ekstrakcja cech polega na wyróżnieniu z obrazu pewnych charakteryzujących go wielkości, które
będą podlegać dalszemu przetwarzaniu. Zadanie ekstrakcji cech możemy zapisać w postaci nastę1
X
φ
Ekstrakcja cech
Model
p(y|φ)
Klasyfikacja
y∗
C
Rysunek 1: Schemat procesu klasyfikacji liter.
pującego odwzorowania:
φ = φ(X),
(1)
gdzie φ = (φ1 . . . φD )T oznacza wektor wyróżnionych cech. Aby zdefiniować przykładowe odwzorowanie φ(X) wprowadźmy następujące oznaczenia:
I = {(i, j) : xij = 1}
(2)
imin (H) = min {i}
(3)
imax (H) = max {i}
(4)
jmin (H) = min {j}
(5)
jmax (H) = max {j}
(6)
(i,j)∈H
(i,j)∈H
(i,j)∈H
(i,j)∈H
oraz
i
Hα,β
= {(i, j) : (1 − α)imin (I) + αimax (I) ¬ i ¬ (1 − β)imin (I) + βimax (I)}
(7)
j
Hα,β
= {(i, j) : (1 − α)jmin (I) + αjmax (I) ¬ j ¬ (1 − β)jmin (I) + βjmax (I)}
(8)
gdzie imin (H) i imax (H) oraz jmin (H) i jmax (H) oznaczają odpowiednio minimalną i maksymalną
j
i
wartość i-tej i j-tej współrzędnej wśród pikseli należących do zbioru H, zaś Hα,β
i Hα,β
oznaczają
odpowiednio zbiór tych pikseli, których i-ta i j-ta współrzędna zawiera się pomiędzy procentem α
i procentem β całkowitej długości litery względem i-tej oraz j-tej współrzędnej, α, β ∈ [0, 1].
Dla naszych potrzeb wyróżnimy następujące dwie cechy:
φ1 =
φ =
jmax (I) − jmin (I)
2
i
i
jmax H0,0.3
− jmin H0,0.3
,
j
j
imax H0.4,0.6
− imin H0.4,0.6
imax (I) − imin (I)
(9)
.
(10)
Cecha φ1 oznacza stosunek wysokości fragmentu litery do wysokości całej litery. Fragment ten
składa się z pikseli leżący w przedziale 0-30% szerokości litery. Cecha φ2 oznacza stosunek szerokości
fragmentu litery do szerokości całej litery. Fragment ten składa się z pikseli leżący w przedziale
2
40-60% wysokości litery. Na rysunku 2 został przedstawiony rozkład cech φ dla 30 przykładowych
obrazów (odpowiednio po 10 obrazów kazdej z liter A, B i C).
Model statystyczny
Kluczowym etapem w rozpoznawaniu liter jest jest wybór statystycznych modeli dla liter, które
będą nam umożliwiały wnioskowanie na temat nowo pojawiających się obrazów. W niniejszym
zadaniu wykorzystamy rozkłady Gaussa do modelowania rozkładu wektora cech φ, co prowadzi do
tzw. gaussowskiej analizy dyskryminacyjnej (ang. Gaussian Discriminant Analysis). Rozkład
wektora cech dla ustalonej litery modelujemy D-wymiarowym rozkładem normalnym p(φ|y k =
1) = N (φ|µk , Σk ), tj.
p(φ|y k = 1) =
1
1
− (φ − µk )T Σ−1
1 exp
D
k (φ − µk ) ,
2
(2π) 2 |Σk | 2
(11)
gdzie φ = (φ1 . . . φD )T (dla zaproponowanych cech (9) i (10) oczywiście D = 2), natomiast
µk i Σk oznaczają odpowiednio wektor średnich oraz macierz kowariancji wielowymiarowego rozkładu normalnego.
Rozkład a priori (przed obserwacją) pojawienia się poszczególnych liter modelujemy rozkładem
wielopunktowym p(y) = M(y|θ), to znaczy:
p(y) =
K
Y
yk
θk ,
(12)
k=1
gdzie θ = (θ1 . . . θK )T oznacza wektor parametrów taki, że
P
k
θk = 1 oraz 0 ¬ θk ¬ 1, dla każdego
k = 1, . . . , K.
Uczenie modelu
W naszym modelu, dla każdej k-tej litery, posiadamy następujący zestaw parametrów: {θk , µk , Σk }.
Dalej zakładamy, że dysponujemy ciągiem N niezależnych obserwacji wektorów cech wraz z odpowiadającymi im literami D = {(φn , yn )}N
n=1 (patrz Rysunek 2). Zadanie estymacji parametrów na
podstawie danych D nazywamy uczeniem (ang. learning).
W celu uczenia modelu wykorzystamy metodę maksymalnej wiarygodności (ang. maximum
likelihood ). Funkcja wiarygodności dla rozkładu łącznego p(φ, y) przyjmuje postać:
p(D|µ, Σ, θ) =
N Y
K
Y
k
{θk N (φn |µk , Σk )}yn .
(13)
n=1 k=1
Biorąc minus logartym funkcji wiarygodności i przyrównując gradient po parametrach do zera
3
Rysunek 2: Wartości cech dla 30 przykładowych liter
otrzymujemy estymatory największej wiarygodności, które wyrażają się następująco:
µk =
N
1 X
ynk φn ,
Nk n=1
N
1 X
Σk =
ynk (φn − µk )(φn − µk )T
Nk n=1
Nk
,
θk =
N
gdzie k = 1, . . . , K oraz Nk =
N
X
(14)
(15)
(16)
ynk .
n=1
Klasyfikacja
Podjęcie decyzji w zadaniu rozpoznawania liter polega na przyporządkowaniu nowemu obrazowi
odpowiadającej mu litery. Proces ten nazywany jest również klasyfikacją (ang. classification) i
polega on na wyznaczeniu rozkładu a posteriori (po obserwacji) p(y|φ), czyli prawdopodobieństwa
tego, że obserwacja φ jest jedną z liter z Y. Korzystając z twierdzenia Bayesa:
p(y|φ) =
p(φ|y)p(y)
,
p(φ)
(17)
gdzie rozkład brzegowy p(φ) służy jako czynnik normujący i wyraża się wzorem:
p(φ) =
X
p(φ|y)p(y).
(18)
y
Z teorii decyzji wiemy, że w celu podjęcia optymalnej decyzji należy wybrać tę klasę, dla której
rozkład a posteriori jest maksymalny, tj.
y∗ = arg max p(y|φ).
y
4
(19)
Zauważmy, że mianownik jest ten sam dla każdego k = 1, . . . , K, dlatego może być on pominięty:
y∗ = arg max p(φ|y)p(y).
y
(20)
Implementacja (13 pkt.)
• Implementacja GUI, które umożliwia ręczne rysowanie liter na panelu, wczytanie ciagu uczacego, dodawnie przykładu do ciągu uczącego i douczenie modelu oraz przełączanie pomiędzy
zadaniami klasyfikacji – rozpoznawanie liter A, B, C i własnego zestawu liter. (2 pkt.)
• Implementacja mechanizmu wczytywania i zapisywania do pliku tekstowego ciągów uczących
(1 pkt.)
• Implementacja uczenia parametrów klasyfikatora z użyciem estymatorów maksymalnej wiarygodności oraz podejmowania decyzji na podstawie rozkładu a posteriori. (3 pkt.)
• Implementacja metody ekstrakcji cech zaproponowanej w instrukcji dla liter A, B, C. (2
pkt.)
• Zaproponowanie i implementacja autorskiego zestawu cech dla wybranych trzech liter. Zaproponowane cechy muszą być liczbami rzeczywistymi. (5 pkt.)
Pytania kontrolne (2 pkt.)
Prowadzący zadaje po jednym pytaniu każdej z osób w grupie:
1. Wyprowadzić estymator maksymalnej wiarygodności dla µ.
2. Wyprowadzić estymator maksymalnej wiarygodności dla Σ (zakładając znajomość µ).
Przy wyprowadzaniu estymatorów maksymalnej wiarygodności proszę korzystać z poniższych
własności. Jeśli macierz A jest symetryczna i dodatnio określona to:
∂(x − y)T A(x − y)
= −2A(x − y),
∂y
∂xT A−1 x
= −A−1 xxT A−1 ,
∂A
∂ ln det(A)
= A−1 ,
∂A
(21)
(22)
(23)
D
gdzie x = (x1 . . . xD )T , y = (y 1 . . . y D )T oraz A ∈ S++
(zbiór macierzy symetrycznych
dodatnio określonych o wymiarach D × D).
3. Co to jest funkcja wiarygodności? Na czym polega estymacja maksymalnej wiarygodności?
5
4. Podać liczbę parametrów modelu gaussowskiej analizy dyskryminacyjnej dla D-wymiarowego
wektora cech i K klas.
5. Na przykładzie dwuwymiarowego rozkładu normalnego pokazać, jak zmienia się gęstość rozkładu w zależności od zmiany parametrów macierzy kowariancji.
6. Na czym polega schemat kodowania klas 1-na-K? Jakie jest jego znaczenie w praktyce?
7. Co to jest ekstrakcja cech? Po co się ją wykonuje?
8. Co to są rozkłady a priori i a posteriori ? Czym się różnią?
9. Jaką funkcję straty przyjmujemy w funkcjonale ryzyka dla zadania klasyfikacji?
10. Jaką interpretację mają parametry θk w rozkładzie wielopunktowym dla y? Jakie warunki
muszą spełniać?
6

Podobne dokumenty