Podręcznik

3. Zdolności generalizacyjne sieci neuronowych

3.4. Wstępny dobór architektury sieci

Przy rozwiązywaniu jakiegokolwiek zadania z wykorzystaniem sieci neuronowej należy przede wszystkim zaprojektować wstępną strukturę sieci, dopasowaną do danego zadania. Oznacza to wybór liczby warstw sieci i neuronów w każdej warstwie oraz powiązań między warstwami. Dobór liczby wejść sieci jest uwarunkowany wymiarem wektora wejściowego  \mathbf{x} . Podobnie jest w warstwie wyjściowej, w której liczba neuronów równa się wymiarowi wektora zadanego  \mathbf{d} . Istotnym problemem pozostaje jedynie dobór warstw ukrytych i liczby neuronów w każdej warstwie, który pozwoli na dopasowanie odpowiedzi sieci do wartości zadanych na etapie uczenia oraz zapewni dobre zdolności generalizacyjne sieci.

Wskazówki teoretyczne rozwiązania problemu dopasowania do danych uczących (w sensie warunku wystarczającego) zostały podane przez matematyków zajmujących się aproksymacją funkcji wielu zmiennych. Warto tu zauważyć, że sieć neuronowa pełni rolę uniwersalnego aproksymatora danych uczących [24]. W trakcie uczenia dobierane są współczynniki tej funkcji (wartości wag poszczególnych neuronów). Na etapie odtwarzania, przy ustalonych wartościach wag, następuje zwykłe obliczenie wartości funkcji aproksymującej przy danym wektorze wejściowym  \mathbf{x} .

Określenie minimalnej liczby warstw ukrytych sieci opiera się na własnościach funkcji aproksymujących. Kołmogorow udowodnił, że dla funkcji ciągłej transformującej  N -wymiarowy zbiór danych wejściowych  \mathbf{x}  w  M -wymiarowy wektor wielkości zadanych  \mathbf{d}  na wyjściu wystarczy zwykle użycie sieci o jednej warstwie ukrytej. Przy  N  neuronach wejściowych warstwa ukryta powinna wówczas zawierać  2N+1 neuronów sigmoidalnych [24]. Brakuje procedury pozwalającej efektywnie zaimplementować taką sieć do aktualnego zadania.

W przypadku ogólnym funkcji odwzorowania jedna warstwa ukryta może nie wystarczać i wtedy konieczne jest użycie drugiej warstwy neuronów sigmoidalnych. Oznacza to, że niezależnie od rodzaju aproksymowanej funkcji wielowejściowej maksymalna liczba warstw ukrytych wystarczających do aproksymacji zadanego odwzorowania nie przekracza dwu. Wynik uzyskany dzięki zastosowaniu teorii Kołmogorowa jest rezultatem czysto teoretycznym, określającym maksymalną liczbę warstw i neuronów w warstwach, wystarczających do aproksymacji zadanego odwzorowania. Twierdzenie nie precyzuje ani rodzaju funkcji nieliniowych, ani sposobu i metody uczenia sieci w celu zrealizowania takiego odwzorowania. Stanowi jednak ważny element w dochodzeniu do optymalnej architektury sieci neuronowej.

W praktycznych rozwiązaniach sieci MLP zarówno liczba warstw, jak i neuronów w warstwie ukrytej może być różna od zaproponowanej w teorii Kołmogorowa i zależeć zarówno od liczby wejść jak i wyjść sieci. W przypadku sieci o jednej warstwie dobrą praktyką jest przyjęcie wstępnej liczby neuronów ukrytych proporcjonalnej do średniej geometrycznej liczby wejść i wyjść sieci, to znaczy  n_h \approx \sqrt{N M} . Liczba ta może podlegać odpowiednim zmianom w procesie kształtowania optymalnej struktury sieci.