• Nie Znaleziono Wyników

Algorytm gradientów sprzężonych

2.2 Algorytmy uczenia sieci jednokierunkowych

2.2.4 Algorytm gradientów sprzężonych

W algorytmie gradientów sprzężonych [6, 19] rezygnuje się z bezpośredniego wy-korzystywania macierzy hesjanu do konstrukcji nowego kierunku poszukiwań mini-mum. Opiera się on na założeniu, że aby zapewnić właściwie przeszukiwanie dzie-dziny funkcji, kierunek poszukiwania powinien tworzony być za każdym razem nie zgodnie z malejącym gradientem, lecz tak, by był sprzężony z poprzednią wartością gradientu i o ile to możliwe, z poprzednimi kierunkami [16]. Jest to mało praktycz-ne, gdyż wektor taki musiałby być tworzony na podstawie wszystkich poprzednich kierunków poszukiwań i miałby postać:

pt = −∇E( ~wt) +

t−1

X

j=0

βtpj, (2.21)

dla t oznaczającego aktualną epokę uczenia.

W metodzie gradientów sprzężonych, zależność powyższą upraszcza się, uwzględ-niając warunek ortogonalności, do postaci:

Rozdział 2: Podstawowe algorytmy uczenia sieci jednokierunkowych Widać więc, że nowy kierunek zależy od gradientu funkcji, oraz poprzedniego kie-runku pomnożonego przez współczynnik sprzężenia β. Istnieje wiele sposobów dobo-ru owego współczynnika [41], wykorzystujących gradient, bądź kiedobo-runek poszukiwań z poprzedniej iteracji, z których najpopularniejsze to metoda Flethera-Reevesa [15], oraz wykorzystywany w pracy niniejszej sposób określania β wg Polaka-Ribiere’a [65, 47]:

β = [∇E( ~wk)]

T(∇E( ~wk) − ∇E( ~wk−1))

[∇E( ~wk−1)]T∇E( ~wk−1) . (2.23) Metoda ta wymaga ponownego startu po przekroczeniu pewnej liczby epok, ze względu na mogące pojawić się błędy zaokrągleń, a w rezultacie zatracanie właściwo-ści ortogonalnowłaściwo-ści pomiędzy wektorami kierunków[44]. Pomimo tej niedogodnowłaściwo-ści, algorytm gradientów sprzężonych jest bardzo często stosowany z uwagi na stosun-kowo szybką zbieżność (zbliżoną do liniowej), jak i niewielkie wymagania dotyczące pamięci. Dla zadań optymalizacyjnych w przestrzeni o bardzo dużej liczbie wymia-rów (a do takich przecież należy problem uczenia sieci neuronowych), algorytm ten jest jednym z najefektywniejszych.

Rozdział 3

Odporne algorytmy uczenia sieci

neuronowych

3.1 Wprowadzenie do odpornych algorytmów

uczenia

Jak już wspomniano, algorytmy uczenia sieci neuronowych, podobnie, jak wszystkie inne metody opierające się przy budowaniu modelu na pewnym zestawie danych uczących, są wrażliwe na błędy mogące się w nim pojawić. Teza ta wydaje się dość oczywista, a wiele ilustrujących ją przykładów znaleźć można w rozdziale poświęco-nym wynikom eksperymentów numerycznych (rozdział 6).

Jak zostanie dalej pokazane, algorytm uczenia sieci zakładający minimalizację błędu średniokwadratowego, z założenia działać powinien prawidłowo jedynie dla danych czystych, albo zakłóconych niewielkim białym szumem. W przypadku, kiedy w obrazach uczących pojawiają się duże zakłócenia, działania nauczonej na nich sieci staje się w praktyce nieprzewidywalne, nawet, gdy testować ją będziemy na zupełnie czystym zbiorze danych.

Tematyka związana z uodparnianiem procesu uczenia sieci neuronowych na błę-dy w zbiorze uczącym nie jest zagadnieniem, które doczekało się wielu propozycji rozwiązania. W literaturze znaleźć można zaledwie kilka publikacji, które proponują modyfikacje uczenia jednokierunkowych sieci sigmoidalnych (z pewnym jednak wy-jątkiem) mające na celu zwiększenie ich odporności na błędy w danych. Wszystkie opierają się na wprowadzeniu zmodyfikowanej (różnej od kwadratowej) funkcji błę-du, przy zachowaniu wszelkich innych cech algorytmu uczenia. Użycie odpowiednio

