Sieci neuronowe jednokierunkowe wielowarstwowe
Wstęp Jednokierunkowe sieci wielowarstwowe radzą sobie z szerszą klasą problemów niż sieci liniowe. Jednokierunkowe sieci wielowarstwowe (perceptrony wielowarstwowe) radzą sobie z szerszą klasą problemów niż sieci liniowe. Dzięki większej ilości warstw sieci te radzą sobie z problemami liniowo nieseparowalnymi. Uczenie sieci polegać będzie na minimalizacji pewnej funkcji celu, indukowanej przez reakcje sieci na wektory z zadanego zbioru uczącego. Funkcja ta jest ciągłą funkcją wielu zmiennych. Algorytmy uczenia są bardziej skomplikowane. Zwykle stosuje się uczenie z nauczycielem.
2. Budowa jednokierunkowej sieci wielowarstwowej
2.1 Model neuronu (2.1) - wektor wejściowy - wektor wag i-tego neuronu Neuron składa się z elementu sumacyjnego, do którego dochodzi sygnał x, pomnożony przez wektor wag W, oraz wartość Wi0 zwana progiem. Sygnał z bloku sumacyjnego podawany jest do bloku realizującego nieliniową funkcję aktywacji f(ui). - wektor wag i-tego neuronu - funkcja aktywacji - próg
2.2 Funkcje aktywacji neuronu Algorytmy uczenia dla sieci wielowarstwowych wymagają aby funkcje aktywacji były ciągłe i różniczkowalne a ich pochodne były możliwie proste do wyliczenia. Ponadto często chcielibyśmy móc łatwo rozróżnić kiedy neuron jest w stanie wzbudzenia, a kiedy nie, dlatego powyższe funkcje są ciągłymi przybliżeniami funkcji skokowych. Parametr beta pozwala nam zwiększyć lub zmniejszyć stopień przybliżania funkcji skokowej. Im większe beta tym ostrzejszy skok. Zazwyczaj przyjmuje się beta=1. Na powyższych rysunkach mamy możemy wyróżnić funkcje unipolarne o wartościach [0,1] i bipolarną o wartościach [-1,1].
Wyliczmy pochodną funkcji aktywacji dla analogicznie dla Pochodne w punkcie x można łatwo obliczyć znając tylko f(x). oraz dla
2.3 Struktura sieci Sieć składa się z warstwy wejściowej, której zadaniem jest przekazanie sygnałów wejściowych do pierwszej warstwy ukrytej. Jednej (lub więcej) warstwy ukrytej, generującej sygnały vi, oraz warstwy wyjściowej generującej sygnały yi. Oznaczamy przez N - ilość neuronów warstwy wejściowej, K ilość neuronów warstwy ukrytej, M – ilość neuronów warstwy wyjściowej.
3. Funkcja celu Najskuteczniejszą metodą uczenia sieci jednokierunkowych jest optymalizacja funkcja celu, minimalizująca błąd między wartościami żądanymi a aktualnie otrzymywanymi na wyjściu sieci. Oznaczenia: - wektor znanych wartości żądanych na wyjściu - p-elementowy zbiór uczący Para ucząca to wektor wejściowy i wektor z oczekiwanymi odpowiedziami dla danego wektora wejściowego. Funkcja celu to funkcja wag sieci. - wektor wszystkich wag w sieci - funkcja celu
3.1 Definicje Dla jednej pary uczącej (x,d) najprostsza definicja funkcji celu ma postać błędu średniokwadratowego Dla p-elementowego ciągu uczącego możemy przyjąć Tak zdefiniowane funkcje celu są ciągłe i różniczkowalne, ponieważ funkcje aktywacji są ciągłe i różniczkowalne. Umożliwia to wykorzystanie metod gradientowych do ich minimalizacji.
3.2 Minimalizacja funkcji celu W gradientowych metodach optymalizacji wykorzystuje się informacje o gradiencie funkcji celu Na jego podstawie, w każdym kroku, określa się kierunek minimalizacji Następnie aktualizuje się wektor wag według formuły W najprostszym przypadku za wektor kierunki można kierunek zgodny z kierunkiem ujemnego gradientu, a współczynnik uczenia ustalić stały. gdzie to współczynnik uczenia
Uczenie (minimalizacja) rozpoczyna się w losowo wybranym punkcie i przebiega wielokrokowo. W każdym kroku wyznaczamy wektor kierunku, według którego dokonujemy zmiany wag. Jakość i prędkość minimalizacji zależy od metody wyznaczania wektora kierunku oraz od metody doboru współczynnika uczenia. Niektóre algorytmy lepiej zachowują się w pobliżu minimum funkcji, inne lepiej radzą sobie w obszarach równinnych. Problemem może być tu utykanie algorytmów w płytkich minimach lokalnych. W takim wypadku mówimy że sieć nie została poprawnie nauczona i zazwyczaj rozpoczynamy minimalizację od nowa z innego miejsca. Niektóre algorytmy mają tendencję do unikania płytkich minimów lokalnych. Przykładowy wykres funkcji celu, dla sieci złożonej z jednego neuronu o dwóch wagach. Jakość i prędkość minimalizacji zależy od metody wyznaczania kierunku oraz od metody wyznaczenia współczynnika uczenia.
3.3 Inne funkcje celu W zależności od zastosowania, możemy definiować inne funkcje celu: Funkcja ta zapewnia bardziej równomierny udział poszczególnych składników błędu w ogólnej definicji funkcji celu. Pierwsza funkcja zapewnia bardziej równomierny udział poszczególnych składników błędu w ogólnej definicji funkcji celu. Drugą możemy stosować gdy zadaniem układu jest minimalizacja największego odchylenia odpowiedzi od wielkości żądanej. Funkcja minimalizuje największego odchylenia odpowiedzi od wielkości żądanej.
4. Algorytm wstecznej propagacji błędu 1. Analiza sieci neuronowej o zwykłym kierunku przepływu sygnałów, dla aktualnego wektora x, w wyniki której otrzymujemy sygnały wyjściowe wszystkich warstw, a także pochodne 2. Utworzenie sieci propagacji wstecznej przez odwrócenie kierunków sygnałów, zastąpienie funkcji aktywacji ich pochodnymi, i podanie do byłego wejścia różnic między wartościami otrzymanymi w punkcie 1 a żądanymi. Obliczenie gradientu. 3. Na podstawie wyników z 1 i 2 dokonujemy adaptacji wag (uczenie) w sieci. 4. Powtarzamy cały proces dla wszystkich wzorców tak długo aż norma gradientu będzie mniejsza niż zadany stopień dokładności
4.1 Wyznaczenie gradientu Przyjmijmy za funkcję celu dla powyższej sieci
Składowe gradientu otrzymujemy różniczkując funkcję celu Dla warstwy wyjściowej otrzymujemy Oznaczmy Więc ostatecznie
niż jedna warstwę ukrytą. W wyliczeniu składowych gradientu dla warstwy ukrytej korzystamy z rezultatów obliczeń w warstwie wyjściowej przy czym Wzory można przez analogię rozszerzyć na sieć posiadającą więcej niż jedna warstwę ukrytą. Powyższe wzory można przez analogię rozszerzyć na sieć posiadającą więcej niż jedna warstwę ukrytą.
Posiadając wszystkie składowe gradientu można przystąpić do aktualizacji wag przyjmując
4.2 Wyznaczenie gradientu metodą grafów przepływowych Graf przepływowy graf skierowany w którym: Sygnał przepływa wzdłuż krawędzi tylko w kierunku z godnym z kierunkiem krawędzi. Przepływający przez krawędź przepuszczany jest przez funkcję przypisaną tej kawędzi. Wartość węzła jest sumą wartości wszystkich sygnałów wchodzących do węzła Wartość każdego węzła jest przesyłana przez wszystkie krawędzie wychodzące z węzła Graf przepływowy graf skierowany w którym: Sygnał przepływa wzdłuż krawędzi tylko w kierunku z godnym z kierunkiem krawędzi. Przepływający przez krawędź sygnał jest mnożony przez wagę krawędzi. Wartość węzła jest sumą wartości wszystkich sygnałów wchodzących do węzła Wartość każdego węzła jest przesyłana przez wszystkie krawędzie wychodzące z węzła
Dla sieci przedstawionej jako graf przepływowy, tworzymy graf dołączony
Do wejścia otrzymanego grafu dołączonego podajemy różnice sygnałów otrzymanych i oczekiwanych w grafie oryginalnym.
Analizując oba grafy, wyznaczamy składowe wektora gradientu Dla warstwy wyjściowej Dla k-tej warstwy ukrytej Dla warstwy pierwszej warstwy ukrytej
5. Algorytmy gradientowe optymalizacji w zastosowaniu do uczenia sieci Algorytmy te bazują na informacji o gradiencie oraz na rozwinięciu w szereg Taylora funkcji celu, w najbliższym sąsiedztwie znanego rozwiązania W.
Celem działania tych algorytmów jest minimalizacja funkcji celu poprzez wyznaczanie, w każdym kroku, kierunku poszukiwań oraz wartości takich że
5.1 Algorytm największego spadku W tym algorytmie jako kierunek poszukiwań obieramy ujemny gradient Wadą tego algorytmu jest niewykorzystanie informacji o krzywiźnie funkcji zawartej w hesjanie, co powoduje że metoda ta jest wolno zbieżna. W okolicy punktu optymalnego gradient przyjmuje małe wartości, co wydłuża czas działania algorytmu. Poprawę efektywności może przynieść umiejętne dobieranie parametru oraz zastosowanie czynnika momentum uzależniającego wykonanie kroku algorytmu od kroku wykonanego w poprzedniej iteracji. Ulepszenie to przyspiesza działanie algorytmu nawet 10-krotnie
5.2 Algorytm zmiennej metryki W algorytmie tym, wyznaczając wektor poszukiwań, wykorzystujemy kwadratowe przybliżenie funkcji celu, a wektor poszukiwań wyznaczamy korzystając z formuły Z przyczyn praktycznych rezygnuje się w tym algorytmie z dokładnego Wyznaczenia hesjanu, a w zamian stosuje się jego przybliżenie stosując metodę zmiennej metryki.
Oznaczmy Reguła Broydena-Goldfarba-Fletchera-Shanno (BFGS) Reguła Reguła Davidona-Fletchera-Powella (DFP)
Za wartość startową przyjmuje się zwykle Za wartość startową przyjmuje się zwykle oraz pierwszy krok algorytmu wykonuje zgodnie z algorytmem największego spadku. Metoda zmiennej metryki charakteryzuje się zbieżnością superliniową. Jest obecnie uważana za jedną z najlepszych metod optymalizacji funkcji wielu zmiennych. Jednakże konieczność aproksymowania macierzy hesjanu ogranicz jej zastosowanie do problemów z niewielką ilością zmiennych (<1000).
5.3 Algorytm Levenberga- Marquardta Przyjmijmy definicję funkcji celu odpowiadającej istnieniu jednego wzorca uczącego oraz oznaczmy
Algorytm LM również wyznacza wektor zgodnie z regułą Jednakże zarówno gradient jak i przybliżoną macierz hesjanu wyznaczamy w oparciu o jakobian Wartość skalarna jest dobierana arbitralnie i zmniejszana w trakcie uczenia do zera w okolicy rozwiązania minimalnego. Wartość nazywamy czynnikiem regularyzacyjnym.
Na początku działania algorytmu gdy wartość jest duża, można przyjąć że Wtedy poszukiwanie odbywa się zgodnie z metodą największego spadku W miarę zbliżania się do rozwiązania jest zmniejszane i pierwszy składnik wzoru na przybliżony hesjan zaczyna odgrywać coraz większą rolę.
5.5 Metoda gradientów sprzężonych W metodzie tej rezygnuje się z bezpośredniej informacji o hesjanie. Kierunek poszukiwań konstruowany jest tak aby był ortogonalny i sprzężony ze wszystkimi kierunkami wyznaczonymi w poprzednich krokach algorytmu. Wektor spełniający te założenia ma postać Przy czym Zaś kumuluje informację o ortogonalności i sprzężoności wszystkich wektorów Kierunku wyznaczanych w poprzednich k-1 krokach.
Ze względu na kumulację błędów zaokrągleń, metoda zatraca własność ortogonalności między wektorami, zatem co określoną ilość iteracji należy przeprowadzać jej ponowny start. Efektywność tej metody jest słabsza niż efektywność metody zmiennej metryki, jednakże jej prostota i niewielkie wymagania pamięciowe czynią ją najlepszą metodą optymalizacji funkcji o dużej ilości zmiennych.
6. Algorytmy heurystyczne
6.1 Algorytm Quickprop Czynnik redukuje wartości wag i nie pozwala na ich duży przyrost. Typowa wartość to 10-4 Czynnik przyjmuje dwie wartości: Na starcie uczenia, lub gdy albo zero w przeciwnym wypadku
Istotną rolę pełni współczynnik momentu dobierany dla każdej wagi indywidualnie. lub wpw.