Sztuczne sieci neuronowe są zagadnieniem z dziedziny Sztucznej Inteligencji [Stęgowski, 2004]. Sztuczna sieć neuronowa (SN) według Wiktora Tracza [3] jest systemem wzajemnie połączonych prostych elementów przetwarzających informacje zwanych neuronami. Są one idealnym narzędziem do rozwiązywania problemów, których nie da się rozwiązać tradycyjnymi metodami. Istotą użycia SSN jest zrealizowanie zadanej funkcji,
a zatem znalezienie szukanej odpowiedzi uzależnionej od zmiennych wejściowych. Jak przedstawia Stęgowski [1] idea sztucznych sieci neuronowych jest oparta zasadzie działania biologicznych neuronów znajdujących się w ludzkim mózgu.
Warto zwrócić uwagę na zalety sztucznych sieci neuronowych zawarte w materiałach wykładowych Krzysztofa Cyrana [2]. Istotną cechą SSN jest umiejętność funkcjonowania
w warunkach niepełnej informacji. Najważniejszą w przedstawionych korzyści jest zdolność uczenia się, a co za tym idzie SSN nie wymagają one znajomości algorytmu rozwiązania. Jest to możliwe dzięki umiejętności uogólniania zaobserwowanych tendencji a przypadki nieznane, a także dzięki pamięci skojarzeniowej. Ponadto, warto zauważyć, że SSN mogą przetwarzać duże ilości danych, nawet nieuporządkowanych [3], co zwiększa efektywność prowadzonych obliczeń oraz charakteryzują się znaczną odpornością na błędy i uszkodzenia.
Struktura SSN dla modelu nieliniowego została przedstawiona na rysunku (rys. 1.) poniżej. Na schemacie przedstawiono schemat sieci neuronowej wykorzystanej w ćwiczeniu. Wykorzystana struktura sieci neuronowej składa się z trzech warstw: wejściowej, ukrytej oraz wyjściowej. Dane wejściowe, czyli zmienne niezależne są symbolizowane przez neurony wejściowe xi, które wędrują do warstwy neuronów ukrytych NUi. Dzięki zastosowaniu warstw ukrytych możliwe jest uwzględnienie interakcji między zmiennymi wejściowymi, a zatem otrzymane wyniki przypuszczalnie będą lepiej odpowiadać rzeczywistym. W rozważanej sieci neuronowej wykorzystano funkcję przejścia wrażonej wzorem $\text{sig}\left( \text{NU} \right) = \frac{1}{1 + e^{- NU}}$.
Rysunek 1.: Schemat sieci neuronowej wykorzystanej w ćwiczeniu.
Tabela 1.: Opis symboli wykorzystanych w schemacie sieci neuronowej.
Oznaczenie | Opis |
---|---|
xi - zmienne wejściowe, na potrzeby realizacji ćwiczenia wykorzystano dane znormalizowane, a zatem mieszczące się w zakresie <0,1> | |
NUi - neuron ukryty, który uwzględnia wzajemne interakcje parametrów wejściowych, liczba neuronów ukrytych nie powinna przewyższać liczby neuronów, gdyż może wystąpić przeuczenie | |
Neuron warstwy wyjściowej przed ostatecznymi przekształceniami (Y’) | |
Neuron wyjściowy Y – symbolizuje zmienną zależną (wyjściową), są to dane końcowe, które otrzymuje użytkownik | |
Funkcja przejścia, w przypadku rozważanym w ćwiczeniu przyjmuje postać: $\text{sig}\left( \text{NU} \right) = \frac{1}{1 + e^{- NU}}$ | |
Połączenia opisane współczynnikami symbolizują synapsy |
1. Przekształcenie neuronów wejściowych w neurony ukryte z wykorzystaniem regresji liniowej. Dla neuronu ukrytego NU1 użyto współczynników a, b i c, dla NU2 – współczynników d, e i f, dla NU3 – współczynników g, h oraz i. Korzystano z zależności:
NU1 = a • x1 + b • x2 + c, wyliczając analogicznie wartosci przyjmowane przez pozostałe neurony ukryte.
2. Obliczenie wartości Exp(-NU) dla wszystkich neuronów ukrytych. Jest to krok pomocniczy do przeliczenia funkcji przejścia.
3. Przeliczenie funkcji przejścia dla wszystkich neuronów ukrytych. Funkcja przejścia została określona wzorem $\text{sig}\left( x \right) = \frac{1}{1 + e^{- NU}}$.
Y′ = j • NU1 + k • NU2 + l • NU3 + m
5. Przekształcenie w funkcji przyjścia w postaci $\text{sig}\left( x \right) = \frac{1}{1 + e^{- Y'}}$ , w celu uzyskania neuronu wyjściowego.
Tabela 2.: Kolejne przekształcenia zachodzące w sieci neuronowej.
Tabela 3.: Współczynniki wykorzystane w etapie 1 oraz 4.
W celu weryfikacji poprawności przeprowadzonych obliczeń wyznaczono błąd dla każdej zmiennej wyjściowej Y, jako wartość bezwzględną z różnicy wartości zmiennej Y rzeczywistej oraz uzyskanej w rezultacie zastosowania sieci neuronowej. Ponadto, obliczono średni błąd bezwzględny, jako średnią arytmetyczną wyżej wspomnianych błędów jednostkowych oraz średni błąd względny, wyrażony zależnością:
$$S\text{redni}\ blad\ \text{wzgl}e\text{dny} = \ \frac{S\text{redni}\ blad\ \text{bezwzgl}e\text{dny}}{\operatorname{}{\left( \frac{\text{zmienna}\ \text{wyj}s\text{ciowa}}{\text{rzeczywista}} \right) - \operatorname{}\left( \frac{\text{zmienna}\ \text{wyj}s\text{ciowa}}{\text{rzeczywista}} \right)}}$$
W tabeli nr 4. przedstawiono schemat obliczeń przeprowadzonych z programie MS Excel. W tabeli nr 5. przedstawiono proces poszukiwania optymalnego rozwiązania,
a wartości współczynników, przy zastosowaniu których średni błąd względny przyjmuje wartość minimalną. W tym celu wykorzystano narzędzie programu MS Excel – Solver. Jako funkcję celu wyznaczono wartość średniego błędu względnego, natomiast komórkami zmiennymi ustanowiono wartości wyżej wspomnianych współczynników. Nie narzucono dodatkowych warunków ograniczających. W tabeli przedstawiono wyniki dla 5, najlepszych iteracji, w których uzyskano błąd minimalny o wartości 10%. Na etapie poszukiwania rozwiązania odrzucano wartości, które przekraczały wartość najlepszego z uzyskanych dotąd wyników.
Tabela 4.: Obliczenie błędów, generowanych przez sieć neuronową.
Tabela 5.: Zestawienie tabelaryczne wyników 5 najlepszych iteracji.
Lp. | Metoda | Współczynniki | Błąd średni bezwzględny | Błąd średni względny [%] |
---|---|---|---|---|
1 | Solver | a | 0,935706 | 0,09934 |
b | 0,970052 | |||
c | 0,871161 | |||
d | 0,935706 | |||
e | 0,970052 | |||
f | 0,871161 | |||
g | 0,935706 | |||
h | 0,970052 | |||
i | 0,871161 | |||
j | 0,13177 | |||
k | 0,13177 | |||
l | 0,13177 | |||
m | -0,69447 | |||
2 | Solver | a | -0,98413 | 0,0954 |
b | 0,740605 | |||
c | 0,21835 | |||
d | -0,98413 | |||
e | 0,740605 | |||
f | 0,21835 | |||
g | -0,98413 | |||
h | 0,740605 | |||
i | 0,21835 | |||
j | -1,69764 | |||
k | -1,69764 | |||
l | -1,69764 | |||
m | 2,367927 | |||
3 | Solver | a | -5,66843 | 0,099419 |
b | -4,70313 | |||
c | -15,5988 | |||
d | -5,66843 | |||
e | -4,70313 | |||
f | -15,5988 | |||
g | -5,66843 | |||
h | -4,70313 | |||
i | -15,5988 | |||
j | -2,86909 | |||
k | -2,86909 | |||
l | -2,86909 | |||
m | -0,36399 | |||
4 | Solver | a | 1,961475 | 0,099368 |
b | 2,137507 | |||
c | 1,82031 | |||
d | 1,961475 | |||
e | 2,137507 | |||
f | 1,82031 | |||
g | 1,961475 | |||
h | 2,137507 | |||
i | 1,82031 | |||
j | -0,30901 | |||
k | -0,30901 | |||
l | -0,30901 | |||
m | 0,526576 | |||
5 | Solver | a | 1,473491 | 0,095373 |
b | -1,11863 | |||
c | 0,298047 | |||
d | 1,473491 | |||
e | -1,11863 | |||
f | 0,298047 | |||
g | 1,473491 | |||
h | -1,11863 | |||
i | 0,298047 | |||
j | 1,170305 | |||
k | 1,170305 | |||
l | 1,170305 | |||
m | -2,46467 |
8.4. Wnioski
Analizując otrzymane wyniki łatwo zauważyć, że dla różnych rozwiązań otrzymano tą samą wartość błędu. Jednakże, biorąc pod uwagę wartości średnich błędów bezwzględnych można stwierdzić, że mimo rozwiązaniem optymalnym będą wartości współczynników uzyskane w piątej iteracji.
Porównując wyniki otrzymane trzema metodami: modelowaniem paramentrycznym liniowym oraz nieliniowym, a także z wykorzystaniem modelu opartego na sieciach neuronowych można wysnuć wniosek, że najlepsze rezultaty daje zastosowanie sieci neuronowych. Świadczy o tym uzyskanie najniższej wartości średniego błędu względnego właśnie dla tej metody. Na podstawie przeprowadzonej analizy potwierdzono, że SSN spełniają oczekiwiania uzytkownika w przypadku dużej ilości danych, nawet w sytuacji ich nieuporządkowania.
8.5. Bibliografia
STĘGOWSKI Z., Sztuczne Sieci Neuronowe, Kernel 2004, nr 1, s. 16 – 19, http://www.ftj.agh.edu.pl/~stegowski/rozne/neurony/art_kern_1.pdf,
dostęp: 10.06.2015r
CYRAN K. A., Sztuczne Sieci Neuronowe – materiały wykładowe Politechniki Śląskiej, http://platforma.polsl.pl/rau2/pluginfile.php/4065/mod_resource/content/0/SNN/w1_st_dokt.pdf, dostęp: 10.06.2015r.
TRACZ W., Sztuczne Sieci Neuronowe – materiały wykładowe SGGW, http://stary.wl.sggw.pl/units/geomatyka/SI/SN.pdf, dostęp: 10.06.2015r.