Optymalizacja ciągła

Podobne dokumenty
Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I

Zrównoleglona optymalizacja stochastyczna na dużych zbiorach danych

Optymalizacja ciągła

Optymalizacja ciągła

Techniki Optymalizacji: Metody regresji

Statystyka opisowa. Wykład V. Regresja liniowa wieloraka

Metody Optymalizacji: Przeszukiwanie z listą tabu

Elementy inteligencji obliczeniowej

Optymalizacja ciągła

KADD Minimalizacja funkcji

Inteligentne systemy decyzyjne: Uczenie maszynowe sztuczne sieci neuronowe

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

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

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

Podstawy Sztucznej Inteligencji (PSZT)

Optymalizacja ciągła

ZADANIA OPTYMALIZCJI BEZ OGRANICZEŃ

Rozpoznawanie obrazów

WYKŁAD 9 METODY ZMIENNEJ METRYKI

Uczenie sieci typu MLP

Metody systemowe i decyzyjne w informatyce


Algorytmy metaheurystyczne Wykład 6. Piotr Syga

Metody numeryczne I Równania nieliniowe

KADD Minimalizacja funkcji

5. Metody Newtona. 5.1 Wzór Taylora

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

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Algorytm grupowania danych typu kwantyzacji wektorów

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

Optymalizacja systemów

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

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

Aproksymacja funkcji a regresja symboliczna

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

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

Iteracyjne rozwiązywanie równań

wiedzy Sieci neuronowe

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

Spacery losowe generowanie realizacji procesu losowego

Analiza współzależności zjawisk

Estymacja wektora stanu w prostym układzie elektroenergetycznym

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

Analiza matematyczna i algebra liniowa Macierze

Metody Numeryczne Optymalizacja. Wojciech Szewczuk

Metody systemowe i decyzyjne w informatyce

Metody systemowe i decyzyjne w informatyce

Metody systemowe i decyzyjne w informatyce

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

Przegląd metod optymalizacji wielowymiarowej. Funkcja testowa. Funkcja testowa. Notes. Notes. Notes. Notes. Tomasz M. Gwizdałła

Algorytmy wstecznej propagacji sieci neuronowych

Układy równań nieliniowych (wielowymiarowa metoda Newtona-Raphsona) f(x) = 0, gdzie. dla n=2 np.

Oprogramowanie Systemów Obrazowania SIECI NEURONOWE

IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ

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

wiedzy Sieci neuronowe (c.d.)

Rozpoznawanie obrazów

Metody probabilistyczne

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

Wprowadzenie Metoda bisekcji Metoda regula falsi Metoda siecznych Metoda stycznych RÓWNANIA NIELINIOWE

OBLICZANIE POCHODNYCH FUNKCJI.

Zaawansowane metody numeryczne Komputerowa analiza zagadnień różniczkowych 4. Równania różniczkowe zwyczajne podstawy teoretyczne

Programowanie celowe #1

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

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

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

Wykład 4. Plan: 1. Aproksymacja rozkładu dwumianowego rozkładem normalnym. 2. Rozkłady próbkowe. 3. Centralne twierdzenie graniczne

Optymalizacja Ci gªa

Definicja pochodnej cząstkowej

WYKŁADY ZE STATYSTYKI MATEMATYCZNEJ wykład 7 i 8 - Efektywność estymatorów, przedziały ufności

METODY NUMERYCZNE. Wykład 4. Numeryczne rozwiązywanie równań nieliniowych z jedną niewiadomą. prof. dr hab.inż. Katarzyna Zakrzewska

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

Prawdopodobieństwo i statystyka

Metody Obliczeniowe w Nauce i Technice

Statystyka i eksploracja danych

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

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

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

Optymalizacja. Przeszukiwanie lokalne

Wstęp do metod numerycznych 9a. Układy równań algebraicznych. P. F. Góra

Elementy metod numerycznych

Rozkłady statystyk z próby

1 Równania nieliniowe

Funkcje dwóch zmiennych

Uczenie sieci radialnych (RBF)

Sieci neuronowe w Statistica. Agnieszka Nowak - Brzezioska

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

Uczenie ze wzmocnieniem

Statystyka od podstaw Janina Jóźwiak, Jarosław Podgórski

SVM: Maszyny Wektorów Podpieraja cych

SZTUCZNA INTELIGENCJA

