Podręcznik

2. Sieć perceptronu wielowarstwowego MLP

2.3. Proces uczenia sieci metodami gradientowymi optymalizacji

Podstawę uczenia sieci MLP stanowi minimalizacja wartości funkcji celu (błędu), definiowanej klasycznie jako suma kwadratów różnic między aktualnymi wartościami sygnałów wyjściowych sieci a wartościami zadanymi. W przypadku pojedynczej próbki uczącej  (\mathbf{x},d) i zastosowaniu normy euklidesowej funkcję celu definiuje się w postaci


 E=\frac{1}{2} \sum_{i=1}^M\left(y_i(\mathbf{x})-d_i\right)^2 (2.3)

W przypadku wielu par uczących ( (\textbf{x}_k, \textbf{d}(\textbf{x}_k)) dla  k=(1, 2, \ldots, p) funkcję celu stanowi suma błędów po wszystkich parach uczących


 E=\frac{1}{2} \sum_{k=1}^p\left\|y\left(\mathbf{x}_k\right)-\mathbf{d}\left(\mathbf{x}_k\right)\right\|^2=\frac{1}{2} \sum_{k=1}^p \sum_{i=1}^M\left(y_i\left(\mathbf{x}_k\right)-d_i\left(\mathbf{x}_k\right)\right)^2 (2.4)

W uproszczeniu można założyć, że celem uczenia sieci jest określenie wartości wag neuronów wszystkich warstw sieci w taki sposób, aby przy zadanym wektorze wejściowym  \mathbf{x} uzyskać na wyjściu sieci wartości sygnałów wyjściowych y_i(\mathbf{x}) , odpowiadające z dostateczną dokładnością wartościom zadanym  d_i(\textbf{x}) dla  i=1, 2, \ldots, M . Obliczanie wartości funkcji celu i związane z nim uaktualnianie wartości wag w procesie uczenia może odbywać się po każdorazowej prezentacji każdej próbki uczącej (uczenie typu on-line) lub jednorazowo, po prezentacji wszystkich próbek tworzących cykl uczący (uczenie wsadowe typu off-line). Niezależnie od sposobu uczenia wartość błędu tworzącą funkcję celu należy obliczać po każdorazowej prezentacji pary uczącej. Uczenie sieci przy zastosowaniu algorytmu propagacji wstecznej składa się z kilku faz.

W fazie pierwszej następuje pobudzenie sieci poprzez sygnały wejściowe tworzące wektor  \textbf{x} i obliczenie wartości sygnałów poszczególnych neuronów w sieci. Dla danego wektora  \textbf{x} obliczane są wartości sygnałów  v_i neuronów warstwy ukrytej, a następnie wartości  y_i odpowiadające neuronom warstwy wyjściowej. Wykorzystuje się przy tym zależności (2.1) i (2.2). Po obliczeniu wartości sygnałów wyjściowych  y_i możliwe staje się określenie aktualnej wartości funkcji celu  E danej wzorem (2.3) lub (2.4).

W drugiej fazie algorytmu następuje minimalizacja wartości tej funkcji. Przy założeniu ciągłości funkcji celu najskuteczniejszymi metodami uczenia są gradientowe algorytmy optymalizacyjne, w których adaptacja wektora wag (uczenie) odbywa się zgodnie ze wzorem


 \textbf{w}(k+1)=\textbf{w}(k)+\eta\textbf{p}(k) (2.5)

w którym  \eta jest współczynnikiem uczenia, a  \textbf{p}(k) wektorem kierunkowym minimalizacji w przestrzeni wielowymiarowej utworzonej przez wektor wszystkich wag sieci  \textbf{w} . Adaptacja wag odbywa się iteracyjnie z kroku na krok zmieniając wartości elementów wektora  \textbf{w} wzdłuż kierunku  \textbf{p}(k) . Kierunek ten jest bezpośrednio związany z wektorem gradientu  \textbf{g}=\frac{\partial E}{\partial \textbf{w}} , który powinien być wyznaczany w każdej iteracji. Jedynie w przypadku wag warstwy wyjściowej zadanie to jest określone w prosty sposób poprzez różniczkowanie funkcji prostej określonej wzorem (2.2). Warstwy pozostałe wymagają zastosowania specjalnej strategii postępowania, która w dziedzinie sieci neuronowych nosi nazwę algorytmu propagacji wstecznej (ang. backpropagation) utożsamianym często z procedurą uczenia sieci neuronowej [46].

W ogólności algorytm gradientowy uczenia sieci MLP wymaga wykonania następujących etapów obliczeniowych.

  1. Analiza sieci neuronowej o zwykłym kierunku przepływu sygnałów przy pobudzeniu sieci poprzez sygnały wejściowe równe elementom aktualnego wektora  \textbf{x} . W wyniku analizy otrzymuje się wartości sygnałów wyjściowych neuronów warstw ukrytych oraz warstwy wyjściowej, a także odpowiednie pochodne funkcji aktywacji w poszczególnych warstwach.

  2. Utworzenie sieci propagacji wstecznej przez odwrócenie kierunków przepływu sygnałów, zastąpienie funkcji aktywacji przez ich pochodne o wartości obliczonej w punkcie pracy elementu oryginalnego sieci, a także przyłożenie na byłym wyjściu sieci (obecnie wejściu) wymuszenia w postaci odpowiedniej różnicy między wartością aktualną i zadaną. Dla tak utworzonej sieci propagacji wstecznej należy obliczyć wartości odpowiednich sygnałów w poszczególnych punktach tej sieci.

  3. Na podstawie wyników analizy sieci oryginalnej i sieci o propagacji wstecznej określa się wektor gradientu  \textbf{g} a następnie na jego podstawie kierunek minimalizacji  \textbf{p}(k) oraz współczynnik uczenia  \eta .

  4. Adaptacja wag (uczenie sieci) w  k -tym cyklu uczącym odbywa się według wzoru (2.5) na podstawie wyników uzyskanych w punkcie 3.

  5. Opisany w punktach 1, 2, 3, 4 proces należy powtórzyć wielokrotnie dla wszystkich wzorców uczących, kontynuując go do chwili spełnienia warunku zatrzymania algorytmu. Działanie algorytmu kończy się w momencie, w którym norma gradientu spadnie poniżej pewnej z góry określonej wartości tolerancji, określającej dokładność procesu uczenia.

Podstawowym elementem w tym algorytmie uczenia jest wyznaczenie wektora gradientu funkcji celu, stanowiącego podstawę wyznaczania kierunku minimalizacji. W sieciach MLP wektor ten jest określany przy zastosowaniu algorytmu propagacji wstecznej. Algorytm ten zilustrujemy przy użyciu grafów przepływowych.