Metody systemowe i decyzyjne w informatyce



Podobne dokumenty
Rozpoznawanie obrazów

Metody systemowe i decyzyjne w informatyce

Metody systemowe i decyzyjne w informatyce

Rozpoznawanie obrazów

Metody systemowe i decyzyjne w informatyce

Rozpoznawanie obrazów

Optymalizacja systemów

Podstawowe modele probabilistyczne

Metody systemowe i decyzyjne w informatyce

WYKŁAD 4. Podejmowanie decyzji dla modeli probabilistycznych Modelowanie Gaussowskie. autor: Maciej Zięba. Politechnika Wrocławska

Rozpoznawanie obrazów

Rozpoznawanie obrazów

Metody systemowe i decyzyjne w informatyce

WYKŁAD 3. Klasyfikacja: modele probabilistyczne

Wstęp do Metod Systemowych i Decyzyjnych Opracowanie: Jakub Tomczak

WYKŁAD 2. Problem regresji - modele liniowe

Metody systemowe i decyzyjne w informatyce

SPOTKANIE 4: Klasyfikacja: Regresja logistyczna

SPOTKANIE 3: Regresja: Regresja liniowa

Optymalizacja ciągła

Uczenie sieci radialnych (RBF)

SYSTEMY UCZĄCE SIĘ WYKŁAD 10. PRZEKSZTAŁCANIE ATRYBUTÓW. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska.

Metody systemowe i decyzyjne w informatyce

Wrocław University of Technology. Uczenie głębokie. Maciej Zięba

Algorytmy, które estymują wprost rozkłady czy też mapowania z nazywamy algorytmami dyskryminacyjnymi.

Metody klasyfikacji i rozpoznawania wzorców. Najważniejsze rodzaje klasyfikatorów

Metody systemowe i decyzyjne w informatyce


Wprowadzenie do uczenia maszynowego. Jakub Tomczak

Klasyfikacja LDA + walidacja

Zastosowania sieci neuronowych

Zastosowania sieci neuronowych

Wstęp do sieci neuronowych, wykład 03 Warstwy RBF, jednostka Adaline.

Klasyfikator. ˆp(k x) = 1 K. I(ρ(x,x i ) ρ(x,x (K) ))I(y i =k),k =1,...,L,

UCZENIE MASZYNOWE III - SVM. mgr inż. Adam Kupryjanow

IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ

Algorytm wstecznej propagacji błędów dla sieci RBF Michał Bereta

Zrównoleglona optymalizacja stochastyczna na dużych zbiorach danych

Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I

4.1. Wprowadzenie Podstawowe definicje Algorytm określania wartości parametrów w regresji logistycznej...74

Eksploracja Danych. wykład 4. Sebastian Zając. 10 maja 2017 WMP.SNŚ UKSW. Sebastian Zając (WMP.SNŚ UKSW) Eksploracja Danych 10 maja / 18

Ontogeniczne sieci neuronowe. O sieciach zmieniających swoją strukturę

Systemy pomiarowo-diagnostyczne. Metody uczenia maszynowego wykład III 2016/2017

ALGORYTMY SZTUCZNEJ INTELIGENCJI

Algorytmy metaheurystyczne Wykład 11. Piotr Syga

Metody selekcji cech

SPOTKANIE 2: Wprowadzenie cz. I

SPOTKANIE 6: Klasteryzacja: K-Means, Expectation Maximization

Wprowadzenie do uczenia maszynowego

ALGORYTM RANDOM FOREST

TEORETYCZNE PODSTAWY INFORMATYKI

5. Analiza dyskryminacyjna: FLD, LDA, QDA

Podstawy Sztucznej Inteligencji (PSZT)

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

SZTUCZNA INTELIGENCJA

SPOTKANIE 7: Redukcja wymiarów: PCA, Probabilistic PCA

Zagadnienia optymalizacji i aproksymacji. Sieci neuronowe.

