• Nie Znaleziono Wyników

Odporny algorytm ze zmiennym współczynnikiem uczenia

Wprowadzenie

W pierwszym, z historycznego punktu widzenia, algorytmie uczenia sieci, opartym na zasadzie wstecznej propagacji błędu, współczynnik uczenia ustalany był przed rozpoczęciem działania metody minimalizacyjnej i pozostawał niezmieniony przez cały czas działania algorytmu. Jego wartość dobierana była najczęściej w sposób

Rozdział 4: Opracowane odporne algorytmy uczenia eksperymentalny, tak, aby zapewnić, że proces uczenia w większości przypadków odpowiednio zbliża się do poszukiwanego ekstremum funkcji celu. Oczywiście dziś podejście to, mimo jego niewątpliwej prostoty, nie jest już praktycznie stosowane. Wynika to z faktu, że przebieg procesu uczenia, jest bardzo wrażliwy na dobór odpowiedniej wartości współczynnika kroku - najprościej rzecz ujmując, za duża jego wartość spowodować może ”przeskakiwanie” minimów, zbyt mała zaś implikuje niską zbieżność i zwiększa ryzyko utknięcia w ekstremach lokalnych.

By poradzić sobie z tym problemem powstało wiele metod polegających na do-borze współczynnika uczenia dynamicznie w trakcie samej procedury uczenia sieci. Wymieniając jedynie najważniejsze z nich, wspomnieć należy o metodzie adapta-cyjnego doboru współczynnika uczenia, w której jest on zwiększany o zadaną war-tość, jeśli bieżący błąd sieci przekracza błąd poprzedni (proces jest daleko od opti-mum) i zmniejszany w przypadku przeciwnym [66]. Przy odpowiednio ustalonych warunkach zmian współczynnika, ten sposób postępowania pozwala na przyspie-szenie działania algorytmu. Istnieje również kilka innych sposobów adaptacyjnego doboru współczynnika uczenia, opisanych np. w [4] i [5].

Bardziej zaawansowane podejście polega z kolei na poszukiwaniu, w każdej epoce algorytmu, współczynnika uczenia, który minimalizuje funkcję celu w zadanym kie-runku [12]. Aby przyspieszyć działanie metody stosuje się tu często bezgradientowe sposoby poszukiwań minimum w kierunku, np. bisekcji, Fibbonaciego, kwadratowej aproksymacji funkcji celu, etc.

W metodzie delta-bar-delta [29] natomiast, dla każdej wagi sieci dobierany jest osobny współczynnik uczenia. Znak gradientu funkcji błędu dla pojedynczej wagi po-równywany jest z jego znakiem w poprzedniej iteracji i na tej podstawie, w zależności od kierunku zmian gradientu, dokonuje się zwiększenia, bądź redukcji współczynnika uczenia.

Warto podkreślić, że żadna z opisanych w literaturze metod doboru współczyn-nika uczenia nie bierze pod uwagę potencjalnego wpływu danych odstających. Za-stanówmy się więc, w jaki sposób zależność taką można uwzględnić. W tym celu przedstawiony zostanie, opracowany w ramach niniejszej pracy algorytm nazwany VLR (variable learning rate).

Rozdział 4: Opracowane odporne algorytmy uczenia

Opis algorytmu VLR

Najogólniej rzecz ujmując, wielkość kroku algorytmu optymalizacji, uczącego sieć neuronową poprzez poszukiwanie minimum funkcji celu metodą największego spad-ku, zależy od dwóch czynników: gradientu funkcji celu w danym punkcie, oraz warto-ści współczynnika uczenia. Można zauważyć, że aby zmniejszyć wpływ pojedynczej danej odstającej na kierunek uczenia sieci trzeba, dla konkretnego residuum, po-dejrzanego o bycie takim błędem, zmniejszyć którąś z dwóch wymienionych wielko-ści. Uwzględnienie wpływu pojedynczych danych wymaga oczywiście zastosowania procedury uczenia on-line, zajmijmy się zatem takim procesem uczenia, w którym adaptacja wag odbywa się po prezentacji każdego ze wzorców uczących w sposób na-stępujący: do wagi wj po zaprezentowaniu i-tego elementu ciągu uczącego dodawana jest wielkość:

∆wij = −η∂ρ (ri)

∂ri ∂ri

∂wj, (4.18)

przy czym η oznacza współczynnik uczenia.

Zatem, aby zmienić wielkość kroku algorytmu nie ingerując w postać funkcji celu, rozważyć należy modyfikację η. Jeśli chcemy, by współczynnik uczenia poma-gał w dyskryminacji błędów grubych, powinien on przyjmować relatywnie niedużą wartość dla obrazów uczących powodujących największe błędy, aby zmiany wag za-leżały od nich w niewielki sposób. Wprowadźmy więc zmienny współczynnik uczenia zdefiniowany jako:

