Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I

Podobne dokumenty
Optymalizacja ciągła

Metody Optymalizacji: Przeszukiwanie z listą tabu

Zrównoleglona optymalizacja stochastyczna na dużych zbiorach danych

Elementy inteligencji obliczeniowej

Techniki Optymalizacji: Metody regresji

Techniki Optymalizacji: Optymalizacja wypukła

Analiza matematyczna i algebra liniowa Macierze

Analiza matematyczna i algebra liniowa Elementy równań różniczkowych

Analiza matematyczna i algebra liniowa Macierze

Rozpoznawanie obrazów

Optymalizacja ciągła

Analiza matematyczna i algebra liniowa Pochodna funkcji

Optymalizacja ciągła

Metody systemowe i decyzyjne w informatyce

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

Optymalizacja ciągła

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

Statystyka opisowa. Wykład V. Regresja liniowa wieloraka

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

KADD Minimalizacja funkcji

Inteligentne systemy decyzyjne: Uczenie maszynowe sztuczne sieci neuronowe

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

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

Uczenie sieci typu MLP

Funkcje charakterystyczne zmiennych losowych, linie regresji 1-go i 2-go rodzaju

JEDNORÓWNANIOWY LINIOWY MODEL EKONOMETRYCZNY

Optymalizacja systemów

Analiza matematyczna i algebra liniowa Wprowadzenie Ciągi liczbowe

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

Wstęp do sieci neuronowych, wykład 07 Uczenie nienadzorowane cd.

Zastosowanie modelu regresji logistycznej w ocenie ryzyka ubezpieczeniowego. Łukasz Kończyk WMS AGH

Uczenie sieci radialnych (RBF)

Szczegółowy program kursu Statystyka z programem Excel (30 godzin lekcyjnych zajęć)

Optymalizacja Ci gªa

WYKŁAD 9 METODY ZMIENNEJ METRYKI

Praca dyplomowa magisterska

ANALIZA REGRESJI SPSS

Metody numeryczne. materiały do wykładu dla studentów

Estymacja wektora stanu w prostym układzie elektroenergetycznym

Metody systemowe i decyzyjne w informatyce

I EKSPLORACJA DANYCH

Regresja nieparametryczna series estimator

Algorytmy metaheurystyczne Wykład 6. Piotr Syga

Narzędzia statystyczne i ekonometryczne. Wykład 1. dr Paweł Baranowski

Idea. θ = θ 0, Hipoteza statystyczna Obszary krytyczne Błąd pierwszego i drugiego rodzaju p-wartość

Monte Carlo, bootstrap, jacknife

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

SZTUCZNA INTELIGENCJA

Optymalizacja. Przeszukiwanie lokalne

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

5. Model sezonowości i autoregresji zmiennej prognozowanej

Uczenie ze wzmocnieniem

Podstawy Sztucznej Inteligencji (PSZT)

wiedzy Sieci neuronowe

Wojciech Skwirz

Rozkłady statystyk z próby

KADD Minimalizacja funkcji

Wykład 9 Testy rangowe w problemie dwóch prób

Szczegółowy program kursu Statystyka z programem Excel (30 godzin lekcyjnych zajęć)

parametrów strukturalnych modelu = Y zmienna objaśniana, X 1,X 2,,X k zmienne objaśniające, k zmiennych objaśniających,

Metody numeryczne I Równania nieliniowe


Zadanie 1 Zakładając liniową relację między wydatkami na obuwie a dochodem oszacować MNK parametry modelu: y t. X 1 t. Tabela 1.

STATYSTYKA I DOŚWIADCZALNICTWO Wykład 7

DOPASOWYWANIE KRZYWYCH

ZADANIA OPTYMALIZCJI BEZ OGRANICZEŃ

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

ALGORYTM RANDOM FOREST

Wprowadzenie do uczenia maszynowego

10. Techniki minimalizacji a sieci neuronowe

Analiza składowych głównych. Wprowadzenie

Optymalizacja. Symulowane wyżarzanie