Kwantyzacja wektorowa. Kodowanie różnicowe.

1 Funkcje dwóch zmiennych podstawowe pojęcia

Spis treści. Przedmowa... XI. Rozdział 1. Pomiar: jednostki miar Rozdział 2. Pomiar: liczby i obliczenia liczbowe... 16

Widzenie komputerowe

ALGORYTMY EWOLUCYJNE W OPTYMALIZACJI JEDNOKRYTERIALNEJ

Systemy uczące się wykład 2

jeśli nie jest spełnione kryterium zatrzymania, to nowym punktem roboczym x(t+1) staje i następuje przejście do 1)

Zaawansowane metody numeryczne

Praca dyplomowa magisterska

Transkrypt:

Optymalizacja ciągła 5. Metoda stochastycznego spadku wzdłuż gradientu Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 04.04.2019 1 / 20

Wprowadzenie Minimalizacja różniczkowalnej funkcji f(w) bez ograniczeń: min f(w) w R n Uwaga: na potrzeby tego wykładu zmieniamy oznaczenie wektora zmiennych z x na w W wielu zastosowaniach optymalizacji funkcja celu ma postać sumy po N elementach: N f(w) = f i (w), i=1 To założenie będzie nam towarzyszyło przez cały wykład. 2 / 20

Przykład: regresja liniowa Przewidywania/wyjaśnienie zmian ciągłej zmiennej wyjściowej (Y ) pod wpływem zmian innych zmiennych (X 1,..., X n ). Przykłady X ceny akcji w ostatnim tygodniu, Y cena akcji jutro. X wyniki testów medycznych, Y poziom zaawansowania choroby. X wielkość programu, Y czas pisania programu. X warunki na drodze, czas, lokalizacja, Y średnia prędkość samochodów. X cechy domu Y cena domu. 3 / 20

Przykład: regresja liniowa Modelujemy zmienną Y jako funkcję liniową X 1,..., X n : Y = w 0 + w 1 X 1 +... + w n X n = X w gdzie w = (w 0, w 1,..., w n ) jest wektorem współczynników (zmiennych decyzyjnych), natomiast X = (1, X 1,..., X n ). 4 / 20

Przykład: regresja liniowa Modelujemy zmienną Y jako funkcję liniową X 1,..., X n : Y = w 0 + w 1 X 1 +... + w n X n = X w gdzie w = (w 0, w 1,..., w n ) jest wektorem współczynników (zmiennych decyzyjnych), natomiast X = (1, X 1,..., X n ). Wartości współczynników dopasowujemy na podstawie zbioru danych 4 / 20

Przykład: regresja liniowa Otrzymujemy zbiór danych historycznych, na którym znane są wartości y: (x 11, x 12,..., x 1n, y 1 ) (x 1, y 1 ) (x 21, x 22,..., x 2n, y 2 ) (x 2, y 2 )... lub w skrócie... (x N1, x N2,..., x Nn, y N ) (x N, y N ) 5 / 20

Przykład: regresja liniowa Otrzymujemy zbiór danych historycznych, na którym znane są wartości y: (x 11, x 12,..., x 1n, y 1 ) (x 1, y 1 ) (x 21, x 22,..., x 2n, y 2 ) (x 2, y 2 )... lub w skrócie... (x N1, x N2,..., x Nn, y N ) (x N, y N ) Wyznaczamy współczynniki w tak, aby funkcja liniowa jak najlepiej przybliżała wartości zmiennej Y na danych, tzn. aby: ŷ i = x i w było jak najbliższe y i dla wszystkich i = 1,..., N 5 / 20

Przykład: regresja liniowa Y X 6 / 20

Przykład: regresja liniowa Y X 6 / 20

Przykład: regresja liniowa Y y i ŷ i X 6 / 20

Przykład: regresja liniowa 0.6 Y 0.4 0.2 0 0 0.5 0.5 X X 1 1 0 2 1 7 / 20

Przykład: regresja liniowa Metoda najmniejszych kwadratów: Wyznacz współczynniki regresji w by minimalizować sumę kwadratów odchyleń modelu od danych: min f(w) = N (y i ŷ i ) 2 w R n i=1 8 / 20

Przykład: regresja liniowa Metoda najmniejszych kwadratów: Wyznacz współczynniki regresji w by minimalizować sumę kwadratów odchyleń modelu od danych: min f(w) = N (y i x w R n i w) 2 i=1 8 / 20