ANALIZA SEMANTYCZNA OBRAZU I DŹWIĘKU

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

Elementy statystyki wielowymiarowej

1.7. Eksploracja danych: pogłębianie, przeszukiwanie i wyławianie

Automatyczna predykcja. Materiały/konsultacje. Co to jest uczenie maszynowe? Przykład 6/10/2013. Google Prediction API, maj 2010

Analiza głównych składowych- redukcja wymiaru, wykł. 12

Aproksymacja funkcji a regresja symboliczna

10. Redukcja wymiaru - metoda PCA

Wstęp do sieci neuronowych, wykład 03 Warstwy RBF, jednostka ADALINE.

KLASYFIKACJA. Słownik języka polskiego

Modele DSGE. Jerzy Mycielski. Maj Jerzy Mycielski () Modele DSGE Maj / 11

Jądrowe klasyfikatory liniowe

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Uczenie sieci typu MLP

Spacery losowe generowanie realizacji procesu losowego

Sieci neuronowe do przetwarzania informacji / Stanisław Osowski. wyd. 3. Warszawa, Spis treści

Elementy inteligencji obliczeniowej

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych

WYKŁAD 2 i 3. Podstawowe pojęcia związane z prawdopodobieństwem. Podstawy teoretyczne. autor: Maciej Zięba. Politechnika Wrocławska

Elementy modelowania matematycznego

Rozdział 2: Metoda największej wiarygodności i nieliniowa metoda najmniejszych kwadratów

Metody eksploracji danych 2. Metody regresji. Piotr Szwed Katedra Informatyki Stosowanej AGH 2017

Prof. Stanisław Jankowski

Sztuczne sieci neuronowe. Krzysztof A. Cyran POLITECHNIKA ŚLĄSKA Instytut Informatyki, p. 335

Agnieszka Nowak Brzezińska Wykład III

Algorytm grupowania danych typu kwantyzacji wektorów

Systemy pomiarowo-diagnostyczne. Metody uczenia maszynowego wykład II 2017/2018

Projekt Sieci neuronowe

Regresyjne metody łączenia klasyfikatorów

Prawdopodobieństwo i statystyka

Wprowadzenie do teorii ekonometrii. Wykład 1 Warunkowa wartość oczekiwana i odwzorowanie liniowe

SPOTKANIE 11: Reinforcement learning

SPOTKANIE 1: Wprowadzenie do uczenia maszynowego

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

Popularne klasyfikatory w pakietach komputerowych

Testowanie modeli predykcyjnych

PODSTAWY STATYSTYCZNEJ ANALIZY DANYCH

Konstrukcja biortogonalnych baz dyskryminacyjnych dla problemu klasyfikacji sygnałów. Wit Jakuczun

Weryfikacja hipotez statystycznych

Agnieszka Nowak Brzezińska Wykład III

Wprowadzenie. Metody bayesowskie Drzewa klasyfikacyjne i lasy losowe Sieci neuronowe SVM. Klasyfikacja. Wstęp

Metody probabilistyczne klasyfikatory bayesowskie

Klasyfikacja i regresja Wstęp do środowiska Weka

Transkrypt:

Metody systemowe i decyzyjne w informatyce Laboratorium ZALICZENIE Zadanie nr 3 Rozpoznawanie ręcznie pisanych cyfr autorzy: A. Gonczarek, P. Klukowski, J.M. Tomczak, S. Zaręba, M. Zięba Cel zadania Celem zadania jest implementacja modelu, który pozwoli na klasyfikację ręcznie pisanych cyfr (przykładowe obrazy przedstawiono na rysunku 1). Wybór modelu jest dowolny, podobnie jak algorytmu uczenia, oraz ekstrakcji cech. Zaimplementowane podejście oceniane będzie poprzez poprawność predykcji (klasyfikacji) na próbie testowej. W ramach zadania do wykonania są następujące kroki: ˆ Ekstrakcja cech z obrazu. ˆ Wybór i implementacja modelu. ˆ Wybór i implementacja algorytmu uczenia. ˆ Predykcja dla nowego obrazu w oparciu o wybrany model. Rysunek 1: Przykładowe obrazy przedstawiające ręcznie pisane cyfry. Uwaga! Nie wszystkie z powyższych etapów muszą być koniecznie wykonane. Przykładem jest klasyfikator κ-nn, który może działać bezpośrednio na obrazach bez ekstrakcji cech oraz nie wymaga stosowania algorytmu uczenia, gdyż do predykcji wykorzystuje bezpośrednio ciąg uczący. W kolejnych podpunktach wskazane zostaną przykładowe rozwiązania poszczególnych etapów. Nie oznacza to, że należy ograniczać się wyłącznie do nich! 1

