• Nie Znaleziono Wyników

Podstawy teoretyczne

4.2 Konwolucyjne sieci neuronowe

4.2.4 Optymalizacja funkcji kosztu

Uczenie modelu konwolucyjnego opiera się na minimalizacji różnicy pomiędzy wyni-kami uzyskiwanymi przez model, a oczekiwanym rozwiązaniem. Różnica ta nazywana jest kosztem (ang. cost ) lub stratą (ang. lost ). Minimalizacja kosztu, w procesie opty-malizacji, prowadzi do polepszenia wyników działania modelu.

Metoda Gradientu Prostego

Metoda Gradientu Prostego (ang. Gradient Descent, skr. GD) [19, 169] jest powszech-nie wykorzystywaną, w dziedzipowszech-nie Uczenia Maszynowego, techniką optymalizacji [168].

Zadaniem metody Gradientu Prostego jest znalezienie minimum globalnego funkcji celu (ang. objective function) 𝑓 (𝜃), gdzie 𝜃 ∈ 𝑅𝑑 są parametrami funkcji (Rys. 4-12).

Rysunek 4-12: Poszukiwanie minimum globalnego funkcji celu 𝑓 (𝜃).

Minimum funkcji celu poszukiwane jest poprzez iteracyjną aktualizację parame-trów zgodnie z równaniem (4.15) [168]:

𝜃𝑡 = 𝜃𝑡−1− 𝛼 · ∇𝜃𝑓𝑡(𝜃𝑡−1) (4.15) gdzie 𝛼 to wskaźnik uczenia (ang. learning rate), a 𝑡 to krok (ang. step).

Podstawowa metoda Gradientu Prostego oparta bezpośrednio na równaniu (4.15) zwana jest również metodą Serii Gradientu Prostego (ang. Batch Gradient Descent ) ze względu na wykorzystywanie w procesie uaktualniania parametrów, do liczenia gradientu, pełnego zestawu danych uczących (ang. training dataset ) w każdej iteracji algorytmu (4.16):

𝜃𝑡 = 𝜃𝑡−1− 𝛼 · 1 𝑛

𝑛

∑︁

𝑖=1

𝜃𝑓𝑡(𝜃𝑡−1; 𝑥𝑖, 𝑦𝑖) (4.16) gdzie 𝑛 to całkowita wielkość zestawu danych uczących, 𝑥𝑖 to pojedynczy przykład uczący (ang. training example), a 𝑦𝑖 to odpowiadająca mu etykieta (ang. label ).

Metoda Serii Gradientu Prostego dobrze sprawdza się podczas poszukiwania glo-balnego minimum dla wypukłych powierzchni błędu oraz lokalnego minimum niewy-pukłych powierzchni, pozwalając na poruszanie się bezpośrednio w kierunku optymal-nego rozwiązania (Rys. 4-13), jednak korzystanie z pełoptymal-nego zestawu danych uczących w każdej iteracji znacznie zwiększa koszt obliczeniowy i nie pozwala na aktualizację modelu na bieżąco [168].

Rysunek 4-13: Przykładowy przebieg kolejnych kroków iteracji algorytmu optymalizacyjnego poszukującego minimum globalnego funkcji celu 𝑓 (𝜃1, 𝜃2) metodą Gradientu Prostego.

Metoda Stochastycznego Gradientu Prostego

Odmianą metody Gradientu Prostego jest Stochastyczny Gradient Prosty (ang. Sto-chastic Gradient Descent, skr. SGD) [24, 162]. W ostatnich latach stochastyczne me-tody optymalizacji cieszyły się dużą popularnością i wykorzystywane były w wielu rozwiązaniach opartych na Uczeniu Maszynowym [50, 99, 110, 118] uzyskując dobre wyniki. Metoda SGD cechuje się aktualizowaniem parametrów dla każdego przykładu uczącego (ang. training example) 𝑥𝑖 oraz odpowiadającej mu etykiety (ang. label ) 𝑦𝑖 (4.17):