Rozdział 3: Odporne algorytmy uczenia sieci neuronowych skonstruowanego kryterium powoduje praktyczne wykluczenie z wpływu na proces uczenia danych powodujących największe błędy, a więc podejrzanych o bycie błęda-mi grubybłęda-mi. W skrócie rzecz ujmując, proponowane w literaturze odporne algoryt-my uczenia sieci sigmoidalnych są prostym rozszerzeniem algorytmu największego spadku, w którym główny nacisk położono na dobór właściwej funkcji kryterialnej. Należy zaznaczyć, że wszystkie istniejące, opisane poniżej, algorytmy przeznaczo-ne zostały do uczenia typu ”on-liprzeznaczo-ne”. Przy ich konstruowaniu, autorzy zakładali, że błędy modelować można za pomocą sumy rozkładów normalnych [7], w sposób dokładnie przedstawiony w przedostatnim rozdziale niniejszej pracy (sekcja 1.2).

Powstaje pytanie, dlaczego opisane dalej algorytmy dotyczą właśnie sieci jedno-kierunkowych. Po pierwsze, są one chyba najlepiej opisaną klasą sieci: istnieje wiele różnorakich algorytmów ich uczenia, oraz udoskonaleń pomagających w szczegól-nych warunkach. Ponadto, są z historycznego punktu widzenia, najstarsze i praw-dopodobnie nadal najbardziej popularne, a więc najczęściej stosowane. Wyróżnia je dodatkowo uniwersalność zastosowań i prostota użycia. Ponadto można znaleźć pewne związki pomiędzy odpornymi estymatorami a sieciami jednokierunkowymi.

Dlaczego jednak sieci sigmoidalne? Tu odpowiedź wydaje się już prostsza. Są one bowiem z natury swej bardziej odporne, niż sieci o bazach radialnych, jak wykazano w [36]. Łatwo to sobie uświadomić pamiętając, że podczas, gdy w sieciach sigmo-idalnych dokonuje się podziału przestrzeni pewnymi hiperpłaszczyznami, w sieciach RBF mamy do czynienia z rozciąganiem hiperpłaszczyzn wokół punktów z ciągu uczącego, tak więc, niejako automatycznie wpływ błędów grubych jest większy.

Wspomniany wyżej wyjątek w odpornych algorytmach to krótka praca (w formie

letter ) [11], w której podjęto próbę uodpornienia prostej sieci RBF w sposób

iden-tyczny, jak we wcześniejszym, chronologicznie rzecz ujmując, odpornym algorytmie RBP (robust backpropagation) [7] przeznaczonym do uczenia sieci o sigmoidalnych funkcjach aktywacji neuronów. Nie jest ona dalej dokładnie opisana, dlatego, że sposób postępowania autora jest identyczny, jak w przypadku metody RBP. Po-nadto w pracy [10] powtórzono rozumowanie z [9] proponując algorytm analogiczny do opisanego dalej ARBP (annealing robust backpropagation), lecz przeznaczony do

Rozdział 3: Odporne algorytmy uczenia sieci neuronowych uczenia sieci z radialnymi funkcjami bazowymi. W obu cytowanych pozycjach au-torzy nie zajmowali się porównaniem swoich metod z analogicznymi algorytmami uczenia sieci sigmoidalnych, choć powinny one działać gorzej niż ich pierwowzory.

Warto zwrócić uwagę, że omówione dalej odporne algorytmy uczenia, jak i me-tody opracowane w ramach tej pracy, skupiły się na reprezentowaniu przez sieć zależności z ciągłymi, albo mogącymi przybierać wiele wartości, wyjściami syste-mu. W związku z tym, uodpornienie dotyczy tu przede wszystkim zadań takich, jak aproksymacja funkcji, predykcja sygnałów, itp. Dla problemów klasyfikacji, szcze-gólnie przy niewielkiej liczbie klas, podejście do uodparniania byłoby zapewne inne [18].