Ekstrakcja cech Dla skutecznej klasyfikacji zazwyczaj stosuje się ekstrakcję cech (ang. feature extraction) z obiektu (np. obrazu). Ekstrakcja cech polega na przetworzeniu obiektu do zestawu wielkości (cech), które reprezentują istotne informacje o obiekcie. Istnieje wiele sposobów ekstrakcji cech, natomiast dobór odpowiedniej metody jest zależny od rozpatrywanego zagadnienia, np. ekstrakcja cech z obrazów, sygnałów dźwiękowych, sygnałów medycznych. W dalszej części przedstawiono przykładowe metody ekstrakcji cech. Filtry Gabora. Jedną z metod ekstrakcji cech z obrazu są filtry Gabora. Idea filtrów Gabora opiera się na określoniu pewnych funkcji bazowych złożonych z funkcji gaussowskiej i sinusoidalnych. Wówczas, nakładając filtry Gabora na obraz dostajemy odpowiedz, która przekazywana jest do klasyfikatora. Więcej o filtrach Gabora można przeczytać np. w pracy: http: //personal.lut.fi/users/joni.kamarainen/downloads/publications/ipta2012.pdf Filtry Haara. Idea filtrów Haara polega na wykorzystaniu prostych obrazów, zazwyczaj prostokątnych, w których określa się jasne i czarne obszary, a następnie liczy się różnice między sumą pikseli w odpowiednich obszarach. Filtry te zawdzięczają swoją popularność dzięki łatwości implementacji oraz szybkości wyznaczenia cech przy zastosowaniu tzw. obrazów całkowych (ang. integral images). Więcej o filtrach Haara można przeczytać np. na stronie: http://en.wikipedia.org/wiki/ Haar-like_features, oraz w pracy: http://www.merl.com/reports/docs/tr2004-043.pdf Funkcje jądra. Odmiennym sposobem określania cech od filtrów Gabora czy Haara jest wykorzystanie zaobserwowanych obiektów. Przykładem takiego podejścia jest wybranie pewnego podzbioru M zaobserwowanych obrazów (sposób wyboru może być losowy lub metodyczny) oraz zdefiniowanie funkcji określającej podobieństwo między nowym obiektem a znanymi obiektami k(x new, x n ). Funkcja ta, jeśli spełnia pewne określone własności, nazywana się funkcją jądra (ang. kernel function, lub kernel). Wówczas wartość funkcji jądra dla każdego zapamiętanego obiektu jest cechą, a w rezultacie otrzymujemy ciąg M cech. Podobna idea wykorzystywana jest w tzw. radialnych sieciach neuronowych: http://en.wikipedia.org/wiki/radial_basis_function_network Analiza składowych głównych. Do ekstrakcji cech z obrazu można również wykorzystać analizę składowych głównych (ang. Principal Component Analysis, PCA). Idea PCA polega na znalezieniu przekształcenia liniowego wysokowymiarowej (oryginalnej) przestrzeni na niskowymiarową przestrzeń cech. Opis zastosowania PCA do ekstrakcji cech z obrazów można znaleźć np. w prezentacji http://cmp.felk.cvut.cz/~hlavac/teachpresen/11imageproc/15pca.pdf 2