η (ri) = η0φ (ri) , (4.19) gdzie η0 oznacza pewną stałą wartość początkową, natomiast φ(ri) jest funkcją kosztu współczynnika. Funkcja ta powinna być symetryczna, posiadać swoje jedy-ne minimum w zerze, oraz dążyć do zera w nieskończoności. Jako, że jej zadaniem jest zmniejszanie wartości współczynnika uczenia dla dużych ri, warto dla prosto-ty przyjąć φ(0)=1, aby η(0) = η0. Funkcja kosztu może być wtedy, np. kształtu Gaussowskiego: φ (ri) = e  1 a2ri 2 , (4.20)

gdzie ±a jest punktem przegięcia. Stała ta (dobrana eksperymentalnie jako 0.35) determinuje także przedział obcinający residua podejrzane o bycie błędami grubymi.

Rozdział 4: Opracowane odporne algorytmy uczenia Działanie opisanej modyfikacji algorytmu uczenia jest więc bardzo proste: współ-czynnik uczenia ważony jest w niej przez pewną funkcję błędu, która przyjmuje sto-sunkowo małe wartości dla dużych argumentów. Jako, że jest to algorytm, w którym aktualizacja wag następuje po prezentacji każdego obrazu uczącego, dlatego funkcja zmniejszająca współczynnik uczenia powinna być stała, gdyż nie można powiązać jej z aktualnymi wartościami rozrzutu błędów. Ewentualnie, można by próbować wprowadzić pewien schemat zmian jej postaci w czasie, ale próby takie nie zostały w niniejszej pracy podjęte.

Algorytm VLR - procedura

Procedura postępowania dla algorytmu VLR może więc zostać zapisana, jak poniżej: 1. Wylosuj wartości początkowe parametrów sieci.

2. Oblicz błąd dla wszystkich wyjść sieci, oraz błędy warstw ukrytych (propagacją wsteczną). Jeśli kryterium stopu spełnione, zakończ uczenie.

3. Oblicz nową wartość współczynnika uczenia η(ri).

4. Wykonaj krok uczenia aktualizując wagi sieci i wróć do punktu drugiego. Omawiana metoda została przedstawiona bardziej szczegółowo przez autora ni-niejszej pracy w [55].

Uwagi

Oczywiście opisane powyżej postępowanie niesie za sobą kilka niebezpieczeństw: po pierwsze, proces uczenia uwzględnia również błędy grube, choć przesuwa się w kie-runku zależnym od nich bardzo powoli, po drugie zaś, nie ma gwarancji, że zakłóce-nia procedury minimalizacyjnej nie spowodują jej błędnego działazakłóce-nia dla czystych danych uczących. Pierwszy z wymienionych problemów rozwiązać częściowo można przez zastosowanie w procesie uczenia funkcji kryterialnej, która sama wprowadza już częściowe obcinanie danych odstających. Drugi problem jest niestety charakte-rystycznym zjawiskiem dla wszystkich odpornych algorytmów, choć również i tu, odpowiednia postać funkcji celu zapobiega w większości przypadków rozbieżności

Rozdział 4: Opracowane odporne algorytmy uczenia i prowadzi do znalezienia rozwiązania bliskiego właściwemu. Z tego powodu, algo-rytm z adaptacyjnie dobieranym współczynnikiem uczenia należy używać łącznie ze zmodyfikowaną funkcją celu, najlepiej mającą swój rodowód w odpornych esty-matorach. Na potrzeby niniejszej pracy przyjęto przy testowaniu metody, opisaną wcześniej funkcję błędu LMLS (sekcja 3.2.2).

Dodatkowo powstać może pytanie o sens wprowadzania algorytmu pierwszego rzędu, jeżeli, jak wspominano, algorytmy drugiego rzędu działają znacznie efektyw-niej. Otóż, jak się okazuje, istnieją również sytuacje, w których niezbędne jest wyko-rzystanie właśnie sposobu uczenia typu ”on-line”, który w zasadzie determinuje sto-sowanie metody największego spadku, ewentualnie jej modyfikacji. By wspomnieć, wśród typowych przykładów, filtry adaptacyjne, regulatory neuronowe, przetwarza-nie danych strumieniowych i inne zastosowania, w których sieć powinna uczyć się w miarę dostępności informacji o modelowanym procesie.

Warto jednak zauważyć, że przy trochę zmienionej definicji problemu, kiedy dostępne staje się przechowywanie pewnej ilości prezentowanych danych uczących w ograniczonym buforze, możliwe by było zastosowanie w wymienionych sytuacjach również algorytmów z uczeniem skumulowanym. Modyfikacja wag sieci i obliczenie błędów, mogłyby bowiem mieć miejsce po zaprezentowaniu owej stałej ilości elemen-tów uczących, co z kolei pozwoliłoby na stosowanie metod uczenia drugiego rzędu.

Podsumowanie algorytmu VLR

Odporny algorytm VLR w prosty sposób wykorzystuje zmianę współczynnika ucze-nia do niwelowaucze-nia wpływu błędów grubych. Jest on przeznaczony do uczeucze-nia typu ”obraz po obrazie”, nie może być więc stosowany z metodami drugiego rzędu.

4.5 Odporny algorytm uczenia drugiego rzędu ze