Szkolenie sieci neuronowej jest procesem, w którym parametry sieci neuronowej są konfigurowane poprzez symulację środowiska, w którym ta sieć jest osadzona. Rodzaj treningu zależy od sposobu dostosowania parametrów. Istnieją algorytmy uczenia się z nauczycielem i bez niego.
Proces uczenia się z nauczycielem to prezentacja sieci przykładów przykładów uczenia się. Każda próbka jest podawana do wejść sieciowych, a następnie przetwarzana w strukturze NA, sygnał wyjściowy sieci jest obliczany, co jest porównywane z odpowiednią wartością wektora docelowego, która jest wymaganym wyjściem sieciowym.
Aby sieć neuronowa mogła wykonać zadanie, musi zostać przeszkolona (patrz rys. 1). Istnieją algorytmy uczenia się z nauczycielem i bez niego.
Proces uczenia się z nauczycielem to prezentacja sieci przykładów przykładów uczenia się. Każda próbka jest podawana do wejść sieciowych, a następnie przetwarzana w strukturze NA, sygnał wyjściowy sieci jest obliczany, co jest porównywane z odpowiednią wartością wektora docelowego, która jest wymaganym wyjściem sieciowym. Następnie, zgodnie z pewną regułą, obliczany jest błąd, a wagi linków w sieci zmieniają się w zależności od wybranego algorytmu. Wektory treningowe są prezentowane sekwencyjnie, błędy są obliczane i wagi są dostosowywane dla każdego wektora, aż błąd w całej tablicy treningowej osiągnie akceptowalnie niski poziom.
Rys. 1. Ilustracja procesu uczenia się NA
Podczas nauczania bez nauczyciela zestaw treningowy składa się tylko z wektorów wejściowych. Algorytm uczenia się dostosowuje wagi sieci, dzięki czemu uzyskiwane są spójne wektory wyjściowe, tj. tak, że prezentacja wystarczająco bliskich wektorów wejściowych daje te same wyniki. Proces uczenia się uwypukla zatem właściwości statystyczne zestawu treningowego i grupuje podobne wektory do klas. Prezentacja wektora z danej klasy na wejściu da pewien wektor wyjściowy, ale przed uczeniem się niemożliwe jest przewidzenie, jakie wyjście zostanie wykonane przez tę klasę wektorów wejściowych. W związku z tym wyniki takiej sieci powinny zostać przekształcone w jakąś zrozumiałą formę ze względu na proces uczenia się. To nie jest poważny problem. Zwykle nie jest trudno zidentyfikować połączenie między wejściem a wyjściem ustalonym przez sieć.
Na trening sieci neuronowe bez nauczyciela stosowana jest metoda sygnalizacji Hebb i Oya.
Matematycznie proces uczenia się można opisać następująco. W trakcie działania sieć neuronowa generuje sygnał wyjściowy Y, realizując pewną funkcję Y = G (X). Jeśli określono architekturę sieci, typ funkcji G jest określany przez wartości wag synaptycznych i sieci offsetowej.
Niech rozwiązaniem jakiegoś problemu jest funkcja Y = F (X), podana przez parametry danych wejściowo-wyjściowych (X1, Y1), (X2, Y2), ..., (XN, YN), dla których Yk = F (Xk) (k = 1, 2, ..., N).
Trening polega na poszukiwaniu (syntezie) funkcji G, która jest bliska F w sensie niefunkcjonalności funkcji błędu E. (patrz Rys. 1.8).
Jeśli wybrano zestaw przykładów nauczania - pary (XN, YN) (gdzie k = 1, 2, ..., N) i metoda obliczania funkcji błędu E, to trening sieci neuronowej zamienia się w wielowymiarowy problem optymalizacji o bardzo dużym wymiarze, podczas gdy funkcja E może mieć dowolną formę uczenia się w ogólnym przypadku - wieloaspektowy problem optymalizacji niewykonawczej.
Aby rozwiązać ten problem, można użyć następujących (iteracyjnych) algorytmów:
lokalne algorytmy optymalizacji z obliczaniem pochodnych cząstkowych pierwszego rzędu:
algorytm gradientu (metoda najbardziej stromego spadku),
metody z jednowymiarową i dwuwymiarową optymalizacją funkcji celu w kierunku antyradientu,
metoda gradientu sprzężonego
metody uwzględniające kierunek anty-gradientu w kilku krokach algorytmu;
lokalne algorytmy optymalizacyjne z obliczaniem pochodnych cząstkowych pierwszego i drugiego rzędu:
Metoda Newtona
metody optymalizacji z rzadkimi macierzami Hesse,
metody quasi-newtonowskie
Metoda Gaussa-Newtona
Metoda Levenberga-Marquardta i inne;
stochastyczne algorytmy optymalizacji:
szukaj w losowym kierunku,
imitacja wyżarzania
Metoda Monte Carlo (metoda statystycznej próby numerycznej);
globalne algorytmy optymalizacji (globalne problemy optymalizacyjne są rozwiązywane przez sortowanie wartości zmiennych, od których zależy funkcja celu).