Ekstrakcja ręcznie określonych cech. Czasami znajomość problemu pozwala na ręczne określenie cech. Przykładowo, dla ręcznie pisanych liter lub cyfr można zaproponować następujące cechy: ˆ Stosunek wysokości fragmentu symbolu do wysokości całego symbolu. ˆ Stosunek szerokości fragmentu symbolu do szerokości całego symbolu. ˆ Gęstość pikseli w wybranych fragmencie obrazu. Niemożliwe jest określenie ogólnej metodyki proponowania cech, ponieważ jest ona zależna od zagadnienia oraz pomysłowości projektanta. Warto zaznaczyć, że różne techniki ekstrakcji cech można ze sobą łączyć tworząć bogatszy zbiór cech, a także można je łączyć w sposób potokowy, np. wektor cech uzyskany przy pomocy filtrów Haara przekształcić z użyciem PCA. Model Modele generujące. Korzystanie z modeli generujących (ang. generative modeling) ma na celu modelowanie rozkładu łącznego zmiennych losowych φ (cechy) i y (klasa) za pomocą p(φ, y θ), gdzie θ R M oznacza wektor parametrów modelu. Zauważmy, że modele generujące pozwalają na faktoryzację rozkładu łącznego: 1 p(x, y) = p(φ y)p(y) (1) = p(y φ)p(φ). (2) Znając rozkład łączny cech i wyjść można najpierw wygenerować wartość klasy, a następnie wartości cech (wzór (1)), lub w pierwszej kolejności wygenerować wartości cech, a później wartość klasy (wzór (2)). Dlatego też modele dla rozkładu łącznego nazywane są generujące, ponieważ umożliwiają generowanie zarówno wartości klas, jak również cech. Przykładami modeli generujących są: ˆ Gaussian Discriminant Analysis (GDA): gdy cechy w poszczególnych klasach modelowane są rozkładami normalnymi p(φ y), a rozkład na klasy p(y) modelowany jest rozkładem wielopunktowym; ˆ Naive Bayes: podobnie jak GDA, z dodatkowym założeniem, że cechy są niezależne (diagonalne macierze kowariancji w rozkładach normalnych). Więcej przykładów modeli generujących można znaleźć np. w książce: http://www.cs.ubc. ca/~murphyk/mlbook/. 1 Dla przejrzystości pominięto warunkowanie θ. 3

Modele dyskryminujące. Korzystanie z modeli dyskryminujących (ang. discriminative modeling) ma na celu modelowanie rozkładu warunkowego p(y φ, θ), gdzie θ R M oznacza wektor parametrów modelu. W wielu zastosowaniach interesuje nas wyłącznie znalezienie zależności klasy od zadanych cech, natomiast poznanie zależności dot. cech jest nieistotne. Co więcej, zwróćmy uwagę, że do podejmowania decyzji rozkład p(y φ) jest wystarczający. Dlatego też podejście z modelowaniem wprost rozkładu y pod warunkiem φ nazywa się modelami dyskryminującymi. Przykładami modeli dyskryminujących są: ˆ Logistic Regression: przyjmujemy kombinację liniową cech, natomiast rozkład warunkowy modelowany jest za pomocą funkcji sigmoidalnej (przypadek dwuklasowy) lub softmax (przypadek wieloklasowy); ˆ κ-nearest Neighbor: dla zadanej funkcji jądra, rozkład prawdopodobieństwa klasy pod warunkiem cech estymowany jest w sposób nieparametryczny przy użyciu wartości klas dla κ N najbliższych obiektów; ˆ Sieć neuronowa, Multilayer Perceptron (MLP): jeżeli przyjmujemy funkcję sigmoidalną lub softmax na wyjściu sieci, to wówczas MLP może być traktowany jako probabilistyczny model dyskryminujący. Więcej o modelach dyskryminujących można znaleźć np. w książce: http://www.cs.ubc.ca/ ~murphyk/mlbook/. Modele funkcyjne. Trzecim podejściem jest zaproponowanie funkcji dyskryminującej (ang. discriminant function), która nie ma interpretacji probabilistycznej, ale która pozwala na przyporządkowaniu wektorowi cech wartości klasy. Przykładami modeli funkcyjnych są: ˆ Sieć neuronowa, Multilayer Perceptron (MLP): jeżeli przyjmujemy inną funkcję na wyjściu sieci niż funkcja sigmoidalna czy softmax (w konsekwencji należy wybrać inną funkcję celu uczenia niż funkcja wiarygodności), to wówczas MLP jest traktowana jako funkcja dyskryminująca; ˆ Support Vector Machines (SVM): jest to model dla przypadku dwuklasowego mający na celu znalezienie największego marginesu rozdzielającego klasy. W przypadku wieloklasowym należy wykorzystać K modeli i zastosować technikę predykcji 1 vs ALL. Więcej o funkcjach dyskryminujących można znaleźć np. w książce: http://www.cs.ubc.ca/ ~murphyk/mlbook/. 4

