1. Sieci radialne RBF

1.4. Metody doboru liczby funkcji bazowych

Dobór liczby funkcji bazowych, utożsamianych z liczbą neuronów ukrytych, jest podstawowym problemem przy właściwym rozwiązaniu problemu aproksymacji. Podobnie jak w sieciach sigmoidalnych, zbyt mała liczba neuronów nie pozwala dostatecznie zredukować błędu dopasowania na zbiorze danych uczących, natomiast zbyt duża ich liczba powoduje wzrost błędu generalizacji na zbiorze testującym. Dobór właściwej liczby neuronów jest uzależniony od wielu czynników, w tym wymiarowości problemu, liczby danych uczących, a przede wszystkim kształtu aproksymowanej funkcji w przestrzeni wielowymiarowej. Zwykle liczba funkcji bazowych  K  stanowi jedynie pewien ułamek liczby danych uczących  p , przy czym aktualna wartość tego ułamka jest uzależniona od wymiaru wektora  \mathbf{x} oraz od stopnia zróżnicowania wartości zadanych  d_i , odpowiadających wektorom wejściowym  \mathbf{x}_i  dla  i = 1,2,\ldots, p .


4.4.1 Metody heurystyczne

Wobec niemożności określenia a priori dokładnej liczby neuronów ukrytych stosuje się metody adaptacyjne, które pozwalają na ich dodanie lub usunięcie w trakcie procesu uczenia. Powstało wiele metod heurystycznych umożliwiających takie operacje [24]. Zwykle uczenie sieci zaczyna się od pewnej wstępnie założonej liczby neuronów, a następnie kontroluje się zarówno stopień redukcji błędu średniokwadratowego, jak i zmiany wartości adaptowanych parametrów sieci. Najprostszym podejściem jest kolejne zwiększanie liczby neuronów ukrytych, jeśli aktualny błąd uczenia jest zbyt duży. Z kolei jeśli już wstępna wartość błędu jest zadowalająca należy podjąć próbę kolejnego zmniejszania liczby neuronów ukrytych aż do wartości skrajnej przy której dochodzi się do progu akceptowalności błędu.

W bardziej zaawansowanej technice procedura może być bardziej zaawansowana i uzależniona od średniej zmiany wartości wag po określonej liczbie cykli uczących. Jeśli jest zbyt mała  \sum_i \Delta w_i < \varepsilon  dodaje się dwie nowe funkcje bazowe (2 neurony) o centrach odpowiadających odpowiednio największej i najmniejszej wartości błędu dopasowania (dwie skrajne wartości błędu dopasowania), kontynuując uczenie tak rozbudowanej struktury. Jednocześnie kontroluje się absolutne wartości wag  w_i  poszczególnych neuronów. Jeśli są one mniejsze od założonego na wstępie progu, neurony im odpowiadające podlegają usunięciu. Zarówno dodawanie neuronów, jak i usuwanie odbywa się po określonej liczbie cykli uczących i trwa przez cały czas uczenia, aż do uzyskania odpowiedniej dokładności odwzorowania.

Inne podejście w sterowaniu liczbą neuronów ukrytych zaproponował J. Platt. Jest to metoda łącząca w sobie jednocześnie uczenie samoorganizujące i z nadzorem. Po każdej prezentacji kolejnego wzorca uczącego określana jest odległość euklidesowa między nim a najbliższym centrum istniejącej już funkcji radialnej. Jeśli ta odległość jest większa od założonego progu  \Delta , tworzone jest nowe centrum funkcji radialnej (dodawany neuron) w punkcie odpowiadającym prezentowanemu wektorowi  \mathbf{x} , po czym sieć podlega standardowemu douczeniu z wykorzystaniem metod gradientowych (uczenie z nadzorem). Proces dodawania neuronów zachodzi aż do uzyskania określonej wartości błędu odwzorowania. Ważnym problemem w tej metodzie jest dobór wartości progu  \Delta , decydującej o rozbudowie struktury sieci. Zwykle wartość ta zmienia się wykładniczo z czasem (liczbą iteracji) od wartości maksymalnej na początku procesu do wartości minimalnej na końcu.


4.4.2 Metoda ortogonalizacji Grama-Schmidta

Skuteczną metodą kontroli liczby neuronów ukrytych pozostaje zastosowanie specjalnej techniki uczenia sieci opartej na metodzie ortogonalizacji najmniejszych kwadratów (ang. Orthogonal Least Squares - OLS) i korzystającej z klasycznego algorytmu ortogonalizacji Grama-Schmidta [6,46]. Metoda ta ma wbudowany algorytm określania optymalnej liczby funkcji radialnych w trakcie procesu uczenia.

