Metody systemowe i decyzyjne w informatyce

Podobne dokumenty
Rozpoznawanie obrazów

Metody systemowe i decyzyjne w informatyce

Optymalizacja systemów

Metody systemowe i decyzyjne w informatyce

Rozpoznawanie obrazów

Metody systemowe i decyzyjne w informatyce

Rozpoznawanie obrazów

Rozpoznawanie obrazów

Metody systemowe i decyzyjne w informatyce

Optymalizacja ciągła

Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I


Rozpoznawanie obrazów

WYKŁAD 3. Klasyfikacja: modele probabilistyczne

Agnieszka Nowak Brzezińska Wykład III

Metody systemowe i decyzyjne w informatyce

SPOTKANIE 6: Klasteryzacja: K-Means, Expectation Maximization

SPOTKANIE 3: Regresja: Regresja liniowa

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

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

Optymalizacja systemów

Metody systemowe i decyzyjne w informatyce

Optymalizacja systemów

Metody systemowe i decyzyjne w informatyce

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

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

Elementy inteligencji obliczeniowej

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

Klasyfikatory: k-nn oraz naiwny Bayesa. Agnieszka Nowak Brzezińska Wykład IV

Algorytm grupowania danych typu kwantyzacji wektorów

Agnieszka Nowak Brzezińska Wykład III

SPOTKANIE 4: Klasyfikacja: Regresja logistyczna

Metody systemowe i decyzyjne w informatyce

WYKŁAD 2. Problem regresji - modele liniowe

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

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

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

Testowanie modeli predykcyjnych

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

Klasyfikacja LDA + walidacja

Metody systemowe i decyzyjne w informatyce

8. Neuron z ciągłą funkcją aktywacji.

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

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

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

Podstawowe modele probabilistyczne

Agnieszka Nowak Brzezińska

Zrównoleglona optymalizacja stochastyczna na dużych zbiorach danych

Aproksymacja funkcji a regresja symboliczna

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

Uczenie sieci typu MLP

Zastosowania sieci neuronowych

Oprogramowanie Systemów Obrazowania SIECI NEURONOWE

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

METODY INŻYNIERII WIEDZY

Wprowadzenie do uczenia maszynowego

Zastosowania sieci neuronowych

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

Podstawy Sztucznej Inteligencji (PSZT)

ALGORYTM RANDOM FOREST

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

Metody eksploracji danych Laboratorium 2. Weka + Python + regresja

Politechnika Warszawska

wiedzy Sieci neuronowe

Projekt Sieci neuronowe

Klasyfikacja obiektów Drzewa decyzyjne (drzewa klasyfikacyjne)

Wstęp. Regresja logistyczna. Spis treści. Hipoteza. powrót

Metody klasyfikacji danych - część 1 p.1/24

Matlab podstawy + testowanie dokładności modeli inteligencji obliczeniowej

5. Analiza dyskryminacyjna: FLD, LDA, QDA

Jakość uczenia i generalizacja

Aby mówić o procesie decyzyjnym Markowa musimy zdefiniować następujący zestaw (krotkę): gdzie:

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

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

KADD Minimalizacja funkcji

Hierarchiczna analiza skupień

IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ

Zawansowane modele wyborów dyskretnych

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

