uczenie

 

 

Jedną z zalet sieci neuronowych jest to, że nie trzeba ich programować. Poddaje się je natomiast procesowi uczenia, który polega na odpowiednim doborze współczynników wag, optymalnych dla rozwiązania konkretnego problemu. W tym kontekście najważniejsze jest znalezienie najlepszej metody i algorytmu dla skutecznego przeprowadzenia tego procesu.  

                                   

Metody uczenia sieci neuronowych

Uczenie sieci jest odpowiednikiem programowania komputera sekwencyjnego, i tak jak istnieją różne metody programowania tak też wyróżnia się odmienne metody uczenia. Najważniejszą cechą każdej strategii uczenia jest to, czy sieć uczymy w oparciu o naszą wiedzę, czy każemy jej poszukiwać bliżej nam nie znanych rozwiązań. Dlatego metody uczenia dzielimy na uczenie z nadzorem i uczenie bez nadzoru.

Uczenie z nadzorem

Metoda Backpropagation to jedna z metod uczenia z nauczycielem. W tej metodzie uczeniu z nauczycielem dostępny jest zbiór par uczących składający się z wektora wejściowego i wektora odpowiedzi żądanej (docelowej). Zakładamy wtedy, że z góry wiemy jak sieć ma się zachowywać i znamy odpowiedzi poprawne na pewne wektory z przestrzeni wejściowej. Na tej podstawie możemy obliczyć konkretną wartość błędu i w oparciu o nią modyfikować współczynniki wagowe jednostek sieci. Tylko dla takich danych potrafimy powiedzieć coś o funkcji błędu, która jest funkcją od współczynników sieci. W tym modelu stosuje się też rozmaite modyfikacje i ulepszenia. Sieci uczone z nauczycielem zazwyczaj są uczone off-line, tzn. po nauczeniu, czyli spełnieniu odp. kryteriów poprawności współczynniki takiej sieci są "zamrażane" i sieć dalej działa już w oparciu o wcześniej wyuczone przykłady.

 

 Taki system nie jest odporny na zmieniające się warunki w jakich przyjdzie mu działać, znacznie lepiej, gdyby mógł być cały czas douczany. Jednakże nie możliwe jest podanie poprawnej odpowiedzi dla wszystkich spośród wektorów przestrzeni wejściowej, gdyż wtedy w ogóle nie opłacało by się budować sieci. Dlatego wymyślono inną metodę uczenia z nadzorem, która może być stosowana on-line.

Uczenie ze wsparciem (uczenie ze wzmocnieniem) nie zakłada istnienia nauczyciela, a jedynie krytyka, który nie podaje konkretnej odpowiedzi, ale ocenia jej poprawność. Źródła tej metody sięgają badań nad psychiką zwierząt i opierają się na prawie Thorndike'a : jeżeli przedsięwzięta akcja powoduje stan zadowolenia, to tendencja do jej powtórzenia w podobnych okolicznościach wzmacnia się, a w p.p. ulega osłabieniu. Wyróżniamy dwa paradygmaty uczenia ze wzmocnieniem

 

Uczenie bez nadzoru

Przy uczeniu bez nadzoru nie ma dostępnej żadnej informacji (ani od nauczyciela, ani od krytyka) opisującej poprawność udzielanej przez sieć odpowiedzi. W dalszym ciągu sieć ma wejścia i wyjścia, ale nie istnieje sprzężenie zwrotne od środowiska. Jednostki i połączenia muszą zatem okazywać pewien poziom samoorganizacji. Uczenie bez nadzoru jest możliwe tylko wtedy, gdy istnieje redundancja danych wejściowych, inaczej dane były by nie do odróżnienia od przypadkowego szumu.

Uczenie bez nadzoru stosuje się też do już nauczonych sieci np. z nauczycielem w celu zwiększenia ich możliwości adaptacyjnych, lub w rozwiązaniach hybrydowych (jedna warstwa tak, druga inaczej).

Uczenie konkurencyjne nazywane jest często "zwycięzca bierze wszystko", dlatego że tylko jedna jednostka spośród całej warstwy może być w stanie pobudzenia. Neurony konkurują ze sobą o to, który z nich będzie w stanie pobudzenia. Do reprezentacji takiej sieci, oprócz zwykłych połączeń synaptycznych, zwanych tutaj pobudzającymi, używa się połączeń hamujących które zapewniają spełnienie warunku winner-takes-all. Do "zapłonu" dopuszczony jest ten neuron, który ma np. największą wartość pobudzenia wewnętrznego. Dla uproszenia zakłada się często, że jednostki są progowe (podobnie jak w perceptronie) o wyjściach 0 - nieaktywnym i 1 - aktywnym / pobudzonym. Obliczenia zaczyna się od małych współczynników wagowych, bez żadnej symetrii (ważne!) wśród nich. Takie sieci świetnie nadają się do realizacji klasyfikacji wzorców według podobieństwa na klasy pobudzające konkretną jednostkę. Takie sieci (szczególnie w rozwiązaniach hybrydowych) stosuje się do rozpoznawania liter.