Punktem wyjścia jest przedstawienie problemu uczenia jako liniowego dopasowania wektora wag sieci   \mathbf{w} , minimalizującego wartość wektora błędu   e , czyli


 \min _{\mathbf{w}} \mathrm{E}=\|e\|^2=|\mathbf{G} \mathbf{w}-\mathbf{d}|^2 (4.17)

W równaniu tym  \mathbf{G} jest macierzą Greena a  \mathbf{d}  wektorem wartości zadanych,  \mathbf{d} = [d_1, d_2, \ldots, d_n]^T o zerowej wartości średniej. Na wstępie przyjmuje się liczbę funkcji radialnych  K=p i centrach  \mathbf{c}_i = \mathbf{x}_i . Iloczyn  \mathbf{Gw}  podniesiony do kwadratu reprezentuje część pożądaną energii związaną z wartościami sygnałów zadanych wektorem  \mathbf{d} . Wartość tej energii podlega optymalizacji w procesie uczenia dążąc do wartości energii zdefiniowanej wektorem  \mathbf{d}  (suma kwadratów składników d_i wektora  \mathbf{d} ). Wprowadzając oznaczenia  \mathbf{g}_i  dla kolumn macierzy  \mathbf{G}  można ją przedstawić w postaci  \mathbf{G} = [\mathbf{g}_1, \mathbf{g}_2, \ldots, \mathbf{g}_K ] , w której wektory \mathbf{g}_i  są powiązane z funkcjami bazowymi Gaussa. Metoda ortogonalizacji najmniejszych kwadratów polega na transformacji wektorów \mathbf{g}_i  w zbiór bazowych wektorów ortogonalnych, umożliwiających ocenę indywidualnego wkładu każdego z nich w ogólną wartość energii reprezentowanej przez  \mathbf{Gw}  i eliminację pewnej ich liczby (których znaczenie dla procesu jest minimalne) z  p   do  K , przy czym K < p .