Wprowadzenie. { 1, jeżeli ˆr(x) > 0, pozatym. Regresja liniowa Regresja logistyczne Jądrowe estymatory gęstości. Metody regresyjne

Systemy uczące się Lab 4

Algorytmy metaheurystyczne Wykład 11. Piotr Syga

KADD Minimalizacja funkcji

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

Programowanie celowe #1

Modelowanie rynków finansowych z wykorzystaniem pakietu R

Wprowadzenie do uczenia maszynowego. Jakub Tomczak

Ćwiczenie 3: Wprowadzenie do programu Matlab

Algorytm grupowania danych typu kwantyzacji wektorów

//warunki początkowe m=500; T=30; c=0.4; t=linspace(0,t,m); y0=[-2.5;2.5];

Elementy modelowania matematycznego

Inteligentne systemy decyzyjne: Uczenie maszynowe sztuczne sieci neuronowe

SPOTKANIE 11: Reinforcement learning

P R Z E T W A R Z A N I E S Y G N A Ł Ó W B I O M E T R Y C Z N Y C H

Spacery losowe generowanie realizacji procesu losowego

Dokumentacja. Kalibracja parametrów modelu Hestona za rozszerzonego filtra Kalmana. Mikołaj Bińkowski Wiktor Gromniak

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa

Zapisywanie algorytmów w języku programowania

Sieć przesyłająca żetony CP (counter propagation)

Transkrypt:

Metody systemowe i decyzyjne w informatyce Laboratorium MATLAB Zadanie nr 3 Detekcja twarzy autorzy: A. Gonczarek, J.M. Tomczak, S. Zaręba, M. Zięba Cel zadania Celem zadania jest zaimplementowanie algorytmów optymalizacji gradientu prostego i stochastycznego gradientu prostego w zastosowaniu do zadania detekcji twarzy na zdjęciu. Detekcja twarzy jako problem klasyfikacji Problem detekcji twarzy na obrazie I polega na zaklasyfikowaniu wybranych fragmentów obrazu jako twarzy człowieka. Korzystając z techniki okna przesuwnego (ang. shifting window) obraz dzielony jest na prostokąty, na których dokonywana jest klasyfikacja. Każdy wyszczególniony fragment obrazu opisany jest za pomocą wektora cech x = (1, φ 1 (I)... φ D 1 (I)) T otrzymanych za pomocą deskrytporów HOG (ang. Histogram of Oriented Gradients). 1 Dla każdego fragmentu obrazu należy rozwiązać problem klasyfikacji z dwoma klasami y {0, 1}, polegający na przypisaniu fragmentowi obrazu etykiety twarzy, y = 1, lub braku twarzy, y = 0. Zdefiniujmy prawdopodobieństwo wystąpienia twarzy na zadanym fragmencie obrazu reprezentowanym przez cechy x za pomocą funkcji sigmoidalnej: p(y = 1 x, w) = σ(w T x), (1) gdzie w oznacza D-wymiarowy wektor parametrów, funkcja sigmoidalna: σ(a) = 1 1 + exp( a). (2) Klasyfikacja zadanego fragmentu odbywa się poprzez sprawdzenie, czy prawdopodobieństwo wystąpienia twarzy jest większe niż zadana wartość progowa θ [0, 1]: y 1, jeśli p(y = 1 x, w) θ, = 0, w przeciwnym przypadku. Klasyfikator w tak podanej postaci nazywa się regresją logistyczną. 1 Sposób otrzymania deksryptorów nie jest istotny dla zadania i jest pominięty w opracowaniu. Zainteresowanych odsyłamy do Wikipedii, gdzie można znaleźć odnośniki do prac źródłowych http://en.wikipedia.org/wiki/ Histogram_of_oriented_gradients. 1 (3)

Uczenie modelu jako problem optymalizacji Dla tak określonego problemu detekcji twarzy kluczowym aspektem jest wyznaczenie parametrów w, czyli uczenie modelu. Zakładamy, że dysponujemy zbiorem treningowym D = {x n, y n } N n=1, gdzie x n jest zestawem fragmentów obrazów reprezentowanym przez cechy HOG oraz wartością stałą równą 1, y n jest etykietą obrazu określającą, czy na fragmencie widnieje twarz, czy nie. W celu uczenia modelu wykorzystamy metodę maksymalnej wiarygodności (ang. maximum likelihood). Dla zadanego x, zmienna losowa y jest zmienną losową binarną o następującym rozkładzie: Wprowadźmy następujące oznaczenie: p(y x, w) = σ(w T x) y (1 σ(w T x)) 1 y. (4) σ n σ(w T x n ). (5) Dla rozkładu (4) i oznaczenia (5), funkcja wiarygodności przyjmuje następującą postać: p(d w) = Biorąc negatywny logarytm otrzymujemy: ln p(d w) = N n=1 σ yn n (1 σ n ) 1 yn. (6) N ( yn ln σ n + (1 y n ) ln(1 σ n ) ). (7) n=1 Funkcję celu uczenia definiujemy w oparciu o negatywny logarytm funkcji wiarygodności, którą dalej oznaczamy w następujący sposób: 2 L(w) = 1 N ln p(d w). (8) Zadanie wyznaczenia wartości parametrów minimalizujących funkcję celu jest zadaniem optymalizacji bez ograniczeń: minimalizuj (po w) L(w) Zauważmy, że postać σ n zależy od parametrów w, co uniemożliwia wyznaczenia analitycznego rozwiązania (7). Dlatego należy posłużyć się rozwiązaniem numerycznym. W tym celu zastosujemy algorytm gradientu prostego i algorytm stochastycznego gradientu prostego. 2 Przemnożenie funkcji celu przez stałą nie zmienia rozwiązania, natomiast przeskalowanie negatywnego logarytmu funkcji wiarygodności przez odwrotność liczby danych pozwoli na uniezależnienie się od liczności zbioru danych i w konsekwencji na prostsze porównanie rozwiązań. 2

Algorytm gradientu prostego Algorytm gradientu prostego przedstawiono poniżej. Aby móc zastosować algorytm gradientu prostego należy wyznaczyć gradient w L(w). Algorithm 1: Metoda gradientu prostego Wejście : Funkcja L, punkt startowy w 0 doml, liczba epok K, krok uczenia η Wyjście: Punkt optymalny w dla funkcji celu L 1 w w 0 ; 2 for k = 1,..., K do 3 w L(w); 4 w w + η w; 5 end UWAGA! W Matlabie funkcję celu do algorytmu optymalizacji przekazuje się przez tzw. wskaźnik na funkcję, aby algorytm mógł ją wywoływać. Przykładowo dla funkcji zależnej od kilku argumentów: [L,grad] = cost function(arg1,arg2,arg3,arg4) możemy zdefiniować wskaźnik na funkcję poleceniem: obj fun = @(arg1,arg2)(cost function(arg1,arg2,value3,value4)) Wtedy zmienną obj fun możemy przekazać jako argument do innej funkcji. Wywołanie obj fun(value1,value2) wywołuje cost function(value1,value2,value3,value4). Algorytm stochastycznego gradientu prostego Algorytm gradientu prostego wymaga policzenia gradientu dla całego zbioru danych, co w przypadku dużej liczności danych wiąże się z długim czasem działania. Dodatkowo, liczenie gradientu dla całego zbioru danych zazwyczaj prowadzi do dużej liczby kroków potrzebnych do zbiegnięcia metody. W celu zaradzenia tym problemom stosuje się stochastyczny gradient prosty, który operuje na podzbiorach danych. Zauważmy, że funkcję celu możemy zapisać za pomocą sumy ze względu na obserwacje: ln p(d w) = 1 N N ln p(y n x n, w). n=1 W ogólniejszej postaci możemy podzielić zbiór danych na M paczek danych o rozmiarze N b 3

(ang. mini-batch) D = {X m, Y m } M m=1 i wówczas: L(w) = 1 N ln p(d w) = 1 N ln p(y n x n, w) N n=1 = 1 M N b ln p(y nb x nb, w) MN b m=1 n b =1 = 1 M 1 ln p(y m X m, w) M m=1 N b = 1 M L(w; X m, Y m ), M m=1 gdzie w ostatnim kroku zdefiniowaliśmy wartość funkcji celu policzoną na pojedynczym minibatchu: L(w; X m, Y m ) = 1 N b N b n b =1 ln p(y nb x nb, w). (9) Zauważmy, że dla N b = N otrzymujemy funkcję celu (8). W szczególnym przypadku można stosować mini-batche o rozmiarze N b = 1, ale w praktyce wartość tę przyjmuje się większą, np. N b = 50. Okazuje się, że dla N b > 1 algorytm stochastycznego gradientu prostego zdecydowanie szybciej zbiega niż algorytm gradientu prostego. Algorytm stochastycznego gradientu prostego przedstawiono poniżej. Aby móc zastosować algorytm stochastycznego gradientu prostego należy wyznaczyć gradient w L(w; X m, Y m ). Algorithm 2: Metoda stochastycznego gradientu prostego Wejście : Funkcja L, punkt startowy w 0 doml, rozmiar mini-batcha N b, liczba epok K, krok uczenia η Wyjście: Punkt optymalny w dla funkcji L 1 w w 0 ; 2 Podziel zbiór danych D na mini-batche {X m, Y m } M m=1; 3 for k = 1,..., K do 4 for m = 1,..., M do 5 w w L(w; X m, Y m ); 6 w w + η w; 7 end 8 end W implementacji mini-batche należy stworzyć z zachowaniem kolejności przykładów, tj. przykładowo dla zbioru złożonego z 400 przykładów i mini-batcha o wielkości 100, pierwszy mini-batch powinien zawierać pierwsze 100 przykładów, drugi kolejne 100 itd. 4

Regularyzacja Zazwyczaj w procesie uczenia stosuje się zmodyfikowaną funkcję celu poprzez wprowadzenie regularyzacji. W rozważanym problemie wprowadzamy regularyzację l 2 na parametry (oprócz wyrazu wolnego, czyli bez wagi dla cechy x 0, która jest stale równa 1): L λ (w) = L(w) + λ 2 w 0 2 2, (10) gdzie w 0 = (w 1,..., w D 1 ) T jest wektorem wag bez pierwszego parametru, tzw. wyrazu wolnego (ang. bias) w 0, λ > 0 oznacza współczynnik regularyzacji. Selekcja modelu W rozważanym problemie mamy do czynienia z dwoma wielkościami, których nie wyuczamy w oparciu o dane, tj. wartość progowa klasyfikacji θ oraz wartość współczynnika regularyzacji λ. W przypadku, gdy dysponujemy zbiorem walidacyjnym D val, możemy przeprowadzić selekcję tych wartości. W celu oceny modelu w oparciu o wybrane wielkości obu parametrów, stosować będziemy miarę F-measure: F (D val ; θ, λ, w) = gdzie T P (ang. true positives) oznacza liczbę przykładów z D val 2T P 2T P + F P + F N, (11) o etykiecie 1, które model o parametrach w zaklasyfikował jako 1, F P (ang. false positives) to liczba przykładów o etykiecie 0, które model zaklasyfikował jako 1, F N (ang. false negatives) to liczba przykładów o etykiecie 1, które model zaklasyfikował jako 0. Wybór miary F-measure w rozważanym zadaniu nie jest przypadkowy, ponieważ pozwala ona na ocenę zbiorów, które nie są zbalansowane, tj. liczności klas w zbiorze uczącym są znacząco różne. Zauważmy, że w problemie detekcji twarzy do czynienia mamy z sytuacją, gdy zdecydowana większość obrazu nie zawiera twarzy. W konsekwencji otrzymujemy problem danych niezbalansowanych. Procedura selekcji modelu jest następująca: 3 3 Zwróćmy uwagę, że wybór wartości progowej klasyfikacji nie wymaga ponownego wyuczenia modelu. 5

Algorithm 3: Procedura selekcji modelu Wejście : Zbiór walidacyjny D val, zbiór wartości progowych Θ, zbiór wartości współczynnika regularyzacji Λ Wyjście: Wartości optymalnych θ i λ 1 for λ Λ do 2 Znajdź rozwiązanie w dla funkcji celu L λ (w) ; 3 for θ Θ do 4 Policz wartość F (D val ; θ, λ, w) ; 5 end 6 end 7 Zwróć wartości λ i θ, dla których wartość F-measure była największa. W implementacji do szukania wartości parametrów w zastosować algorytm stochastycznego gradientu prostego. Funkcję celu z regularyzacją l 2 przekazywać algorytmowi poprzez odpowiednio definiowany wskaźnik na funkcję. Testowanie poprawności działania Do sprawdzania poprawności działania zaproponowanych rozwiązań służy funkcja main w pliku main.m. W pliku main.m nie wolno czegokolwiek zmieniać ani dopisywać. Instrukcja wykonania zadania 1. Zaimplementować funkcję sigmoidalną (2) w pliku sigmoid.m. 2. Wyznaczyć gradient funkcji celu (8), następnie zaimplementować jej wartość oraz wartość gradientu w pliku logistic cost function.m. 3. Zaimplementować funkcję wyznaczającą wartości parametrów w za pomocą algorytmu gradientu prostego w pliku gradient descent.m. Funkcja dodatkowo ma zwracać wartości funkcji celu dla każdej iteracji algorytmu. 4. Zaimplementować funkcję wyznaczającą wartości parametrów w za pomocą stochastycznego algorytmu gradientu prostego w pliku stochastic gradient descent.m. Funkcja dodatkowo ma zwracać wartości funkcji celu wywołanej dla całego zbioru treningowego dla każdej iteracji algorytmu. 5. Wyznaczyć gradient funkcji celu (10), następnie zaimplementować jej wartość oraz wartość gradientu w pliku regularized logistic cost function.m. 6

6. Zaimplementować funkcję dokonującej predykcji (3) na podstawie nauczonego modelu w pliku prediction.m. 7. Zaimplementować wyliczenie miary F-measure (11) w pliku f measure.m. 8. Zaimplementować procedurę selekcji modelu w pliku model selection.m. Dodatkowo funkcja ma zwrócić parametry dla najlepszego modelu oraz macierz z wartościami miary F- measure dla każdej pary hiperparametrów (λ, θ). Efekt końcowy działania programu powinien być taki, jak na Rysunku 1. UWAGA! Wszelkie nazwy funkcji i zmiennych w plikach *.m muszą pozostać zachowane. Zmiana jakichkolwiek nazw i dodanie fragmentów kodu poza wskazanymi miejscami skutkować będzie otrzymaniem 0 pkt. Rysunek 1: Wynik poprawnie działającego zadania. 7

Pytania kontrolne 1. Wyznaczyć pochodną sigmoidalnej funkcji logistycznej. Zapisać ją jedynie przy pomocy wartości funkcji sigmoidalnej σ(a). 2. Wyznaczyć gradient funkcji celu (8) lub gradient funkcji celu z regularyzacją (10). 3. Co to jest model regresji logistycznej? W jaki sposób modeluje warunkowe prawdopodobieństwo? 4. Za co odpowiada wartość progowa θ? W jaki sposób systematycznie podejść do ustalenia jej wartości? 5. Co to jest miara F-measure? Do czego jest wykorzystywana w powyższym zadaniu? Dlaczego zamiast niej nie stosuje się tutaj zwykłej poprawności klasyfikacji na ciągu walidacyjnym? 6. Za co odpowiada η w algorytmie gradientu prostego i stochastycznego gradientu prostego? Jak algorytmy będą zachowywać się dla różnych wielkości tego parametru? 7. Na czym polega detekcja obiektu na zdjęciu? Dlaczego jest to problem klasyfikacji? 8. Dlaczego algorytm stochastycznego gradientu prostego zbiega znacznie szybciej? Jakie jest znaczenie wielkości mini-batcha dla zbieżności algorytmu? Jak będzie zachowywał się dla małych mini-batchy, a jak dla dużych? 9. W jaki sposób można dodać regularyzację l 2 na parametry modelu regresji logistycznej? Jaki efekt wówczas osiągniemy? Kiedy konieczne jest stosowanie regularyzacji, a kiedy nie? 10. Na czym polega procedura selekcji modelu w tym zadaniu? Jakie hiperparametry wyznaczamy? Które z nich wymagają każdorazowego nauczenia modelu, a które nie i dlaczego? 8