𝜃𝑡= 𝜃𝑡−1− 𝛼 · ∇𝜃𝑓𝑡(𝜃𝑡−1; 𝑥𝑖, 𝑦𝑖) (4.17) Ze względu na aktualizowanie modelu na bieżąco metoda Stochastycznego Gra-dientu Prostego jest zwykle dużo szybsza od algorytmu GraGra-dientu Prostego [168], jednak częste aktualizacje wykonywane na podstawie pojedynczych przykładów uczą-cych wprowadzają dużą fluktuację działania. Wspomniana zmienność pozwala jednak w efekcie wyprowadzić algorytm z lokalnego minimum doprowadzając go finalnie w okolicę minimum globalnego (Rys. 4-14).

W celu ograniczenia fluktuacji w metodzie często wprowadza się obliczanie

gra-Rysunek 4-14: Przykładowy przebieg kolejnych kroków iteracji algorytmu optymalizacyjnego poszukującego minimum globalnego funkcji celu 𝑓 (𝜃1, 𝜃2) metodą Stochastycznego Gradien-tu Prostego.

dientu na podstawie małych serii danych (ang. mini-batch), zamiast pojedynczych przykładów (4.18):

𝜃𝑡= 𝜃𝑡−1− 𝛼 · 1 𝑚

𝑚

∑︁

𝑖=1

𝜃𝑓𝑡(𝜃𝑡−1; 𝑥𝑖, 𝑦𝑖) (4.18) gdzie 𝑚 to wielkość losowych małych serii danych.

Takie rozwiązanie, przy odpowiednim doborze wielkości serii (ang. mini-batch size) i wskaźnika uczenia (ang. learning rate) pozwala zmniejszyć fluktuację jednocześnie zachowując właściwość wyprowadzania algorytmu z lokalnego minimum.

Poprawne ustalenie wartości wskaźnika uczenia (ang. learning rate) jest kluczowe dla osiągnięcia zbieżności (ang. convergence) z globalnym minimum. Do planowania zmian wartości wskaźnika uczenia wraz z kolejnymi krokami i analizowanymi parame-trami wykorzystuje się algorytmy optymalizacyjne będące rozwinięciami Stochastycz-nego Gradientu Prostego. Do powszechnie wykorzystywanych w Głębokim Uczeniu algorytmów optymalizacyjnych zaliczyć można: Momentum [169, 191], NAG (ang.

Nesterov’s Accelerated Gradient ) [147], AdaGrad (ang. Adaptive Gradient Algorithm) [58], AdaDelta (ang. Adaptive Learning Rate Method )[215], RMSProp (ang. Root Me-an Square Propagation) [195] oraz Adam (Me-ang. Adaptive Moment Estimation)[110].

Algorytm Momentum

Zadaniem algorytmu optymalizacyjnego Momentum [169, 191] jest przyśpieszenie działania metody Stochastycznego Gradientu Prostego. Efekt ten uzyskiwany jest poprzez dodanie frakcji wektora aktualizującego (ang. update vector ) z poprzedniego kroku do obecnego wektora aktualizującego (Rys. 4-15)(4.19):

𝑣𝑡= 𝛽𝑣𝑡−1+ 𝛼 · ∇𝜃𝑓𝑡(𝜃𝑡−1) 𝜃𝑡= 𝜃𝑡−1− 𝑣𝑡

(4.19)

gdzie 𝛽 to wielkość frakcji wektora aktualizującego 𝑣𝑡.

Rysunek 4-15: Metoda wyznaczania kroku rzeczywistego algorytmem Momentum.

W efekcie algorytm Momentum wprowadzony do równania Stochastycznego Gra-dientu Prostego wygładza aktualizacje w kolejnych krokach zwiększając stabilność i szybkość działania (Rys. 4-16).

Algorytm NAG

Algorytm Przyśpieszonego Gradientu Nesterov’a (ang. Nesterov’s Accelerated Gra-dient ) [147] jest rozwinięciem metody Momentum. W metodzie przedstawionej przez Nesterov’a do aktualizacji parametrów wykorzystywany jest dodatkowo człon frakcji wektora aktualizującego poprzedniego kroku (4.20):

𝑣𝑡= 𝛽𝑣𝑡−1+ 𝛼 · ∇𝜃𝑓𝑡(𝜃𝑡−1+ 𝛽𝑣𝑡−1) 𝜃𝑡= 𝜃𝑡−1− 𝑣𝑡

(4.20)

Rysunek 4-16: Przykładowy przebieg kolejnych kroków iteracji algorytmu optymalizacyjnego poszukującego minimum globalnego funkcji celu 𝑓 (𝜃1, 𝜃2) wykorzystując metodę Momentum.