Przykład: regresja liniowa Metoda najmniejszych kwadratów: Wyznacz współczynniki regresji w by minimalizować sumę kwadratów odchyleń modelu od danych: min f(w) = N (y i x w R n i w) 2 }{{} i=1 f i (w) 8 / 20

Przykład: regresja liniowa Metoda najmniejszych kwadratów: Wyznacz współczynniki regresji w by minimalizować sumę kwadratów odchyleń modelu od danych: min f(w) = N (y i x w R n i w) 2 }{{} i=1 f i (w) Innymi słowy: wyznaczamy współczynniki modelu liniowego minimalizując sumaryczny błąd (wyrażony w postaci funkcji kwadratowej) na całym zbiorze danych 8 / 20

Przykłady: uczenie maszynowe N f(w) = f i (w) i=1 Zdecydowana większość metod uczenia maszynowego opiera się zasadniczo na tym samym schemacie: Mając zbiór danych, wyznacz parametry modelu predykcyjnego minimalizując sumaryczny błąd modelu na danych w parametry modelu (współczynniki regresji, wagi w sieci neuronowej, itp.) f i (w) błąd na pojedynczej obserwacji ze zbioru danych (np. błąd kwadratowy w regresji) f(w) sumaryczna wartość błędu na całym zbiorze danych 9 / 20

Znajdź rozwiązanie problemu: Podejście klasyczne min f(w) w R n stosując jedną z klasycznych metod optymalizacji, np. metodę spadku wzdłuż gradientu lub Newtona-Raphsona 10 / 20

Znajdź rozwiązanie problemu: Podejście klasyczne min f(w) w R n stosując jedną z klasycznych metod optymalizacji, np. metodę spadku wzdłuż gradientu lub Newtona-Raphsona Typowe problemy w praktyce: Policzenie gradientu/hesjanu wymaga sumowania N gradientów/hesjanów składowych funkcji celu: f(w) = N f i (w) i=1 Wymiar problemu n może być bardzo duży, przez co metoda Newtona-Raphsona może być zbyt kosztowna do uruchomienia 10 / 20

Podejście klasyczne: spadek wzdłuż gradientu Rozpoczynając od w 1, w kolejnych iteracjach k = 1, 2,...: w k+1 N = w k α k f i (w k ) i=1 }{{} f(w k ) Wykonanie jednego kroku: przejście po wszystkich składowych funkcji celu. 11 / 20

Podejście klasyczne: spadek wzdłuż gradientu Rozpoczynając od w 1, w kolejnych iteracjach k = 1, 2,...: w k+1 N = w k α k f i (w k ) i=1 }{{} f(w k ) Wykonanie jednego kroku: przejście po wszystkich składowych funkcji celu. Pomysł: policz gradient na losowej pojedynczej składowej f i zamiast na całej funkcji f! 11 / 20

Metoda stochastycznego spadku wzdłuż gradientu (stochastic gradient descent, SGD) Rozpoczynając od w 1, w kolejnych iteracjach k = 1, 2,...: Wylosuj jedną ze składowych i k {1,..., N} Wykonaj krok wzdłuż ujemnego gradientu funkcji f ik (w k ): w k+1 = w k α k f ik (w k ) 12 / 20

Metoda stochastycznego spadku wzdłuż gradientu (stochastic gradient descent, SGD) Rozpoczynając od w 1, w kolejnych iteracjach k = 1, 2,...: Wylosuj jedną ze składowych i k {1,..., N} Wykonaj krok wzdłuż ujemnego gradientu funkcji f ik (w k ): w k+1 = w k α k f ik (w k ) Dlaczego miałoby to w ogóle działać? 12 / 20

Metoda stochastycznego spadku wzdłuż gradientu (stochastic gradient descent, SGD) Rozpoczynając od w 1, w kolejnych iteracjach k = 1, 2,...: Wylosuj jedną ze składowych i k {1,..., N} Wykonaj krok wzdłuż ujemnego gradientu funkcji f ik (w k ): w k+1 = w k α k f ik (w k ) Dlaczego miałoby to w ogóle działać? Możemy myśleć o gradiencie pojedynczej składowej f i (w k ) jako o oszacowaniu całościowego gradientu f(w k ) Rzeczywiście, średnio gradient będzie wynosił: 1 n f 1(w k ) + 1 n f 2(w k ) +... + 1 n f N(w k ) = 1 n f(w k) 12 / 20

Przykład: problem regresji liniowej min f(w) = N (y i x w R n i w) 2 }{{} i=1 f i (w) 13 / 20

Przykład: problem regresji liniowej min f(w) = N (y i x w R n i w) 2 }{{} i=1 f i (w) Liczymy pochodne cząstkowe pojedynczej funkcji f i (w): f i (w) w j = 2(y i x i w)x ij 13 / 20

Przykład: problem regresji liniowej min f(w) = N (y i x w R n i w) 2 }{{} i=1 f i (w) Liczymy pochodne cząstkowe pojedynczej funkcji f i (w): f i (w) w j = 2(y i x i w)x ij Gradient wynosi więc: f i (w) = 2(y i x i w)x i 13 / 20

Przykład: problem regresji liniowej min f(w) = N (y i x w R n i w) 2 }{{} i=1 f i (w) Liczymy pochodne cząstkowe pojedynczej funkcji f i (w): f i (w) w j = 2(y i x i w)x ij Gradient wynosi więc: f i (w) = 2(y i x i w)x i Rozpoczynając od w 1, w kolejnych iteracjach k = 1, 2,...: Wylosuj jedną ze obserwacji i k {1,..., N} Wykonaj krok wzdłuż ujemnego gradientu funkcji f ik (w k ): w k+1 = w k + 2α k (y ik x i k w k )x ik 13 / 20

Przykład: problem regresji liniowej min f(w) = N (y i x w R n i w) 2 }{{} i=1 f i (w) Liczymy pochodne cząstkowe pojedynczej funkcji f i (w): f i (w) w j = 2(y i x i w)x ij Gradient wynosi więc: f i (w) = 2(y i x i w)x i Rozpoczynając od w 1, w kolejnych iteracjach k = 1, 2,...: Wylosuj jedną ze obserwacji i k {1,..., N} Wykonaj krok wzdłuż ujemnego gradientu funkcji f ik (w k ): w k+1 = w k + 2α k (y ik x i k w k )x ik Krok w kierunku wektora obserwacji x ik, z długością kroku proporcjonalną do przeszacowania predykcji (y ik x i k w k ). 13 / 20

Zalety Zalety i wady algorytmu SGD 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 f i daje bardzo prosty wzór na modyfikację wag. Wady Wolna zbieżność: algorytm w ogólności zbiega wolno i wymaga wielu iteracji po zbiorze uczącym. Ustalenie długości kroku α k : wyznaczenie α k przez jednowymiarową optymalizację nie przynosi dobrych rezultatów, ponieważ nie optymalizujemy oryginalnej funkcji f tylko jeden jej składnik f i. Zalety znacznie przewyższają wady: Algorytm SGD jest obecnie najczęściej używanym algorytmem w uczeniu maszynowym! 14 / 20

SGD w praktyce 15 / 20

SGD w praktyce Zwykle nie losuje się obserwacji, ale przechodzi się po zbiorze danych w losowej kolejności (działa bardzo podobnie, a daje znacznie prostszą implementację) 15 / 20

SGD w praktyce Zwykle nie losuje się obserwacji, ale przechodzi się po zbiorze danych w losowej kolejności (działa bardzo podobnie, a daje znacznie prostszą implementację) Zbieżność wymaga często przejścia parokrotnie po całym zbiorze danych (jednokrotne przejście nazywa się epoką). 15 / 20

SGD w praktyce Zwykle nie losuje się obserwacji, ale przechodzi się po zbiorze danych w losowej kolejności (działa bardzo podobnie, a daje znacznie prostszą implementację) 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 : 15 / 20

SGD w praktyce Zwykle nie losuje się obserwacji, ale przechodzi się po zbiorze danych w losowej kolejności (działa bardzo podobnie, a daje znacznie prostszą implementację) 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 = α 15 / 20

SGD w praktyce Zwykle nie losuje się obserwacji, ale przechodzi się po zbiorze danych w losowej kolejności (działa bardzo podobnie, a daje znacznie prostszą implementację) 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 15 / 20

SGD w praktyce Zwykle nie losuje się obserwacji, ale przechodzi się po zbiorze danych w losowej kolejności (działa bardzo podobnie, a daje znacznie prostszą implementację) 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 k 1 : α k = α/ k 15 / 20

SGD w praktyce Zwykle nie losuje się obserwacji, ale przechodzi się po zbiorze danych w losowej kolejności (działa bardzo podobnie, a daje znacznie prostszą implementację) 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 k 1 : α k = α/ k = Zapewniona zbieżność, ale czasem może zbiegać zbyt wolno. 15 / 20

SGD w praktyce Zwykle nie losuje się obserwacji, ale przechodzi się po zbiorze danych w losowej kolejności (działa bardzo podobnie, a daje znacznie prostszą implementację) 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 k 1 : α k = α/ k = Zapewniona zbieżność, ale czasem może zbiegać zbyt wolno. W praktyce często liczy się gradient nie na pojedynczej obserwacji, ale na ich niewielkiej grupie (tzw. mini-batch) 15 / 20

Metoda stochastycznego spadku wzdłuż gradientu Twierdzenie: Niech f i (w) (i = 1,..., N) będą funkcjami wypukłymi i niech w będzie minimum (globalnym) funkcji f(w). Po K iteracjach algorytm stochastycznego spadku wzdłuż gradientu ze stałą długością kroku α gwarantuje: min f(w k) f(w ) w 1 w 2 + α k=1,...,k 2αK 2K K f ik (w k ) 2 k=1 16 / 20

Metoda stochastycznego spadku wpływwzdłuż wielkościgradientu gradientów wpływ warunków początkowych Twierdzenie: (odległość od optimum Niech f i (w) na starcie) (i = 1,..., N) na będą trajektorii funkcjami algorytmu wypukłymi i niech w będzie (maleje minimum z α) (globalnym) funkcji f(w). (rośnie Po z α) K iteracjach algorytm stochastycznego spadku wzdłuż gradientu ze stałą długością kroku α gwarantuje: min f(w k) f(w ) w 1 w 2 + α k=1,...,k 2αK 2K K f ik (w k ) 2 k=1 16 / 20

Metoda stochastycznego spadku wzdłuż gradientu Twierdzenie: Niech f i (w) (i = 1,..., N) będą funkcjami wypukłymi i niech w będzie minimum (globalnym) funkcji f(w). Po K iteracjach algorytm stochastycznego spadku wzdłuż gradientu ze stałą długością kroku α gwarantuje: min f(w k) f(w ) w 1 w 2 + α k=1,...,k 2αK 2K K f ik (w k ) 2 Wniosek: sensowne jest wzięcie α tak, aby oba człony były podobnej wielkości: (...) 1 αk α K (...) K k=1 k=1 16 / 20

Metoda stochastycznego spadku wzdłuż gradientu Twierdzenie: Niech f i (w) (i = 1,..., N) będą funkcjami wypukłymi i niech w będzie minimum (globalnym) funkcji f(w). Po K iteracjach algorytm stochastycznego spadku wzdłuż gradientu ze stałą długością kroku α gwarantuje: min f(w k) f(w ) w 1 w 2 + α k=1,...,k 2αK 2K K f ik (w k ) 2 Wniosek: sensowne jest wzięcie α tak, aby oba człony były podobnej wielkości: (...) 1 α(...) αk k=1 16 / 20

Metoda stochastycznego spadku wzdłuż gradientu Twierdzenie: Niech f i (w) (i = 1,..., N) będą funkcjami wypukłymi i niech w będzie minimum (globalnym) funkcji f(w). Po K iteracjach algorytm stochastycznego spadku wzdłuż gradientu ze stałą długością kroku α gwarantuje: min f(w k) f(w ) w 1 w 2 + α k=1,...,k 2αK 2K K f ik (w k ) 2 Wniosek: sensowne jest wzięcie α tak, aby oba człony były podobnej wielkości: (...) 1 K α2 k=1 16 / 20

Metoda stochastycznego spadku wzdłuż gradientu Twierdzenie: Niech f i (w) (i = 1,..., N) będą funkcjami wypukłymi i niech w będzie minimum (globalnym) funkcji f(w). Po K iteracjach algorytm stochastycznego spadku wzdłuż gradientu ze stałą długością kroku α gwarantuje: min f(w k) f(w ) w 1 w 2 + α k=1,...,k 2αK 2K K f ik (w k ) 2 Wniosek: sensowne jest wzięcie α tak, aby oba człony były podobnej wielkości: (...) α K k=1 16 / 20

Metoda stochastycznego spadku wzdłuż gradientu Twierdzenie: Niech f i (w) (i = 1,..., N) będą funkcjami wypukłymi i niech w będzie minimum (globalnym) funkcji f(w). Po K iteracjach algorytm stochastycznego spadku wzdłuż gradientu ze stałą długością kroku α gwarantuje: min f(w k) f(w ) w 1 w 2 + α k=1,...,k 2αK 2K K f ik (w k ) 2 Wniosek: sensowne jest wzięcie α tak, aby oba człony były podobnej wielkości: (...) α K Stąd stosowane w praktyce malejące wartości α k rzędu α k = const k k=1 16 / 20

Metoda stochastycznego spadku wzdłuż gradientu Twierdzenie: Niech f i (w) (i = 1,..., N) będą funkcjami wypukłymi i niech w będzie minimum (globalnym) funkcji f(w). Po K iteracjach algorytm stochastycznego spadku wzdłuż gradientu ze stałą długością kroku α gwarantuje: min f(w k) f(w ) w 1 w 2 + α k=1,...,k 2αK 2K K f ik (w k ) 2 Wniosek: sensowne jest wzięcie α tak, aby oba człony były podobnej wielkości: (...) α K Stąd stosowane w praktyce malejące wartości α k rzędu α k = const k ( ) Powyższe wartości α k dają gwarancje na suboptymalność rzędu O 1 K k=1 16 / 20

Porównanie zbieżności algorytm zbieżność błąd po k iteracjach Metoda Cauchy ego liniowa e ck Metoda Newtona-Raphsona kwadratowa e c 1e c 2 k SGD subliniowa c k Algorytm SGD jest bardzo wolny w stosunku do uprzednio poznanych Stosuje się go wtedy, gdy nie jest nam potrzebna duża dokładność punktu optimum, a zależy nam na czasie optymalizacji 17 / 20

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 18 / 20

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] 18 / 20

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 18 / 20

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 w praktyce bardzo istotne dla zbieżności metody) 19 / 20