Ekonometria. Dobór postaci analitycznej, transformacja liniowa i estymacja modelu KMNK. Paweł Cibis 9 marca 2007

Jakość uczenia i generalizacja

Mikroekonometria 5. Mikołaj Czajkowski Wiktor Budziński

Ekonometria. Modele regresji wielorakiej - dobór zmiennych, szacowanie. Paweł Cibis pawel@cibis.pl. 1 kwietnia 2007

ALGORYTMY EWOLUCYJNE W OPTYMALIZACJI JEDNOKRYTERIALNEJ

Redukcja wariancji w metodach Monte-Carlo

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

Uczenie się pojedynczego neuronu. Jeśli zastosowana zostanie funkcja bipolarna s y: y=-1 gdy z<0 y=1 gdy z>=0. Wówczas: W 1 x 1 + w 2 x 2 + = 0

Zależność. przyczynowo-skutkowa, symptomatyczna, pozorna (iluzoryczna),

Analiza współzależności zjawisk

Oprogramowanie Systemów Obrazowania SIECI NEURONOWE

Testowanie modeli predykcyjnych

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

Regresja linearyzowalna

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Rys Wykres kosztów skrócenia pojedynczej czynności. k 2. Δk 2. k 1 pp. Δk 1 T M T B T A

Dopasowanie prostej do wyników pomiarów.

Własności statystyczne regresji liniowej. Wykład 4

Metody Numeryczne Optymalizacja. Wojciech Szewczuk

3. Modele tendencji czasowej w prognozowaniu

Uogolnione modele liniowe

Zastosowania sieci neuronowych

WYKŁAD 8 ANALIZA REGRESJI

Statystyka. Wykład 9. Magdalena Alama-Bućko. 24 kwietnia Magdalena Alama-Bućko Statystyka 24 kwietnia / 34

Ekonometria. Dobór postaci analitycznej, transformacja liniowa i estymacja modelu KMNK. Paweł Cibis 23 marca 2006

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

Wydział Matematyki. Testy zgodności. Wykład 03

Laboratorium 5 Przybliżone metody rozwiązywania równań nieliniowych

Transkrypt:

Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I Wojciech Kotłowski Instytut Informatyki Politechniki Poznańskiej email: imię.nazwisko@cs.put.poznan.pl pok. 2 (CW) tel. (61)665-2936 konsultacje: piątek 15:10-16:40 Slajdy dostępne pod adresem: http://www.cs.put.poznan.pl/wkotlowski/to/ 27.11.2018 1 / 37

Spis treści 1 Metoda stochastycznego spadku wzdłuż gradientu 2 Stochastyczny gradient dla regresji liniowej 3 Przykład zastosowania SGD 2 / 37

Spis treści 1 Metoda stochastycznego spadku wzdłuż gradientu 2 Stochastyczny gradient dla regresji liniowej 3 Przykład zastosowania SGD 3 / 37

Metoda spadku wzdłuż gradientu (Cauchy ego) Minimalizacja funkcji L(w): 1 Zaczynamy od wybranego rozwiązania startowego, np. w 0 = 0. 2 Dla k = 1, 2,... aż do zbieżności Wyznaczamy gradient w punkcie w k 1, L (w k 1 ). Robimy krok wzdłuż negatywnego gradientu: w k = w k 1 α k L (w k 1 ), gdzie α k jest długością kroku ustaloną np. przez przeszukiwanie liniowe. 4 / 37

Specyficzna postać funkcji celu W większości problemów uczenia maszynowego funkcja celu ma następującą postać: n L(w) = l i (w) i=1 5 / 37

Specyficzna postać funkcji celu W większości problemów uczenia maszynowego funkcja celu ma następującą postać: n L(w) = l i (w) i=1 L jest sumarycznym błędem na zbiorze uczącym. 5 / 37

Specyficzna postać funkcji celu W większości problemów uczenia maszynowego funkcja celu ma następującą postać: n L(w) = l i (w) i=1 L jest sumarycznym błędem na zbiorze uczącym. l i to błędy na poszczególnych obserwacjach. 5 / 37

