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 = [x ij ] I J oznacza obraz o rozmiarach I na J, tj. macierz pikseli reprezentujący rozpoznawaną literę, w której pojedynczy piksel przyjmuje wartość czarną, x ij = 1, lub białą, x ij = 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 φ p(y φ) y Ekstrakcja cech Model Klasyfikacja 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) : x ij = 1} (2) oraz i min (H) = min {i} (3) i max (H) = max {i} (4) j min (H) = min {j} (5) j max (H) = max {j} (6) H i α,β = {(i, j) : (1 α)i min (I) + αi max (I) i (1 β)i min (I) + βi max (I)} (7) H j α,β = {(i, j) : (1 α)j min (I) + αj max (I) j (1 β)j min (I) + βj max (I)} (8) gdzie i min (H) i i max (H) oraz j min (H) i j max (H) oznaczają odpowiednio minimalną i maksymalną wartość i-tej i j-tej współrzędnej wśród pikseli należących do zbioru H, zaś H i α,β i H j α,β 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: ( ) ( ) H i 0,0.3 jmin H i 0,0.3 φ 1 = j max j max (I) j min (I) φ 2 = i ( ) ( max H j 0.4,0.6 imin H j i max (I) i min (I) 0.4,0.6, (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. gdzie φ = (φ 1... φ D ) T p(φ y k = 1) = 1 (2π) D 2 Σ k 1 2 { exp 1 } 2 (φ µ k) T Σ 1 k (φ µ k ), (11) (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 k=1 θ yk k, (12) gdzie θ = (θ 1... θ K ) T oznacza wektor parametrów taki, że 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, y n )} 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ć: N K p(d µ, Σ, θ) = {θ k N (φ n µ k, Σ k )} yk n. (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: gdzie k = 1,..., K oraz N k = Klasyfikacja µ k = 1 N y N nφ k n, (14) k Σ k = 1 N k n=1 N n=1 y k n(φ n µ k )(φ n µ k ) T (15) θ k = N k N, (16) N yn. k n=1 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), (17) p(φ) gdzie rozkład brzegowy p(φ) służy jako czynnik normujący i wyraża się wzorem: p(φ) = y p(φ y)p(y). (18) 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 φ). (19) y 4
Zauważmy, że mianownik jest ten sam dla każdego k = 1,..., K, dlatego może być on pominięty: Implementacja (13 pkt.) y = arg max p(φ y)p(y). (20) y 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 (21) x T A 1 x = A 1 xx T A 1, A (22) ln det(a) = A 1, A (23) gdzie x = (x 1... x D ) T, y = (y 1... y D ) T oraz A S D ++ (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