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