Specyficzna postać funkcji celu przykłady 6 / 37

Specyficzna postać funkcji celu przykłady Regresja liniowa metoda najmniejszych kwadratów n L(w) = (y i w x i ) 2 }{{} i=1 l i (w) 6 / 37

Specyficzna postać funkcji celu przykłady Regresja liniowa metoda najmniejszych kwadratów n L(w) = (y i w x i ) 2 }{{} i=1 l i (w) Regresja liniowa min. wartości bezwzględnych błędów n L(w) = y i w x i }{{} i=1 l i (w) 6 / 37

Specyficzna postać funkcji celu przykłady Regresja liniowa metoda najmniejszych kwadratów n L(w) = (y i w x i ) 2 }{{} i=1 l i (w) Regresja liniowa min. wartości bezwzględnych błędów n L(w) = y i w x i }{{} i=1 l i (w) Klasyfikacja liniowa regresja logistyczna: n ( ) L(w) = log 1 + exp( y i w x i ) i=1 } {{ } l i (w) 6 / 37

Specyficzna postać funkcji celu przykłady Regresja liniowa metoda najmniejszych kwadratów n L(w) = (y i w x i ) 2 }{{} i=1 l i (w) Regresja liniowa min. wartości bezwzględnych błędów n L(w) = y i w x i }{{} i=1 l i (w) Klasyfikacja liniowa regresja logistyczna: n ( ) L(w) = log 1 + exp( y i w x i ) i=1 } {{ } l i (w) Klasyfikacja liniowa funkcja zawiasowa: n ) L(w) = (1 y i w x i + i=1 }{{} l i (w) 6 / 37

Metoda stochastycznego spadku wzdłuż gradientu Idea Zamiast obliczać gradient na całej funkcji L, w danym kroku oblicz gradient tylko na pojedynczym elemencie l i. 7 / 37

Metoda stochastycznego spadku wzdłuż gradientu Idea Zamiast obliczać gradient na całej funkcji L, w danym kroku oblicz gradient tylko na pojedynczym elemencie l i. Skąd nazwa stochastyczny? Ponieważ oryginalnie wybiera się element l i losowo... 7 / 37

Metoda stochastycznego spadku wzdłuż gradientu Idea Zamiast obliczać gradient na całej funkcji L, w danym kroku oblicz gradient tylko na pojedynczym elemencie l i. Skąd nazwa stochastyczny? Ponieważ oryginalnie wybiera się element l i losowo...... ale w praktyce zwykle przechodzi się po całym zbiorze danych w losowej kolejności. 7 / 37

Metoda stochastycznego spadku wzdłuż gradientu Minimalizacja funkcji L(w): 8 / 37

Metoda stochastycznego spadku wzdłuż gradientu Minimalizacja funkcji L(w): 1 Zaczynamy od wybranego rozwiązania startowego, np. w 0 = 0. 8 / 37

Metoda stochastycznego spadku wzdłuż gradientu Minimalizacja funkcji L(w): 1 Zaczynamy od wybranego rozwiązania startowego, np. w 0 = 0. 2 Dla k = 1, 2,... aż do zbieżności 8 / 37

Metoda stochastycznego spadku wzdłuż gradientu Minimalizacja funkcji L(w): 1 Zaczynamy od wybranego rozwiązania startowego, np. w 0 = 0. 2 Dla k = 1, 2,... aż do zbieżności Wylosuj i {1,..., n}. 8 / 37

Metoda stochastycznego spadku wzdłuż gradientu Minimalizacja funkcji L(w): 1 Zaczynamy od wybranego rozwiązania startowego, np. w 0 = 0. 2 Dla k = 1, 2,... aż do zbieżności Wylosuj i {1,..., n}. Wyznaczamy gradient funkcji l i w punkcie w k 1, li (w k 1 ). 8 / 37

Metoda stochastycznego spadku wzdłuż gradientu Minimalizacja funkcji L(w): 1 Zaczynamy od wybranego rozwiązania startowego, np. w 0 = 0. 2 Dla k = 1, 2,... aż do zbieżności Wylosuj i {1,..., n}. Wyznaczamy gradient funkcji l i w punkcie w k 1, li (w k 1 ). Robimy krok wzdłuż negatywnego gradientu: gdzie α k jest długością kroku. w k = w k 1 α k li (w k 1 ), 8 / 37

Zalety metody stochastycznego spadku wzdłuż gradientu 9 / 37

Zalety metody stochastycznego spadku wzdłuż gradientu Szybkość: obliczenie gradientu wymaga wzięcia tylko jednej obserwacji. 9 / 37

Zalety metody stochastycznego spadku wzdłuż gradientu Szybkość: obliczenie gradientu wymaga wzięcia tylko jednej obserwacji. Skalowalność: cały zbiór danych nie musi nawet znajdować się w pamięci operacyjnej. 9 / 37

Zalety metody stochastycznego spadku wzdłuż gradientu Szybkość: obliczenie gradientu wymaga wzięcia tylko jednej obserwacji. Skalowalność: cały zbiór danych nie musi nawet znajdować się w pamięci operacyjnej. Prostota: gradient funkcji l i daje bardzo prosty wzór na modyfikację wag. 9 / 37

Zalety metody stochastycznego spadku wzdłuż gradientu Szybkość: obliczenie gradientu wymaga wzięcia tylko jednej obserwacji. Skalowalność: cały zbiór danych nie musi nawet znajdować się w pamięci operacyjnej. Prostota: gradient funkcji l i daje bardzo prosty wzór na modyfikację wag. Stochastyczny gradient jest obecnie najbardziej popularną metodą stosowaną w uczeniu maszynowym! (stochastic gradient descent SGD). 9 / 37

Wady metody stochastycznego spadku wzdłuż gradientu 10 / 37

Wady metody stochastycznego spadku wzdłuż gradientu Wolna zbieżność: czasem gradient stochastyczny zbiega wolno i wymaga wielu iteracji po zbiorze uczącym. 10 / 37

Wady metody stochastycznego spadku wzdłuż gradientu Wolna zbieżność: czasem gradient stochastyczny zbiega wolno i wymaga wielu iteracji po zbiorze uczącym. Problem z ustaleniem długości kroku α k : wyznaczenie α k przez przeszukiwanie liniowe nie przynosi dobrych rezultatów, ponieważ optymalizujemy oryginalnej funkcji L tylko jej jeden składnik l i. 10 / 37

Wady metody stochastycznego spadku wzdłuż gradientu Wolna zbieżność: czasem gradient stochastyczny zbiega wolno i wymaga wielu iteracji po zbiorze uczącym. Problem z ustaleniem długości kroku α k : wyznaczenie α k przez przeszukiwanie liniowe nie przynosi dobrych rezultatów, ponieważ optymalizujemy oryginalnej funkcji L tylko jej jeden składnik l i. Zalety znacznie przewyższają wady! 10 / 37

Stochastyczny gradient w praktyce 11 / 37

Stochastyczny gradient w praktyce Zwykle nie losuje się obserwacji, ale przechodzi się po zbiorze danych w losowej kolejności. 11 / 37

Stochastyczny gradient w praktyce Zwykle nie losuje się obserwacji, ale przechodzi się po zbiorze danych w losowej kolejności. Zbieżność wymaga często przejścia parokrotnie po całym zbiorze danych (jednokrotne przejście nazywa się epoką). 11 / 37

Stochastyczny gradient w praktyce Zwykle nie losuje się obserwacji, ale przechodzi się po zbiorze danych w losowej kolejności. Zbieżność wymaga często przejścia parokrotnie po całym zbiorze danych (jednokrotne przejście nazywa się epoką). Metody ustalania współczynników długości kroku α k : 11 / 37

Stochastyczny gradient w praktyce Zwykle nie losuje się obserwacji, ale przechodzi się po zbiorze danych w losowej kolejności. Zbieżność wymaga często przejścia parokrotnie po całym zbiorze danych (jednokrotne przejście nazywa się epoką). Metody ustalania współczynników długości kroku α k : Ustalamy stałą wartość α k = α 11 / 37

Stochastyczny gradient w praktyce Zwykle nie losuje się obserwacji, ale przechodzi się po zbiorze danych w losowej kolejności. Zbieżność wymaga często przejścia parokrotnie po całym zbiorze danych (jednokrotne przejście nazywa się epoką). Metody ustalania współczynników długości kroku α k : Ustalamy stałą wartość α k = α = Zwykle tak się robi w praktyce, działa dobrze ale wymaga ustalenia α metodą prób i błędów 11 / 37

Stochastyczny gradient w praktyce Zwykle nie losuje się obserwacji, ale przechodzi się po zbiorze danych w losowej kolejności. Zbieżność wymaga często przejścia parokrotnie po całym zbiorze danych (jednokrotne przejście nazywa się epoką). Metody ustalania współczynników długości kroku α k : Ustalamy stałą wartość α k = α = Zwykle tak się robi w praktyce, działa dobrze ale wymaga ustalenia α metodą prób i błędów Bierzemy wartość kroku malejącą jak 1 k : α k = α/ k 11 / 37

Stochastyczny gradient w praktyce Zwykle nie losuje się obserwacji, ale przechodzi się po zbiorze danych w losowej kolejności. Zbieżność wymaga często przejścia parokrotnie po całym zbiorze danych (jednokrotne przejście nazywa się epoką). Metody ustalania współczynników długości kroku α k : Ustalamy stałą wartość α k = α = Zwykle tak się robi w praktyce, działa dobrze ale wymaga ustalenia α metodą prób i błędów Bierzemy wartość kroku malejącą jak 1 k : α k = α/ k = Zapewniona zbieżność, ale czasem może zbiegać zbyt wolno. 11 / 37

Spis treści 1 Metoda stochastycznego spadku wzdłuż gradientu 2 Stochastyczny gradient dla regresji liniowej 3 Przykład zastosowania SGD 12 / 37

Regresja liniowa metoda najmniejszych kwadratów (LS) 13 / 37

Regresja liniowa metoda najmniejszych kwadratów (LS) Funkcja celu: L(w) = n (y i w x i ) 2 }{{} l i (w) i=1 13 / 37

Regresja liniowa metoda najmniejszych kwadratów (LS) Funkcja celu: L(w) = n (y i w x i ) 2 }{{} l i (w) i=1 Pochodne funkcji l i (w): l i (w) = 2(y i w x i )x ij w j 13 / 37

Regresja liniowa metoda najmniejszych kwadratów (LS) Funkcja celu: L(w) = n (y i w x i ) 2 }{{} l i (w) i=1 Pochodne funkcji l i (w): l i (w) = 2(y i w x i )x ij w j Gradient funkcji l i (w): li (w) = 2(y i w x i )x i 13 / 37

SGD dla regresji liniowej LS 1 Zaczynamy od w 0 = 0. 2 Dla k = 1, 2,... aż do zbieżności Wylosuj i {1,..., n}. Wyznaczamy gradient l i w punkcie w k 1, 2(y i w k 1 x i)x i. Robimy krok wzdłuż negatywnego gradientu: w k = w k 1 + 2α k (y i w k 1x i )x i 14 / 37

SGD dla regresji liniowej LS 1 Zaczynamy od w 0 = 0. 2 Dla k = 1, 2,... aż do zbieżności Wylosuj i {1,..., n}. Wyznaczamy gradient l i w punkcie w k 1, 2(y i w k 1 x i)x i. Robimy krok wzdłuż negatywnego gradientu: w k = w k 1 + 2α k (y i w k 1x i )x i Krok w kierunku wektora x i, z długością kroku równą 2α k (y i w k 1 x i). 14 / 37

SGD dla regresji liniowej LS 1 Zaczynamy od w 0 = 0. 2 Dla k = 1, 2,... aż do zbieżności Wylosuj i {1,..., n}. Wyznaczamy gradient l i w punkcie w k 1, 2(y i w k 1 x i)x i. Robimy krok wzdłuż negatywnego gradientu: w k = w k 1 + 2α k (y i w k 1x i )x i Krok w kierunku wektora x i, z długością kroku równą 2α k (y i w k 1 x i). Długość kroku proporcjonalna do przeszacowania predykcji. 14 / 37

Spis treści 1 Metoda stochastycznego spadku wzdłuż gradientu 2 Stochastyczny gradient dla regresji liniowej 3 Przykład zastosowania SGD 15 / 37

Przykład: szacowanie czasu pracy programistów X Y Rozmiar programu Oszacowany czas 186 130 699 650 132 99 272 150 291 128 331 302 199 95 1890 945 788 368 1601 961 16 / 37

Przykład: szacowanie czasu pracy programistów X Y Rozmiar programu Oszacowany czas 186 130 699 650 132 99 272 150 291 128 331 302 199 95 1890 945 788 368 1601 961 czas [h] 200 400 600 800 500 1000 1500 rozmiar programu [linie kodu] 16 / 37

Przykład: szacowanie czasu pracy programistów X Y Rozmiar programu Oszacowany czas 186 130 699 650 132 99 272 150 291 128 331 302 199 95 1890 945 788 368 1601 961 czas [h] 200 400 600 800 500 1000 1500 rozmiar programu [linie kodu] w 0 = 45.93, w 1 = 0.5273 16 / 37

Szacowanie Czasu programistów Zaczynamy z rozwiązaniem w = (w 0, w 1 ) = 0. Krok: α k = 0.5/ k. Jednostki zostały zamienione na 1000min i 1000 lini kodu, aby uniknąć dużych liczb. (ujednolicenie skali jest istotne dla zbiezności metody!) 17 / 37

Szacowanie Czasu programistów iteracja 1 y 200 400 600 800 500 1000 1500 x 18 / 37

Szacowanie Czasu programistów iteracja 2 y 200 400 600 800 500 1000 1500 x 19 / 37

Szacowanie Czasu programistów iteracja 3 y 200 400 600 800 500 1000 1500 x 20 / 37

Szacowanie Czasu programistów iteracja 4 y 200 400 600 800 500 1000 1500 x 21 / 37

Szacowanie Czasu programistów iteracja 5 y 200 400 600 800 500 1000 1500 x 22 / 37

Szacowanie Czasu programistów iteracja 10 y 200 400 600 800 500 1000 1500 x 23 / 37

Szacowanie Czasu programistów iteracja 15 y 200 400 600 800 500 1000 1500 x 24 / 37

Szacowanie Czasu programistów iteracja 20 y 200 400 600 800 500 1000 1500 x 25 / 37

Szacowanie Czasu programistów iteracja 25 y 200 400 600 800 500 1000 1500 x 26 / 37

Szacowanie Czasu programistów iteracja 30 y 200 400 600 800 500 1000 1500 x 27 / 37

Szacowanie Czasu programistów iteracja 35 y 200 400 600 800 500 1000 1500 x 28 / 37

Szacowanie Czasu programistów iteracja 40 y 200 400 600 800 500 1000 1500 x 29 / 37

Szacowanie Czasu programistów iteracja 45 y 200 400 600 800 500 1000 1500 x 30 / 37

Szacowanie Czasu programistów iteracja 50 y 200 400 600 800 500 1000 1500 x 31 / 37

Szacowanie Czasu programistów iteracja 60 y 200 400 600 800 500 1000 1500 x 32 / 37

Szacowanie Czasu programistów iteracja 70 y 200 400 600 800 500 1000 1500 x 33 / 37

Szacowanie Czasu programistów iteracja 80 y 200 400 600 800 500 1000 1500 x 34 / 37

Szacowanie Czasu programistów iteracja 90 y 200 400 600 800 500 1000 1500 x 35 / 37

Szacowanie Czasu programistów iteracja 100 y 200 400 600 800 500 1000 1500 x 36 / 37

Koniec na dzisiaj :) 37 / 37