Politechnika Rzeszowska
Wydział Elektrotechniki i Informatyki
Katedra Informatyki i Automatyki
SZTUCZNA INTELIGENCJA
PROJEKT
Temat: Zrealizować sieć neuronową (trainbpx) uczącą się odwzorowania z= sin((x2+y2)*π/2) dla x i y zmieniających się od -1 do 1
Wykonała: Czaja Agnieszka
II EF-DI, P02
Rzeszów 2010
Spis treści:
Wstęp oraz przedstawienie problemu ………………………………………………… 3
Wiedza teoretyczna:
Sieć jednokierunkowa wielowarstwowa …………………………………….. 4
Funkcja aktywacji …………………………………………………………… 5
Wstęp:
Dokumentacja ta została sporządzona w celu rozwiązania problemu dotyczącego sieci neuronowej uczonej algorytmem wstecznej propagacji błędu, metodą adapcyjnego współczynnika uczenia oraz metodą momentum dla odwzorowania z= sin((x2+y2)*π/2) (dla x i y zmieniających się od -1 do 1). Zaznaczam, iż w celu rozwiązania w/w problemu został użyty program Matlab 5.3.
Przedstawienie problemu:
Funkcja ta przeprowadza trening nieliniowej sieci jednokierunkowej wielowarstwowej z zastosowaniem w/w technik, tzn. adaptacyjnej zmiany współczynnika prędkości uczenia oraz członu momentum. W końcowym efekcie rozwiązania problemu, uczenie sieci trwa znacznie krócej, a prawdopodobieństwo utknięcia w lokalnym minimum funkcji błędu sieci zostaje zmniejszone. Przedstawiony problem, sposób rozwiązania oraz najkorzystniejsze metody rozwiązania tego problemu postaram się udowodnić w dalszej części dokumentacji.
Wiedza teoretyczna:
Sieci jednokierunkowe wielowarstwowe:
Jak już wspomniałam dany problem dotyczy sieci jednokierunkowej wielowarstwowej określającej maksymalną ilość warstw jako 3. Cechą charakterystyczną sieci jednokierunkowych wielowarstwowych jest występowanie, co najmniej jednej warstwy ukrytej neuronów, która pośredniczy w przekazywaniu sygnałów między węzłami wejściowymi, a warstwą wyjściową (rys.).Sygnały wejściowe są podawane na pierwszą warstwę ukrytą neuronów, a te z kolei stanowią sygnały źródłowe dla kolejnej warstwy. W sieci tej występują połączenia pełne między warstwami. Neurony warstw ukrytych stanowią bardzo istotny element sieci, umożliwiający uwzględnienie związków między sygnałami, wynikającymi z zależności statystycznych wyższego rzędu. Uczenie perceptronu wielowarstwowego odbywa się zwykle z nauczycielem. (ODNOŚNIE WZORÓW SIECI Z INSTRUKCJI)
Rys. Sieć jednokierunkowa dwuwarstwowa
Sieci jednokierunkowe wielowarstwowe często wykorzystują nieliniową funkcję aktywacji typu sigmoidalnego.
Funkcje aktywacji:
Według niej obliczana jest wartość wyjścia neuronów sieci neuronowej.
Funkcje aktywacji, które zostały użyte w skrypcie:
- tansig - tan-sigmoidalna funkcja - purelin - funkcja liniowa
FUNKCJE ZAWARTE W SKRYPCIE:
Initff - jest funkcją służącą do inicjalizacji współczynników wagowych sieci jednokierunkowej do 3 warstw
Dla liniowej funkcji aktywacji użytej między innymi w skrypcie wstępne wartości współczynników wagowych losowane są z przedziału [-1,1]
Simuff - funkcja odpowiedzialna za symulację działania sieci jednokierunkowej do 3 warstw
……………………………………….jedno zdanie
Algorytm wstecznej propagacji błędu (BackPropagation)
To jedna z najpopularniejszych metod uczenia sieci neuronowych wielowarstwowych. Określa strategię doboru wag w sieci wielowarstwowej przy wykorzystaniu gradientowych metod optymalizacji. Podczas procesu uczenia sieci dokonuje się prezentacji pewnej ilości zestawów uczących (tzn. wektorów wejściowych oraz odpowiadających im wektorów sygnałów wzorcowych -wyjściowych). Uczenie polega na takim doborze wag neuronów by w efekcie końcowym błąd popełniany przez sieć był mniejszy od zadanego. Nazwa "wsteczna propagacja" pochodzi od sposobu obliczania błędów w poszczególnych warstwach sieci. Najpierw obliczane są błędy w warstwie ostatniej (na podstawie sygnałów wyjściowych i wzorcowych. Błąd dla neuronów w dowolnej warstwie wcześniejszej obliczany jest jako pewna funkcja błędów neuronów warstwy poprzedzającej. Sygnał błędu rozprzestrzenia się od warstwy ostatniej, aż do warstwy wejściowej, a więc wstecz.
Algorytm wstecznej propagacji błędów można zapisać następująco:
Rys. Wsteczna propagacja błędów dla przykładowej sieci dwuwarstwowej
Skrypt do nauki sieci:
Przeprowadzanie eksperymentów:
Tabela z wynikami:
3