Optymalizacja systemów

Podobne dokumenty
Metody systemowe i decyzyjne w informatyce

Metody systemowe i decyzyjne w informatyce

Rozpoznawanie obrazów

Metody systemowe i decyzyjne w informatyce

Metody systemowe i decyzyjne w informatyce

Rozpoznawanie obrazów

Rozpoznawanie obrazów

Metody systemowe i decyzyjne w informatyce

Rozpoznawanie obrazów

Rozpoznawanie obrazów

Metody systemowe i decyzyjne w informatyce

Optymalizacja systemów

Optymalizacja systemów

WYKŁAD 3. Klasyfikacja: modele probabilistyczne

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

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

Metody systemowe i decyzyjne w informatyce

Optymalizacja ciągła

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

SPOTKANIE 3: Regresja: Regresja liniowa

SPOTKANIE 6: Klasteryzacja: K-Means, Expectation Maximization


SPOTKANIE 4: Klasyfikacja: Regresja logistyczna

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

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

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

wiedzy Sieci neuronowe

Podstawy Sztucznej Inteligencji (PSZT)

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

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

Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I

Agnieszka Nowak Brzezińska Wykład III

Metody systemowe i decyzyjne w informatyce

KADD Minimalizacja funkcji

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

Agnieszka Nowak Brzezińska Wykład III

Metody systemowe i decyzyjne w informatyce

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Numeryczne metody optymalizacji Optymalizacja w kierunku. informacje dodatkowe

Metody systemowe i decyzyjne w informatyce

Klasyfikacja obiektów Drzewa decyzyjne (drzewa klasyfikacyjne)

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

Elementy inteligencji obliczeniowej

Uczenie sieci typu MLP

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

Metody Optymalizacji: Przeszukiwanie z listą tabu

Metody systemowe i decyzyjne w informatyce

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

Agnieszka Nowak Brzezińska

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu

KADD Minimalizacja funkcji

5. Analiza dyskryminacyjna: FLD, LDA, QDA

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

Systemy uczące się Lab 4

Zrównoleglona optymalizacja stochastyczna na dużych zbiorach danych

Algorytm grupowania danych typu kwantyzacji wektorów

Modele zapisane w przestrzeni stanów

Zadania laboratoryjne i projektowe - wersja β

REKURENCJA W JĘZYKU HASKELL. Autor: Walczak Michał

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Aproksymacja funkcji a regresja symboliczna

Statystyka opisowa. Wykład V. Regresja liniowa wieloraka

Zastosowania sieci neuronowych

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

ZADANIA OPTYMALIZCJI BEZ OGRANICZEŃ

Techniki uczenia maszynowego nazwa przedmiotu SYLABUS

Modelowanie rynków finansowych z wykorzystaniem pakietu R

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

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

Klasyfikacja LDA + walidacja

Testowanie modeli predykcyjnych

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

Podstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

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

Metoda określania pozycji wodnicy statków na podstawie pomiarów odległości statku od głowic laserowych

ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL. sin x2 (1)

SVM: Maszyny Wektorów Podpieraja cych

Wstęp do metod numerycznych Zadania numeryczne 2016/17 1

Segmentacja przez detekcje brzegów

Optymalizacja ciągła

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

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

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

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Oprogramowanie Systemów Obrazowania SIECI NEURONOWE

Podstawowe modele probabilistyczne

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

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

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Bezgradientowe metody optymalizacji funkcji wielu zmiennych. informacje dodatkowe

IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

ALGORYTM RANDOM FOREST

Wprowadzenie do uczenia maszynowego

Systemy pomiarowo-diagnostyczne. Metody uczenia maszynowego wykład I dr inż. 2015/2016

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

Zagadnienia optymalizacji i aproksymacji. Sieci neuronowe.

Prawdopodobieństwo i statystyka

Zapisywanie algorytmów w języku programowania

Transkrypt:

Optymalizacja systemów Laboratorium - problem detekcji twarzy autorzy: A. Gonczarek, J.M. Tomczak, S. Zaręba, P. Klukowski Cel zadania Celem zadania jest zapoznanie się z gradientowymi algorytmami optymalizacji w zastosowaniu do uczenia modelu regresji logistycznej oraz zaimplementowanie rozwiązania w środowisku MATLAB. Detekcja twarzy jako problem klasyfikacji Problem detekcji twarzy na obrazie 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 φ = (φ 1... φ D ) 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 φ za pomocą sigmoidalnej funkcji logistycznej: p(y = 1 φ, w) = σ(w T φ), (1) gdzie w oznacza D-wymiarowy wektor parametrów, sigmoidalna funkcja logistyczna: σ(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 φ, 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. (3) 1

Uczenie modelu jako problem optymalizacji Dla tak określonego problemu detekcji twarzy kluczowym aspektem jest wyznaczenie parametrów w, czyli nauczenie modelu. Zakładamy, że dysponujemy zbiorem treningowym D = {φ n, y n } N n=1, tj. zestawem fragmentów obrazów reprezentowanym przez cechy HOG wraz z etykietą y n {0, 1}, czy na fragmencie widnieje twarz, czy nie. W celu uczenia modelu wykorzystamy metodę maksymalnej wiarygodności (ang. maximum likelihood). Wprowadźmy następujące oznaczenie: σ n σ(w T φ n ). (4) Zmienna losowa y jest zmienną binarną, dlatego funkcja wiarygodności przyjmuje następującą postać: p(d w) = Biorąc ujemny logarytm otrzymujemy: ln p(d w) = N n=1 σ yn n (1 σ n ) 1 yn. (5) N ( yn ln σ n + (1 y n ) ln(1 σ n ) ). (6) n=1 Zadanie wyznaczenia wartości parametrów minimalizujących negatywny logarytm funkcji wiarygodności jest zadaniem optymalizacji bez ograniczeń: minimalizuj (po w) ln p(d w) Zauważmy, że postać σ n zależy od parametrów w, co uniemożliwia wyznaczenia analitycznego rozwiązania (6). Dlatego należy posłużyć się rozwiązaniem numerycznym. W tym celu zastosujemy gradientowe algorytmy optymalizacji. Algorytm gradientu prostego Oznaczmy naszą funkcję celu jako F (w) = ln p(d w). Algorytm gradientu prostego przedstawiono poniżej. Aby móc go zastosować należy wyznaczyć gradient w F (w). 2

Algorithm 1: Algorytm gradientu prostego Wejście : Punkt startowy x 0 domf, dokładność ε, krok η Wyjście: Punkt optymalny x dla funkcji F 1 x x 0 ; 2 while x x old 2 ε do 3 x old x; 4 x x F (x); 5 x x + η x; 6 end Implementacja w środowisku Matlab 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] = f(arg1,arg2,arg3,arg4) możemy zdefiniować wskaźnik na funkcję poleceniem: obj f=@(arg1,arg2)(f(arg1,arg2,value3,value4)) Wtedy zmienną obj f możemy przekazać jako argument do innej funkcji, a wywołanie obj f(value1,value2) jest równoznaczne z f(value1,value2,value3,value4) Mając zdefiniowany wskaźnik na funkcję można go wykorzystać we własnej implementacji algorytmów gradientu prostego, jak również przekazać go do implementacji dostępnych w środowisku Matlab, które są dostępne pod postacią funkcji fminunc(f obj,x0). Jej specyfikację można znaleźć na stronie http://www.mathworks.com/help/optim/ug/fminunc.html. Funkcja pobiera jako argument wskaźnik na funkcję w postaci przedstawionej powyżej (f obj) oraz punkt początkowy procesu optymalizacji (x 0). 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ć. 3

Zadanie do wykonania (5 pkt.) Po zaprezentowaniu działającego programu, prowadzący zadaje do kilku pytań kontrolnych mających na celu sprawdzenie poziomu zrozumienia zaimplementowanego w zadaniu kodu. Punkty są przyzwanane wyłącznie na podstawie udzielonych odpowiedzi, co oznacza że samo zaimplementowanie kodu, bez jego zrozumienia, nie gwarantuje uzyskania punktów. 1. Zaimplementować funkcję sigmoidalną (2) w pliku sigmoid.m. 2. Wyznaczyć gradient funkcji celu (6), 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. 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. Pytania kontrolne (5 pkt.) Prowadzący zadaje do kilku pytań kontrolnych osobie oddającej zadanie. Lista przykładowych pytań: 1. Wyznaczyć pochodną sigmoidalnej funkcji logistycznej. Zapisać ją jedynie przy pomocy wartości funkcji sigmoidalnej σ(a). 2. Wyznaczyć gradient funkcji celu (6). 3. Co to są algorytmy gradientowe? Jakich wymagają własności od funkcji celu? Do jakich problemów się je stosuje? 4. Za co odpowiada η w algorytmie gradientu prostego? Jak zachowuje się algorytm dla małych i dużych wartości tego parametru? 5. Kiedy algorytm gradientu prostego będzie zbieżny, a kiedy nie? Odpowiedź uzasadnić graficznie (narysować). 6. Jakie mogą być inne warunki stopu kończące działanie algorytmu? Wymienić trzy różne. Czy można je ze sobą łączyć? 4

7. Jaka jest różnica pomiędzy minimum lokalnym i globalnym? Dla jakiej klasy funkcji algorytm gradientu prostego pozwala na znalezienie minimum globalnego? 8. Na czym polega problem optymalizacji przedstawiony w zadaniu? Co jest zmiennymi decyzyjnymi, a co funkcją celu? 9. W jaki sposób zmodyfikować algorytm gradientu prostego, aby rozwiązywał zadanie maksymalizacji? Czy można ten sam efekt osiągnąć poprzez modyfikację funkcji celu? 10. Jaka jest złożoność obliczeniowa liczenia gradientu w powyższym zadaniu? Jak zależy ona liczby przykładów uczących oraz od liczby parametrów w? 5