Uczenie Uczenie polega na estymacji parametrów modelu θ przy użyciu danych (ciągu treningowego) D = {(φ n, y n )} N n=1 poprzez minimalizację zadanej funkcji celu (kryterium uczenia). W przypadku modeli probabilistycznych zazwyczaj przyjmuje się ujemny logarytm funkcji wiarygodności (ang. negative log-likelihood) lub, dla zadanego rozkładu a priori na parametry, ujemny logarytm rozkładu a posteriori. 2 Natomiast w przypadku modeli nieprobabilistycznych (tj. funkcji dyskryminujących) należy zaproponować innego rodzaju funkcję celu, np. dla klasyfikacji binarnej może to być błąd średniokwadratowy lub entropia krzyżowa (ang. cross-entropy loss). Dodatkowo, w celu osiągnięcia zadanych własności modelu, do kryterium uczenia często dodaje się regularyzację (ang. regularization). Regularyzacja poprawia proces uczenia, np. poprzez przeciwdziałanie zbytniemu dopasowaniu modelu do danych (ang. overfitting) lub osiąganiu rozwiązań rzadkich (ang. sparse representation). Przykładem regularyzatora jest uwzględnienie normy l 2 na parametry. Czasem wartości parametrów minimalizujących kryterium uczenia przy zadanym ciągu obserwacji mogą być wyznaczone w postaci analitycznej (ang. closed form), jednakże dla większości użytecznych modeli nie jest to możliwe. Z tego powodu stosuje się numeryczne algorytmy optymalizacji. Do najczęściej stosowanych algorytmów w uczeniu maszynowym zalicza się metodę gradientu prostego (ang. gradient descent) lub jej wariant metodę stochastycznego gradientu prostego (ang. stochastic gradient descent), w której uaktualnianie wag w pojedynczej iteracji odbywa się przy użyciu pojedynczej lub co najwyżej kilku obserwacji na raz, tzw. mini-paczek (ang. mini-batch). W celu stosowania takiego podejścia należy wyznaczyć gradient kryterium uczenia lub przynajmniej jego aproksymację. Należy również dodać, że w przypadku niektórych modeli stosuje się dedykowane algorytmy uczenia, np. algorytm Sequential Minimal Optimization (SMO) dla SVM. Więcej na temat uczenia modeli można znaleźć np. w książce: http://www.cs.ubc.ca/~murphyk/ MLbook/. 2 Standardowo metoda ta zwana jest metodą maksymalnej a posteriori (MAP), jednak dla spójności w niniejszym dokumencie mówimy o minimalizacji funkcji celu, dlatego należy uwzględnić znak minus. 5