Takie rozwiązanie pozwala wstępnie ukierunkować nowy wektor aktualizujący (ang.

update vetor ) zgodnie z aproksymowanym gradientem wyznaczonym po kroku frak-cji wcześniejszego wektora aktualizującego. Daje to w efekcie wstępną aproksymację (predykcję) kierunku nowego wektora aktualizującego (Rys. 4-17).

Rysunek 4-17: Metoda wyznaczania Przyśpieszonego Gradientu Nesterov’a. Strona lewa:

standardowy algorytm Momentum. Strona prawa: algorytm Przyśpieszonego Gradientu Ne-sterov’a. Niewielka różnica wynika z wprowadzenia do równania dodatkowej frakcji wektora aktualizującego.

AdaGrad

Algorytmy Momentum i Przyśpieszonego Gradientu Nesterov’a znacznie poprawiają działanie metody Stochastycznego Gradientu Prostego, ograniczają jednak rozwiąza-nie do jednoczesnej aktualizacji wszystkich parametrów rozwiąza-niezależrozwiąza-nie od ich

istotno-ści. W przeciwieństwie do nich, przedstawiony w 2011 roku [58] algorytm AdaGrad (ang. Adaptive Gradient Algorithm) pozwala na indywidualną aktualizację poszcze-gólnych parametrów w każdym kroku, w zależności od ich istotności, poprzez odpo-wiednią adaptację wskaźnika uczenia (ang. learning rate)(4.21):

𝜃𝑡 = 𝜃𝑡−1 𝛼

√𝐺𝑡+ 𝜖· 𝑔𝑡 𝑔𝑡= ∇𝜃𝑓𝑡(𝜃𝑡−1)

(4.21)

gdzie 𝐺𝑡 jest macierzą diagonalną, której kolejne współczynniki są sumą kwadratów gradientów aż do kroku 𝑡, a 𝜖 to współczynnik wygładzający chroniący przed dziele-niem przez zero.

Algorytm AdaDelta

Algorytm AdaDelta (ang. Adaptive Learning Rate Method )[215] jest rozwinięciem roz-wiązania przedstawionego przez Duchi w 2011 roku [58]. Algorytm AdaDelta, w prze-ciwieństwie do AdaGrad, modyfikuje współczynnik uczenia (ang. learning rate) na podstawie określonej ilości wcześniejszych gradientów, całkowicie wykluczając potrze-bę definiowania tego współczynnika przez użytkownika. Metoda Adadelta zamiast zachowywać kolejne wartości gradientów w macierzy określa rekurencyjnie wartość średnią kwadratów wcześniejszych gradientów (4.22):

𝐸[𝑔2]𝑡= 𝜌𝐸[𝑔2]𝑡−1+ (1 − 𝜌)𝑔𝑡2 (4.22) gdzie 𝐸[𝑔2]𝑡to wykładniczo spadająca wartość średnia kwadratów wcześniejszych gra-dientów dla kroku 𝑡, a 𝜌 to stała spadku podobna do współczynnika 𝛽 w metodzie Momentum.

Ze względu na występujący w równaniu (4.21) pierwiastek kwadratowy gradientów wyrażenie to zastępowane jest średnią kwadratową (ang. Root Mean Square, skr. RMS) kwadratów wcześniejszych gradientów (4.23):

𝑅𝑀 𝑆[𝑔]𝑡=√︁𝐸[𝑔2]𝑡+ 𝜖 𝜃𝑡= 𝜃𝑡−1 𝛼

𝑅𝑀 𝑆[𝑔]𝑡 · 𝑔𝑡

(4.23)

Finalnie metoda AdaDelta ze względu na korekcję jednostek wykorzystującą me-todę przybliżania macierzy Hessego (ang. Hessian Approximation) zaprezentowaną przez Becker et. al [18] w 1988 roku, przybliża całe równanie aktualizacji parametrów do postaci (4.24):

𝜃𝑡 = 𝜃𝑡−1 𝑅𝑀 𝑆[∆𝜃]𝑡−1

𝑅𝑀 𝑆[𝑔]𝑡 · 𝑔𝑡 (4.24)

Algorytm RMSProp