iteracja 1 Szacowanie czasu programistów Y 200 400 600 800 500 1000 1500 X 20 / 20

iteracja 2 Szacowanie czasu programistów Y 200 400 600 800 500 1000 1500 X 20 / 20

iteracja 3 Szacowanie czasu programistów Y 200 400 600 800 500 1000 1500 X 20 / 20

iteracja 4 Szacowanie czasu programistów Y 200 400 600 800 500 1000 1500 X 20 / 20

iteracja 5 Szacowanie czasu programistów Y 200 400 600 800 500 1000 1500 X 20 / 20

iteracja 10 Szacowanie czasu programistów Y 200 400 600 800 500 1000 1500 X 20 / 20

iteracja 15 Szacowanie czasu programistów Y 200 400 600 800 500 1000 1500 X 20 / 20

iteracja 20 Szacowanie czasu programistów Y 200 400 600 800 500 1000 1500 X 20 / 20

iteracja 25 Szacowanie czasu programistów Y 200 400 600 800 500 1000 1500 X 20 / 20

iteracja 30 Szacowanie czasu programistów Y 200 400 600 800 500 1000 1500 X 20 / 20

iteracja 35 Szacowanie czasu programistów Y 200 400 600 800 500 1000 1500 X 20 / 20

iteracja 40 Szacowanie czasu programistów Y 200 400 600 800 500 1000 1500 X 20 / 20

iteracja 45 Szacowanie czasu programistów Y 200 400 600 800 500 1000 1500 X 20 / 20

iteracja 50 Szacowanie czasu programistów Y 200 400 600 800 500 1000 1500 X 20 / 20

iteracja 60 Szacowanie czasu programistów Y 200 400 600 800 500 1000 1500 X 20 / 20

iteracja 70 Szacowanie czasu programistów Y 200 400 600 800 500 1000 1500 X 20 / 20

iteracja 80 Szacowanie czasu programistów Y 200 400 600 800 500 1000 1500 X 20 / 20

iteracja 90 Szacowanie czasu programistów Y 200 400 600 800 500 1000 1500 X 20 / 20

iteracja 100 Szacowanie czasu programistów Y 200 400 600 800 500 1000 1500 X 20 / 20