Podręcznik

2. Sieć perceptronu wielowarstwowego MLP

2.8. Inicjalizacja wartości początkowych wag sieci

Uczenie sieci neuronowych, nawet przy zastosowaniu najefektywniejszych algorytmów uczących, jest procesem trudnym i nie zawsze prowadzącym do właściwych wyników. Problemem są nieliniowości wprowadzane przez funkcje aktywacji, będące głównym powodem wytworzenia szeregu minimów lokalnych, w których może zatrzymać się proces uczenia. Wprawdzie zastosowanie odpowiedniej strategii postępowania (np. symulowane wyżarzanie, metoda multistaru, algorytmy genetyczne [11,15,44]) mogłoby zmniejszyć prawdopodobieństwo zatrzymania procesu w minimum lokalnym, ale konsekwencją tego jest duży nakład pracy i znaczne wydłużenie czasu uczenia. Ponadto zastosowanie tych metod wymaga dużego doświadczenia w trudnych zagadnieniach optymalizacji globalnej, zwłaszcza przy właściwym doborze parametrów procesu.

Na wyniki uczenia ogromny wpływ ma dobór wstępnych wartości wag sieci. Pożądany byłby start z wartości wag zbliżonych do optymalnych. Unika się w ten sposób nie tylko zatrzymania się w niewłaściwym minimum lokalnym, ale jednocześnie znacznie przyspiesza proces uczenia. Niestety, w ogólnym przypadku nie istnieją metody doboru wag, zapewniające optymalny punkt startowy niezależnie od rodzaju zadania. Stąd w większości zastosowań używa się nadal głównie losowego doboru wag, przyjmując ich rozkład równomierny w określonym przedziale liczbowym. Zły dobór zakresu wartości losowych wag może prowadzić do zjawiska przedwczesnego nasycenia neuronów, w wyniku którego mimo upływu czasu błąd średniokwadratowy pozostaje prawie stały w procesie uczenia. Jest on zwykle wynikiem zbyt dużych wartości startowych wag. Przy określonych sygnałach uczących, w węzłach sumacyjnych neuronów generowane są sygnały ui o wartościach odpowiadających głębokiemu nasyceniu funkcji sigmoidalnej aktywacji, przy czym polaryzacja nasycenia jest odwrotna do pożądanej (sygnał wyjściowy neuronu  +1 przy pożądanej wartości  -1 i odwrotnie). W punkcie nasycenia sygnał zwrotny generowany w metodzie propagacji wstecznej, jako proporcjonalny do pochodnej funkcji aktywacji, jest bliski zeru i zmiany wartości wag wyprowadzające neuron ze stanu nasycenia są bardzo powolne. Proces uczenia utyka na długo w punkcie siodłowym. Należy zauważyć, że tylko część neuronów może być w stanie nasycenia, pozostałe znajdują się w zakresie liniowym i dla nich sygnał zwrotny uczący przyjmie normalną postać. Oznacza to, że wagi związane z tymi neuronami zmieniają się w sposób normalny i w ich przypadku proces uczenia prowadzi do szybkiej redukcji błędu. W efekcie neuron pozostający w nasyceniu nie bierze udziału w odwzorowaniu danych, zmniejszając w ten sposób efektywną liczbę neuronów sieci. W wyniku tego następuje znaczne spowolnienie procesu uczenia, powodujące, że stan nasycenia pewnych neuronów może trwać prawie nieprzerwanie aż do wyczerpania limitu iteracji.

Inicjalizacja losowa, jako jedyna uniwersalna metoda przypisania wartości wstępnych wagom sieci, musi zatem zapewnić na wstępie taki punkt pracy neuronów, który jest daleki od nasycenia. Osiąga się to przez ograniczenie zakresu wartości krańcowych w losowaniu. Oszacowanie dolne i górne zakresu tego przedziału, proponowane przez różnych badaczy na podstawie wielu przeprowadzonych eksperymentów numerycznych, różnią się w szczegółach rozwiązania, ale prawie wszystkie znajdują się w przedziale [0, 1].

Jedną z najbardziej popularnych sposobów inicjalizacji wag jest metoda Nguyen’a i Widrow’a [43]. Optymalny zakres wartości losowych elementów wektora wagowego neuronów warstw ukrytych powinien według nich być równy   \pm \sqrt[n_{in}]{N_h}  , gdzie  N_h  oznacza liczbę neuronów ukrytych w warstwie, a  n_{in} liczbę wejść danego neuronu. Wartości wstępne wag neuronów wyjściowych powinny być losowe w zakresie [-0,5 0,5]. Tego typu strategia inicjalizacji wag została między innymi zastosowana w algorytmach uczących zaimplementowanych w programie MATLAB [43].