Metoda RMSProp (ang. Root Mean Square Propagation) [195] rozwinięta została rów-nolegle z i niezależnie od algorytmu AdaDelta. Podobnie do algorytmu AdaDelta metoda ta ma na celu wprowadzenie kontroli współczynnika uczenia w zależności od wykładniczo spadającej wartości średniej kwadratów wcześniejszych gradientów (4.25):

𝐸[𝑔2]𝑡= 𝜌𝐸[𝑔2]𝑡−1+ (1 − 𝜌)𝑔𝑡2

𝜃𝑡= 𝜃𝑡−1 𝛼

√︁𝐸[𝑔2]𝑡+ 𝜖· 𝑔𝑡

(4.25)

Algorytm Adam

Ostatecznie do optymalizacji funkcji kosztu (ang. cost function) opartej na meto-dzie entropii krzyżowej (ang. cross-entropy) [48, 86, 150] wykorzystano metodę sto-chastycznej optymalizacji Adam (ang. Adaptive Moment Estimation) [110], opartą na adaptacyjnej ocenie momentów (ang. moments) [169, 170, 191] niższych rzędów.

Algorytm jest rozwinięciem przedstawionych wcześniej metod i łączy zalety rozwią-zań opracowanych w metodach AdaGrad (ang. Adaptive Gradient Algorithm) [58],

RMSProp (ang. Root Mean Square Propagation) [195] oraz Momentum [169, 191].

Metoda stochastycznej optymalizacji Adam [110] charakteryzuje się zachowywa-niem informacji o wykładniczym spadku średnich kwadratów poprzedzających gra-dientów (4.27) podobnie do algorytmów AdaDelta [215] i RMSProp [195]. Co więcej algorytm Adam zachowuje informacje o wykładniczym spadku średniej wartości po-przedzających gradientów (4.26) podobnie do algorytmu Momentum [147, 169, 191]

oraz pozwala na indywidualną aktualizację poszczególnych parametrów w każdym kroku, wprowadzoną w metodzie AdaGrad [58].

𝑚𝑡= 𝛽1𝑚𝑡−1+ (1 − 𝛽1)𝑔𝑡 (4.26)

𝑣𝑡= 𝛽2𝑣𝑡−1+ (1 − 𝛽2)𝑔𝑡2

(4.27) gdzie 𝑚𝑡 to szacowana wartość momentu pierwszego rzędu aktualizacji, 𝑣𝑡 to szaco-wana wartość momentu drugiego rzędu aktualizacji, a 𝑔𝑡 = ∇𝜃𝑓𝑡(𝜃𝑡−1) to wartość gradientu dla kroku 𝑡.

Dodatkowo algorytm Adam wprowadza korekcję wyznaczonych momentów (4.28, 4.29):

ˆ

𝑚𝑡= 𝑚𝑡

1 − 𝛽1𝑡 (4.28)

ˆ

𝑣𝑡= 𝑣𝑡

1 − 𝛽2𝑡 (4.29)

gdzie ˆ𝑚𝑡 to skorygowana szacowana wartość momentu pierwszego rzędu aktualizacji, a ˆ𝑣𝑡 to skorygowana szacowana wartość momentu drugiego rzędu aktualizacji.

Ostatecznie Metoda stochastycznej optymalizacji Adam (ang. Adaptive Moment Estimation [110] definiuje aktualizację parametrów jako (4.30):

𝜃𝑡= 𝜃𝑡−1 𝛼

√𝑣ˆ𝑡+ 𝜖· ˆ𝑚𝑡 (4.30) Zastosowana metoda stochastycznej optymalizacji Adam [110] wykorzystuje

tyl-ko gradienty pierwszego rzędu ograniczając tyl-koszt obliczeniowy. Metoda ta wyznacza indywidualne adaptacyjne wskaźniki uczenia (ang. adaptive learning rates) dla róż-nych parametrów na podstawie szacowaróż-nych momentów gradientów. Do najważniej-szych zalet metody należą [110]: niezmienność rzędu wielkości aktualizacji parametrów (ang. parameter updates) względem skali gradientu, wielkość kroku przywiązana do odpowiadającego jej hiper-parametru (ang. hyperparameter ), brak potrzeby określa-nia niezmiennego celu (ang. stationary objective) oraz poprawne działanie nawet przy rzadkich gradientach (ang. sparse gradients).