W procesie uczenia macierz \mathbf{G}  o wymiarze  p \times K ulega rozkładowi na iloczyn macierzy \mathbf{Q}   (o wymiarze   p \times K złożonej z ortogonalnych wektorów kolumnowych \mathbf{q}_i \mathbf{Q} = [\mathbf{q}_1, \mathbf{q}_2, \ldots, \mathbf{q}_K ]  oraz kwadratowej macierzy górnotrójkątnej \mathbf{A}  stopnia  K o jednostkowych wartościach na diagonali


 \mathbf{G} =\mathbf{QA}  (4.18)


W równaniu tym


 \mathbf{A}=\left[\begin{array}{ccccc} 1 & a_{12} & a_{13} & \cdots & a_{1 K} \\ 0 & 1 & a_{23} & \cdots & a_{2 K} \\ \cdots & \cdots & \cdots & \cdots & \cdots \\ 0 & 0 & 0 & \cdots & 1 \end{array}\right]
(4.19)


przy czym macierz ortogonalna \mathbf{Q}  spełnia zależność


 \mathbf{Q}^T\mathbf{Q}=\mathbf{H}
(4.20)


w której  \mathbf{H}  jest macierzą diagonalną o elementach diagonalnych  h_{i i}=\mathbf{q}_i^T \mathbf{q}_i=\sum_{j=1}^K q_{i j}^2 . Rozwiązanie zadania minimalizacji (4.17) sprowadza się do rozwiązania równania liniowego


 \mathbf{Gw} = \mathbf{QAw}=\mathbf{d} (4.21)


Po wprowadzeniu wektora pomocniczego b


 \mathbf{b}=\mathbf{Aw} (4.22)


równanie (4.21) upraszcza się do postaci


 \mathbf{d} = \mathbf{Qb} (4.23)


Jest to układ  p równań z  K  niewiadomymi. Rozwiązanie tego równania (wektor  \mathbf{\hat{b}} ) przyjmuje postać


 \mathbf{\hat{b}} = [\mathbf{Q}^T\mathbf{Q}]^{-1}\mathbf{Q}^T\mathbf{d}=\mathbf{H}^{-1}\mathbf{Q}^T\mathbf{d}
(4.24)


Biorąc pod uwagę diagonalny charakter macierzy   \mathbf{H}  można podać jawny wzór opisujący poszczególne składniki wektora  \mathbf{\hat{b}}  


 \hat{b}_i=\frac{\mathbf{q}_i^T \mathbf{d}}{\mathbf{q}_i^T \mathbf{q}_i} (4.25)


Po określeniu wektora  \mathbf{\hat{b}}  można wyznaczyć również wektor poszukiwanych wag  \mathbf{w}


 \mathbf{w} = \mathbf{A}^{-1}\mathbf{b}  (4.26)


Przy trójkątnej postaci macierzy  \mathbf{A} rozwiązanie równania (4.26) względem wektora   \mathbf{w}  nie sprawia trudności natury obliczeniowej. Ortogonalizacja macierzy  \mathbf{G}  opisana zależnością (4.18) może być dokonana różnymi metodami, z których najefektywniejszy jest algorytm ortogonalizacji Grama-Schmidta [6]. W metodzie tej generacja macierzy   \mathbf{A}  następuje kolumna po kolumnie z jednoczesnym tworzeniem kolejnych kolumn ortogonalnej macierzy   \mathbf{Q} . W kroku k-tym tworzy się kolumnę   \mathbf{q}_k  ortogonalną do wszystkich  k-1 kolumn utworzonych wcześniej. Procedurę powtarza się dla kolejnych wartości    k=2,3,\ldots, K .

Ważną zaletą metody ortogonalizacji w tym zastosowaniu jest również możliwość selekcji wektorów   \mathbf{q}_i   pod względem ich ważności w odwzorowaniu danych uczących. Przy założonej na wstępie liczbie  K=p  funkcji radialnych zadanie polega na takim ustawieniu kolejnych wektorów  \mathbf{q}_i , aby wyselekcjonować pierwsze  K_r  najbardziej znaczące pod względem energetycznym, przy czym zwykle  K_r \ll p .

Uwzględnienie w dalszych obliczeniach tylko   K_r funkcji radialnych odpowiada redukcji liczby neuronów ukrytych z wartości wstępnej  p  do wartości   K_r . Biorąc pod uwagę energię związaną z sygnałami opisanymi wektorem  \mathbf{d} i uwzględniając zależność (4.25) otrzymuje


 \mathbf{d}^T \mathbf{d} \cong \sum_{i=1}^p \hat{b}_i^2 \mathbf{q}_i^T \mathbf{q}_i
(4.27)


Jeśli przyjmie się, że   \mathbf{d}  reprezentuje wektor zadany o zerowej wartości średniej, składnik  \hat{b}_i^2 \mathbf{q}_i^T \mathbf{q}_i  może być zinterpretowany jako średni wkład  i -tej funkcji bazowej w odwzorowanie funkcji zadanej wektorem   \mathbf{d} . Względny udział tego składnika w ogólnym bilansie energii wyraża się zatem wzorem


 \varepsilon_i=\frac{\hat{b}_i^2 \mathbf{q}_i^T \mathbf{q}_i}{\mathbf{d}^T \mathbf{d}}
(4.28)


Wyznaczenie wartości  \varepsilon_i odpowiadających poszczególnym funkcjom bazowym umożliwia określenie ich wkładu w odwzorowanie funkcyjne danych uczących, co ułatwia podjęcie decyzji o redukcji tych, których wpływ jest najmniejszy. Po wyselekcjonowaniu określonej liczby najbardziej znaczących funkcji radialnych proces ortogonalizacji przeprowadza się powtórnie, określając nowe rozwiązanie i selekcjonując następne, najbardziej znaczące funkcje radialne. Przy założeniu wartości startowej  K=p  po kilku cyklach ortogonalizacji Grama-Schmidta można wyselekcjonować pożądaną liczbę K_r najbardziej znaczących funkcji bazowych, eliminując pozostałe. Procedurę określania najbardziej znaczących w odwzorowaniu funkcji radialnych kończy się z chwilą spełnienia warunku


 1-\sum_{j=1}^{K_r} \varepsilon_j < \rho
(4.29)


gdzie   0 < \rho < 1 jest przyjętą z góry wartością tolerancji.

W wyniku przeprowadzonej procedury zachowanych zostaje jedynie K_r  najbardziej znaczących funkcji radialnych położonych w centrach określonych poprzez wybrane przez algorytm dane uczące  \mathbf{x}_i . Jednocześnie w wyniku działania algorytmu określone są poszczególne składowe  b_i  wektora  \mathbf{b} , na podstawie których z zależności (4.26) otrzymuje się wartości wag   \mathbf{w}  warstwy wyjściowej sieci.

Tolerancja  \rho  decydująca o zakończeniu procesu uczenia jest ważnym czynnikiem, od którego zależy z jednej strony dokładność odwzorowania danych uczących, a z drugiej - stopień złożoności sieci neuronowej. W wielu przypadkach jej wartość może być oszacowana na podstawie rozkładu statystycznego danych uczących oraz aktualnych postępów w uczeniu. W praktyce przeprowadza się zwykle wiele procesów uczenia sieci RBF przy różnych wartościach  \rho , zachowując jedynie tę, która zapewnia najlepsze działanie sieci na danych weryfikujących (część danych uczących nie biorąca udziału w uczeniu).