Predykcja Modele generujące. Po wyuczeniu modelu generującego, dla nowego obiektu φ new możemy wyznaczyć rozkład warunkowy p(y φ new ) korzystając ze wzoru Bayesa: 3 p(y φ new ) = p(φnew y)p(y) p(φ new ) = p(φnew y)p(y) y p(φnew y )p(y ) Ostatecznie wartość klasy określana jest na podstawie wartości prawdopodobieństwa, tj. predykowana wartość klasy dla nowego obiektu przyjmuje największą wartość prawdopodobieństwa: Modele dyskryminujące. y = arg max p(y φ new ). (3) y Po wyuczeniu modelu dyskryminującego, dla nowego obiektu dokonujemy predykcji analogicznie jak w przypadku modeli generujących z użyciem (3). Modele funkcyjne. Funkcja dyskryminująca przyporządkowuje obiektowi wartość klasy. Dlatego po jej wyuczeniu, predykcja polega na poznaniu wartości funkcji dyskryminującej dla nowego obiektu. Instrukcja wykonania zadania 1. Należy pobrać dane treningowe trainx.mat i trainy.mat ze strony kursu. Plik trainx.mat zawiera dane obrazami w postaci macierzy N D, które mają być wykorzystane w procesie uczenia (N = 60000). Każdy z obrazów jest przekształcony do D-wymiarowego wektora, który stanowi odrębny wiersz macierzy z danymi. Obrazy są wielkości 28 28 pikseli (D = 784). Aby zwizualizować wybrany wiersz x z macierzy trainx.mat należy przekształcić go do obrazu poleceniem reshape(x,28,28), a następnie użyć polecenia imshow. Plik trainy.mat zawiera N etykiet klas dla obrazów z pliku trainx.mat, które przyjmują wartości ze zbioru {0,..., 9} (wartość etykiety odpowiada cyfrze na obrazie). 2. Posiłkując się otrzymanymi danymi treningowymi, należy wyuczyć model, który następnie wykorzystany będzie do klasyfikacji cyfr na obrazach. Ewentualny ciąg walidacyjny należy wyróżnić samodzielnie. 3. W celu klasyfikacji obrazów należy uzupełnić funkcję predict w pliku predict.m w taki sposób, żeby funkcja dla macierzy wejściowej X, w której poszczególne wiersze zawierają 3 Dla przejrzystości pominięto warunkowanie θ. 6

obrazy do sklasyfikowania, uzupełniła wektor y o przewidywane etykiety klas (i-ty wiersz X odpowiada i-temu elementowi wektora y). 4. Jakość predykcji zaproponowanego modelu można sprawdzić raz dziennie poprzez załadowanie pliku predict.m plus ew. plików pomocniczych w postaci paczki zip na serwer: http://mlg.ii.pwr.edu.pl/msid/ Przeprowadzona zostanie wówczas weryfikacja jakości opracowanego modelu na podstawie 25% danych testowych. 5. Wielkość paczki zip nie może przekraczać 2 MB. Czas wykonania funkcji predict.m nie może przekraczać 1 minuty dla 2500 przykładów (25% zbioru testowego) oraz 4 minut dla 10000 przykładów (cały zbiór testowy). Dodatkowo plik predict.m musi znajdować się na wierzchu po rozpakowaniu paczki zip, a nie w dodatkowych podkatalogach. 6. Serwer wykonuje ewaluację programów codziennie o godzinie 00:00 z użyciem środowiska MATLAB 2014a. Należy zapewnić, aby wgrywany program był zgodny z tym standardem. 7. Gotowy program należy wgrać na serwer przed terminem 7.06.2015, 23.59 GMT+1. Ostateczny wynik, pozycja rankingowa oraz ocena zostanie wyliczona na podstawie całego zbioru testowego po tym terminie. Do oceny brany jest pod uwagę tylko ostatni program załadowany na serwer. 8. Aby zaliczyć kurs na ocenę pozytywną, jakość predykcji programu musi być wyższa niż 90% na całym zbiorze testowym. Należy wziąć pod uwagę, że jakość predykcji na 25% zbioru może różnić się nawet o 1% w stosunku do jakości na całym zbiorze. 7