sn1


Sztuczne Sieci Neuronowe- Informacje podstawowe
Sieci neuronowe
1. Inspiracje biologiczne
Sieci neuronowe można traktować jako nowoczesne systemy obliczeniowe, które przetwarzają
informacje wzorując się na zjawiskach zachodzących w mózgu człowieka. Sieci neuronowe
wykorzystują cechy biologicznych systemów nerwowych, które mogą być użyteczne technicznie.
Główną rolę w tym zagadnieniu odgrywa pojedyncza komórka nerwowa  neuron  zbudowana z
synapsy, aksonu i dendrytów.
Każdy z neuronów jest specjalizowaną komórką biologiczną, mogącą przenosić i przetwarzać
złożone sygnały elektrochemiczne. Neuron posiada wejścia informacyjne  dendryty, ciało scalające
sygnały ze wszystkich tych wejść oraz akson  nośnik informacji wyjściowej. Akson jednej komórki
łączy się z dendrytami poprzez biochemiczne złącza - synapsy, modyfikujące sygnały i stanowiące
nośnik pamięci. Synapsy są bardzo skomplikowane; w sztucznych sieciach neuronowych sprowadzane
są one do operatorów przemnażania wejściowych sygnałów przez współczynniki ustalane w toku
uczenia. Gdy wskutek połączonego oddziaływania nadchodzących impulsów, które dotarły do neuronu
przez dendryty, osiągnięty zostanie odpowiedni poziom pobudzenia (próg), ciało komórkowe wyzwala
swój ładunek elektryczny (ulega depolaryzacji) i przesyła go wzdłuż aksonu do innych komórek
nerwowych i dendrytów. Przekazywanie impulsów nerwowych przez synapsę odbywa się za
pośrednictwem chemicznych przekazników  biogenicznych aminów utworzonych z aminokwasów.
Synapsy przekazują sygnały do neuronu, których część ma wpływ wzmacniający, a część hamujący.
Neuron sumuje impulsy pobudzające i hamujące i jeżeli ich suma przekracza pewną wartość progową,
to akson neuronu przekazuje odpowiedni sygnał na wyjściu neuronu.
2. Model neuronu
Sieć neuronowa (a właściwie sztuczna sieć neuronowa) to uproszczony model niektórych
obszarów ludzkiego mózgu składający się z komórek nerwowych zwanych neuronami. Sztuczne
neurony nie są dokładnymi kopiami oryginalnych neuronów, są raczej ich bardzo uproszczonymi
odpowiednikami matematycznymi, mającymi podobne właściwości i działającymi w zbliżony sposób
jak ich pierwowzory. Neuron w SSN charakteryzuje się występowaniem wielu wejść i jednego
wyjścia. W modelu sztucznego neuronu, każdemu połączeniu, między neuronami przypisuje się
odpowiednią wagę (siłę powiązania między neuronami). Waga (odpowiednik efektywności synapsy w
neuronie biologicznym) to pewna stała, przez którą przemnożony jest każdy sygnał przechodzący
między dwoma konkretnymi neuronami, dzięki czemu, impulsy od jednych neuronów są ważniejsze
od innych. Mocne powiązanie ma większą wagę niż słabe. Waga może mieć charakter pobudzający
(dodatnia waga) lub hamujący (ujemna waga). Jeżeli nie ma połączenia między neuronami to waga
jest równa zero. W ten sposób  sztuczny mózg odrzuca nieistotne informacje wejściowe, nadając im
wagi bliskie zeru.
W praktyce każdy neuron pobiera sygnały od wszystkich połączonych ze sobą neuronów, każdy
przemnaża przez odpowiednią wagę, otrzymane wartości sumuje i to łączne pobudzenie neuronu jest z
kolei przekształcane przez ustaloną funkcję aktywacji neuronu (zwaną też funkcją przejścia neuronu) 
Rys. 1. Wartość obliczona przez funkcję aktywacji jest ostatecznie wartością wyjściową neuronu.
Funkcja aktywacji może być funkcją liniową, skokową, sigmoidalną, tangensoidalną etc.. Wybór
funkcji należy do projektanta sieci i zależy od problemu, który ma ona rozwiązywać.
1
Sztuczne Sieci Neuronowe- Informacje podstawowe
Rys. 1 Model sztucznego neuronu
Zapisując to formalnie: każde wejście i może przesyłać wartość rzeczywistą xi. Wejścia mają
przypisane wagi wi. Informacja wchodząca xi jest przemnażana przez odpowiadającą jej wagę wi.
Przekazana informacja jest integrowana w neuronie (zwykle przez zsumowanie wszystkich sygnałów)
i to tzw. łączne pobudzenie neuronu e jest przekazywane jako argument do funkcji aktywacji f i
następnie jest wyliczana wartość sygnału wyjściowego.
Model opisujący działanie neuronu może być zapisany w postaci:
n
y = f ( Å" xi)
"wi
i=1
gdzie
x1, ... ,xn  sygnały wejściowe danego neuronu
w1, ... ,wn  wagi synaptyczne
y  sygnał wyjściowy
Przykładowe funkcje aktywacji używane przy konstrukcji sieci:
" Progowa funkcja aktywacji stosowana w sieciach liniowych (w podstawowej postaci)
n
f (x) = 1 , gdy Å" xi e" v
"wi
i=1
n
f (x) = 0 , gdy Å" xi < v
"wi
i=1
gdzie v  wartość progowa
" Funkcja sigmoidalna
1
f (x) = ² > 0
1+ e-² Å"x
" Funkcja tangens hiperboliczny
Ä… Å" x 1- e-Ä… Å"x
f (x) = tg( ) = Ä… > 0
2 1+ e-Ä… Å"x
2
Sztuczne Sieci Neuronowe- Informacje podstawowe
3. Sieci wielowarstwowe.
Dotychczasowe rozważania dotyczyły pojedynczych neuronów. Pojemność informacyjna
pojedynczego neuronu nie jest duża. Powiększenie pojemności i zwiększenie zdolności przetwarzania
uzyskuje się poprzez odpowiednie połączenie wielu neuronów. W zastosowaniach praktycznych
spotykamy się z wieloma modelami połączeń pomiędzy jednostkami. Najczęściej wykorzystywanym
jest układ warstwowy tzn. taki że neurony podzielone są na kilka podzbiorów, nazywanych
warstwami. Połączenia mogą przebiegać jedynie od neuronów danej warstwy do warstwy kolejnej
nigdy w przeciwnym kierunku. Czasami dopuszcza się również połączenia pomiędzy neuronami
wewnątrz danej warstwy. Wyróżniamy sieci jednowarstwowe i wielowarstwowe.
Sieci jednowarstwowe składają się z neuronów ułożonych w jednej warstwie, zasilanej jedynie
z węzłów wejściowych. Węzły wejściowe nie tworzą warstwy neuronowej, ponieważ nie zachodzi w
nich proces obliczeniowy.
Sieć wielowarstwowa posiada warstwę wejściową, wyjściową oraz jedną lub więcej warstw
ukrytych. Zadaniem elementów w warstwie wejściowej jest wstępne przetwarzanie impulsu
wejściowego x=[x1, x2, x3, ..., xn]. Zasadnicze przetwarzanie neuronowe impulsu wejściowego odbywa
się w warstwach ukrytych oraz w warstwie wyjściowej. Warstwy te zbudowane są z elementów
przetwarzających, które stanowią modele sztucznych neuronów. W jednokierunkowych sieciach
wielowarstwowych typu perceptron połączenia pomiędzy poszczególnymi warstwami są
zaprojektowane tak, że każdy element warstwy poprzedniej jest połączony z każdym elementem
warstwy następnej. Połączeniom tym są przypisane odpowiednie współczynniki wag, które w
zależności od zadania, jakie dana sieć powinna rozwiązywać, są wyznaczane dla każdego przypadku z
osobna. Na wyjściu sieci generowany jest impuls wyjściowy y=[y1, ..., ym].
Model sieci wielowarstwowej:
Uczenie sieci wielowarstwowej. Reguła uczenia DELTA. Algorytm wstecznej propagacji błędu.
W sieciach wielowarstwowych najistotniejszym problemem jest dobór wag w warstwach
ukrytych. Istnieją algorytmy umożliwiające efektywne uczenie takich sieci. W tej pracy zostaną
omówione zastosowane w części praktycznej algorytmy uczenia sieci.
Istotnym zagadnieniem w uczeniu wielowarstwowych sieci neuronowych jest też ustalenie
początkowych wag. Nie jest korzystne ustalenie wszystkich wag na poziomie zerowym. Także zbyt
wysokie lub niskie wartości w konsekwencji prowadzą do bardzo wolnego uczenia się sieci. W
praktyce ustawia się losowo wszystkie wartości wag początkowych.
3
Sztuczne Sieci Neuronowe- Informacje podstawowe
Dla dużych sieci i ciągów uczących składających się z wielu tysięcy wektorów uczących ilość
obliczeń wykonywanych podczas całego cyklu uczenia jest gigantyczna, a więc i czasochłonna. Nie
zdarza się także aby sieć została dobrze zbudowana od razu. Zawsze jest ona efektem wielu prób i
błędów. Ponadto nigdy nie ma gwarancji, że nawet prawidłowa sieć nie utknie w minimum lokalnym
podczas gdy interesuje nas znalezienie minimum globalnego. Dlatego algorytmy realizujÄ…ce SSN
wyposaża się mechanizmy dające nauczycielowi możliwość regulacji szybkości i jakości uczenia. Są
to tzw. współczynniki: szybkości uczenia i momentum. Wpływają one na stromość funkcji aktywacji i
regulują szybkość wpływu zmiany wag na proces uczenia.
Przy pojedynczym współczynniku uczenia ·, do uczenia sieci wielowymiarowych stosujemy
regułę Delta, przy czym definiujemy sygnał błędu dla każdego neuronu z warstw ukrytych.
Doprowadza nas to do następującego wzoru na zmianę wagi między neuronem j w warstwie k a
neuronem i w warstwie k-1:
( k )
"wij ( k ) = ·´ f '(e )xi
j j
gdzie:
"wij(k ) - zmiana wartości wagi połączenia między neuronem j w warstwie k, a neuronem i w warstwie
k-1,
· - współczynnik szybkoÅ›ci uczenia,
(k )
´
- błąd neuronu j w warstwie k
j
f (ej)  pochodna funkcji aktywacji
xi  sygnał wejściowy pochodzący od neuronu j
Aby przyspieszyć proces uczenia, a jednocześnie uniknąć niebezpieczeństwa oscylacji w sieci
(czyli wpadania algorytmu w minima lokalne funkcji błędu) wprowadza się modyfikację do
( k )
·2m
algorytmu, zwaną Uogólnioną Regułą Delty, zawierającą czynnik bezwładności :
ji
( k ) ( k )
"wij ( k ) = ·1´ f '(e )xi + ·2m
j j ji
gdzie:
·1  współczynnik szybkoÅ›ci uczenia
·2  współczynnik momentum
( k )
m
- poprzednia zmiana wag
ji
Algorytm wstecznej propagacji błędu
W procesie uczenia sieci wielowarstwowej pojawia się problem polegający na tym, że dla
warstw ukrytych nie da się określić oczekiwanych wartości sygnałów wyjściowych, a tym samym nie
ma możliwości bezpośredniego określenia błędów. Nie można ustalić w jakim stopniu za pojawienie
się błędu wyrażonego różnicą oczekiwanych wartości sygnałów wyjściowych i rzeczywiście
otrzymanych odpowiedzi odpowiadają neurony warstwy wyjściowej, na których ten błąd się ujawnił, a
w jakim stopniu elementy warstw wcześniejszych. Aby zlikwidować ten problem stosuje się tzw.
algorytm wstecznej propagacji błędów (backpropagation). Algorytm propagacji wstecznej jest jednym
z najskuteczniejszych algorytmów uczenia sieci wielowarstwowej. Jego nazwa pochodzi od sposobu
obliczania błędu w poszczególnych warstwach sieci. Najpierw obliczane są błędy w warstwie ostatniej
na podstawie porównania aktualnych i wzorcowych sygnałów wyjściowych i na tej podstawie
4
Sztuczne Sieci Neuronowe- Informacje podstawowe
dokonywane są zmiany wag połączeń, następnie w warstwie ją poprzedzającej i tak dalej aż do
warstwy wejściowej. W algorytmie propagacji wstecznej można wyróżnić trzy fazy:
" podanie na wejście sygnału uczącego x i wyliczenie aktualnych wyjść y.
" porównujemy sygnał wyjściowy y z sygnałem wzorcowym d, a następnie wyliczamy lokalne błędy
dla wszystkich warstw sieci,
" adaptacja wag.
Opisany proces kontynuuje się aż do momentu kiedy sygnały wyjściowe sieci będą dostatecznie
bliskie oczekiwanym. Celem algorytmu propagacji wstecznej jest minimalizacja funkcji energetycznej.
4. Cechy sieci neuronowych
Do najważniejszych cech sieci neuronowych, dzięki którym mają one szerokie zastosowanie
praktyczne, należą:
" nieliniowość i nieparametryczność  trójwarstwowa sieć złożona z elementów nieliniowych jest
w stanie odwzorować dowolną funkcję wielu zmiennych, dodatkowo przy zastosowaniu SSN nie
jest konieczne określenie a priori postaci funkcji tworzącej model, jak również postaci rozkładów
losowych danych (nieparametryczność)  stąd zastosowanie SSN gdy wiedza na temat danego
zjawiska jest niewystarczająca (np. określanie trendu na giełdzie papierów wartościowych);
" zdolność do adaptacji  posiadają zdolność do reagowania na zmieniające się charakterystyki
zewnętrzne (możliwość wykorzystania w systemach czasu rzeczywistego);
" równoległość  przetwarzają informacje w sposób równoległy, przez to działają szybciej, ale i
pozwalają na jednoczesne analizowanie kilku wielkości z osobna jak również ich współzależności;
" uniwersalność  ta sama pod względem architektury sieć może być stosowana do wielu różnych
problemów;
" zdolność do samoorganizacji  sieć sama odkrywa związki pomiędzy danymi wejściowymi;
" generalizacja  zdolność do generowania nowych przypadków, na podstawie zdobytej wiedzy.
5. Podział sieci neuronowych
Są różne kryteria podziału sieci neuronowych.
Ze względu na rodzaj połączeń:
" sieci z jednokierunkowymi połączeniami (nazywane często feedforward),
" sieci ze sprzężeniami zwrotnymi  sieci rekurencyjne.
Ze względu na metodę uczenia:
" sieci uczone z nadzorem,
" sieci uczone ze wsparciem,
" sieci uczone bez nadzoru.
Ze względu na rodzaj funkcji aktywacji:
" sieci liniowe,
" sieci nieliniowe.
Rodzaj połączeń
Sieci neuronowe ze względu na rodzaj połączeń pomiędzy neuronami dzielimy na:
" sieci jednokierunkowe (ang. feedforward),
" sieci ze sprzężeniami zwrotnymi  sieci rekurencyjne (ang. feedback, bidirectional)
5
Sztuczne Sieci Neuronowe- Informacje podstawowe
Sieci jednokierunkowe tworzy się w wyniku grupowania pojedynczych neuronów w warstwy, a
następnie łączy się warstwy w ten sposób, że wyjście każdego neuron z danej warstwy jest połączony
z wejściem każdego neuronu z warstwy następnej. Nie mogą jednocześnie istnieć połączenia wewnątrz
warstwy, jak również połączenia wsteczne, czyli połączenia z warstwą poprzednią. Uczenie takich
sieci odbywa się zazwyczaj z wykorzystaniem algorytmu wstecznej propagacji błędów (ang.
backpropagation).
Sieci ze sprzężeniem zwrotnym powstają wówczas, gdy wyjście przynajmniej jednego neuronu
jest połączone pośrednio lub bezpośrednio z jego wejściem. Znane są różne topologie sieci
rekurencyjnych; najbardziej rozpowszechnione są sieci Hopfielda. Sygnał podawany na wejście jest
przetwarzany w sieci wielokrotnie, zanim ustalą się stabilne wartości wyjściowe. Po przebiegu sygnały
wyjściowe są opózniane o jeden cykl i ponownie podawane na jej wejście. Sieci takie są trudniejsze do
uczenia niż jednokierunkowe i działają wolniej, a w ich analizie nie można pominąć dynamicznych
stanów przejściowych stanowiących w tym przypadku istotę działania.
Różne metody uczenia
Jedną z najważniejszych cech sieci neuronowych jest ich zdolność uczenia się, czyli zdolność do
samodzielnego dostosowywania współczynników wagowych. Dzięki temu mają one charakter
sztucznej inteligencji, potrafią samodzielnie przystosowywać się do zmieniających się warunków.
Celem uczenia jest taki dobór wag w poszczególnych neuronach aby sieć mogła rozwiązywać
stawiane przed nią problemy. Wagi dobiera się w sposób zapewniający minimalizację błędu działania
sieci.
IstniejÄ… trzy zasadnicze klasy uczenia sieci:
" uczenie z nadzorem,
" uczenie ze wsparciem,
" uczenie bez nadzoru.
W uczeniu z nadzorem (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łada się wtedy, że z góry
wiadomo jak sieć ma się zachowywać i znane są odpowiedzi poprawne na pewne wektory z
przestrzeni wejściowej. Na tej podstawie można obliczyć konkretną wartość błędu i w oparciu o nią
modyfikować współczynniki wagowe jednostek sieci. Po zakończeniu procesu uczenia sieć
poddawana jest testom, podczas których nie posiada już dostępu do informacji o prawidłowych
odpowiedziach, a samodzielnie wygenerowane przez niÄ… rozwiÄ…zanie jest podstawÄ… do oceny
skuteczności procesu uczenia. Taki system nie jest odporny na zmieniające się warunki w jakich
przyjdzie mu działać, dlatego wymyślono inną metodę uczenia z nadzorem tzw. uczenie ze wsparciem.
Uczenie ze wsparciem (uczenie ze wzmocnieniem) nie zakłada istnienia nauczyciela, a jedynie
krytyka, który nie podaje konkretnej odpowiedzi, ale ocenia jej poprawność. Inspiracją tej metody jest
prawo 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 przeciwnym przypadku ulega
osłabieniu. Krytyk nie bierze udziału w procesie uczenia, lecz rozstrzyga o wyniku nauczania.
Przy uczeniu bez nadzoru (uczenie bez nauczyciela) nie ma dostępnej żadnej informacji
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  sieć sama musi ustalać wartości wag korzystając z zauważonych
korelacji pomiędzy sygnałami wejściowymi lub z mechanizmu konkurencji neuronów. Uczenie bez
nadzoru jest możliwe tylko wtedy, gdy istnieje powtarzalność wśród danych wejściowych
(redundancja), inaczej dane były by nie do odróżnienia od przypadkowego szumu. Uczenie bez
nadzoru stosuje się też do już nauczonych sieci np. przy wykorzystaniu uczenia z nauczycielem w celu
zwiększenia ich możliwości adaptacyjnych.
6
Sztuczne Sieci Neuronowe- Informacje podstawowe
Rodzaj funkcji aktywacji
Ze względu na rodzaj funkcji aktywacji wyróżnia się:
" sieci liniowe (ang. linear)
" sieci nieliniowe (ang. nonlinear).
W sieciach liniowych występuje liniowa funkcja aktywacji neuronu, najczęściej f(x)=x. Każdą
wielowarstwową sieć liniową można zastąpić równoważną siecią jednowarstwową, dlatego w praktyce
nie buduje siÄ™ wielowarstwowych sieci liniowych.
W sieciach nieliniowych stosuje się wiele różnych funkcji aktywacji, np. sigmoidalną, tangensoidalną,
różne rodzaje funkcji signum. Wybór funkcji należy do projektanta sieci i w dużej mierze zależy od
rodzaju rozwiązywanego problemu. Do projektanta należy również określenie liczby warstw sieci.
Sieci nieliniowe z trzema warstwami (wejściową, ukrytą i wyjściową) wystarczają do zamodelowania
dowolnej funkcji (dowód Tadeusiewicz R., Sieci neuronowe).
6. Kierunki badań i zastosowania ekonomiczne sieci
neuronowych
Trudno wymienić wszystkie aktualnie spotykane zastosowania sieci neuronowych. Ze względu na
swoją budowę sieci neuronowe mogą być stosowane tam, gdzie na podstawie pewnych znanych
wnioskuje się o pewnych nieznanych informacjach. Uwzględniając metodologię badań można
wyróżnić następujące kierunki badań (w każdej klasie zostaną wymienione wybrane zastosowania
ekonomiczne):
" Predykcja
Poprzez zdolność sieci do wykrywania związków pomiędzy danymi możliwe jest
dokonanie prognozy bez znajomości np. parametrów funkcji trendu, Sieć może nauczyć się
przewidywania sygnałów wyjściowych bez jawnego definiowania związku między danymi
wejściowymi a wyjściowymi, tylko na podstawie obserwacji tzw. ciągu uczącego (tj.
określonej liczby sekwencji sygnałów wejściowych i wyjściowych stanowiących materiał
empiryczny z przeszłości). Przykładowe zastosowania:
o ocena wiarygodności kredytobiorców
o prognozy ekonomiczne rozwoju przedsiębiorstw
o prognozowanie sprzedaży w przedsiębiorstwie
o prognozowanie indeksów giełdowych
o prognozy rynków (np. pieniężnych, długów, metali szlachetnych, itd.)
" Klasyfikacja i rozpoznawanie
Zadanie polega na przewidywaniu identyfikatora klasy, do której dany obiekt należy.
Przykładem zastosowania może być zadanie identyfikacji zakładów danej branży, w
których warto inwestować lub regionów zagrożonych bezrobociem. Innym zastosowaniem
jest szeroko pojęta klasyfikacja (np. klientów danej firmy).
7
Sztuczne Sieci Neuronowe- Informacje podstawowe
" Kojarzenie danych
Klasyczne systemy komputerowe mogą gromadzić duże zbiory danych, ale mają właściwie
żadnych możliwości ich kojarzenia. Sieci neuronowe, dzięki zdolności uczenia się i
uogólniania doświadczeń, pozwalają zautomatyzować procesy wnioskowania i pomagają
wykrywać istotne powiązania pomiędzy danymi.
" Analiza danych
Zadanie polega na znalezieniu związków pomiędzy danymi. Analiza danych przy
wykorzystaniu sieci neuronowych pozwala np. na wykrycie rzeczywistych intencji
przedsiębiorstw konkurencyjnych, co może stać się podstawą przewagi konkurencyjnej lub
też pozwala na ustalenie przyczyn niepowodzeń przeszłych projektów itp.
" Filtracja sygnałów
Dane gospodarcze pochodzące z różnych zródeł są zakłócone, ich wykorzystanie wymaga
wstępnej obróbki tych danych. Klasyczne metody eliminacji "szumów" pozwalają usunąć
zakłócenia o charakterze losowym, lecz nie dają podstaw do eliminacji błędów
systematycznych. Aatwo można uzupełniać dane niekompletne przy użyciu SSN. Z tych
powodów coraz częściej bada się możliwość zastosowania sieci neuronowych jako filtrów
danych gospodarczych.
" Optymalizacja
Sieci neuronowe - zwłaszcza sieci Hopfielda - dobrze nadają się do optymalizacji decyzji
gospodarczych. Potwierdzone są już możliwości sieci do rozwiązywania zadań
optymalizacji statycznej i dynamicznej. Ciekawe jest również zastosowanie sieci do
optymalizacji kombinatorycznej i zagadnień złożonych obliczeniowo, które mogą być
rozwiązywane w krótkim czasie dzięki współbieżnym obliczeniom przez wiele elementów
sieci. Dobrym przykładem jest sieć rozwiązująca klasyczny problem komiwojażera.
W wymienionych zagadnieniach sieci neuronowe często funkcjonują lepiej w porównaniu do
powszechnie stosowanych metod statystycznych takich jak korelacja i parametryczna regresja
wielowymiarowa. Wiąże się to z faktem, iż sieć realizuje nieliniową funkcję zależności danych
wyjściowych od wejściowych, której kształt jest odpowiednio dopasowywany podczas procesu
uczenia. Ponadto sieci neuronowe dobrze sprawdzają się do przetwarzania danych, które zawierają
szumy lub są niekompletne. Należy też podkreślić ich zdolność do równoległego przetwarzania
informacji, oczywiście w specjalnych wykonaniach sprzętowych. Zapewnia to bardzo dużą szybkość
przetwarzania informacji, co w efekcie może prowadzić do wykonywania przez sieć szybszych i
efektywniejszych analiz niż człowiek-ekspert. Zaznaczyć jednak należy, że warunkiem efektywnego
wykorzystania tego typu narzędzi jest posiadanie zbioru wiarygodnych danych z przeszłości, na
podstawie których można dokonać uczenia i testowania sieci.
7. Określenie odpowiedniej architektury sieci, uczenie sieci i
jej weryfikacja, zastosowanie sieci
Konstrukcja ciągów: uczącego, walidacyjnego i testującego
Przed realizacją procesu uczenia i testowania SSN konieczne jest określenie okresu czasu, z
którego pochodzą dane wykorzystane w tym procesie. Z jednej strony należy uwzględnić fakt, że dane
ze zbyt odległych w czasie okresów mogą być nieodpowiednie w stosunku do obecnej, często
odmiennej sytuacji. Jeżeli związki, które zachodziły w przeszłości, już nie zachodzą, nawet dobrze
8
Sztuczne Sieci Neuronowe- Informacje podstawowe
nauczona sieć działać będzie niepoprawnie. Z drugiej jednak strony im dłuższy jest ciąg uczący, tym
lepsza zdolność nauczonej sieci do generalizacji, efektywnego rozpoznawania wzorców wejściowych i
generowania poprawnych odpowiedzi w oparciu o te wzorce.
Istotną rzeczą przy stosowaniu SSN jest podział dostępnych danych (wektorów wejściowych)
na zbiory: ciąg uczący, walidacyjny i testowy. Ciąg uczący jest to zbiór takich danych, które w miarę
dokładnie charakteryzują dany problem. W jego skład wchodzi wektor wejściowy, czyli dane
wejściowe, które podawane są na wejścia sieci i wektor wyjściowy, czyli odpowiedzi jakie sieć
powinna wygenerować na swoich wyjściach. Po przetworzeniu wektora wejściowego, porównywane
są wartości otrzymane z wartościami oczekiwanymi i sieć jest informowana, czy odpowiedz jest
poprawna, a jeżeli nie, to jaki powstał błąd odpowiedzi. W stosowanym w opracowaniu praktycznym
algorytmie backpropagation błąd ten jest następnie propagowany do sieci, ale w kolejności odwrotnej
niż wektor wejściowy (od warstwy wyjściowej do wejściowej) i na jego podstawie następuje taka
korekta wag w każdym neuronie, aby ponowne przetworzenie tego samego wektora wejściowego
spowodowało zmniejszenie błędu odpowiedzi. Procedurę taką powtarza się do momentu
wygenerowania przez sieć błędu mniejszego niż założony. Wtedy na wejście sieci podaje się kolejny
wektor wejściowy i powtarza te czynności. Po przetworzeniu całego ciągu uczącego (proces ten
nazywany jest epoką) oblicza się błąd dla epoki i cały cykl powtarzany jest do momentu, aż błąd ten
spadnie poniżej dopuszczalnego. Pewna liczba przypadków uczących jest zaliczana do osobnej grupy i
tworzy ciąg walidacyjny. Dane należące do tej grupy nie są bezpośrednio stosowane w trakcie uczenia
sieci, ale służą do niezależnej kontroli postępów algorytmu uczenia. Na podstawie ciągu
walidacyjnego dokonywana jest wstępna ocena funkcjonowania sieci neuronowej i na jej podstawie
dokonywana jest korekta sieci.
Jeżeli sieć jest już nauczona, należy zweryfikować jej działanie. W tym momencie ważne jest
podanie na wejście sieci wzorców spoza zbioru uczącego i walidacyjnego w celu zbadania czy sieć
może efektywnie generalizować zadanie, którego się nauczyła. Do tego używamy ciągu testowego,
który ma te same cechy co ciąg uczący tzn. dane dokładnie charakteryzują problem i znamy dokładne
odpowiedzi. Ważne jest jednak, aby dane te nie były używane uprzednio do uczenia i walidacji. Przy
użyciu ciągu testowego, podobnie jak walidacyjnego, rejestruje się odchylenia, błędy od oczekiwanych
odpowiedzi i weryfikuje poprawność działania sieci.
Podział dostępnego zbioru danych na trzy rozłączne podzbiory: ciąg uczący, walidacyjny i
testowy, jest skomplikowanym zagadnieniem. Należy m.in. określić liczebność (lub wzajemne
proporcje) ciągu uczącego, walidacyjnego i testowego oraz zdefiniować lokalizację każdego z tych
ciągów w całym zbiorze danych. Możliwości jest dużo. Można np. dokonać podziału zbioru danych na
kilkanaście bloków, a następnie wyodrębnienie w każdym z bloków danych uczących, walidacyjnych i
testowych  według tych samych zasad alokacji i z zachowaniem przyjętych proporcji.
Dobór architektury, parametrów sieci
Ważnym etapem jest wybór odpowiedniej sieci. Wybór dotyczy m.in. struktury sieci, funkcji
aktywacji, algorytmu uczenia sieci, parametrów algorytmu uczenia i jest najczęściej wykonywany
eksperymentalnie.
Wiadomo, że sieć posiadać musi warstwę wejściową złożoną z neuronów odpowiadających
ilością liczbie zmiennych objaśniających i warstwę wyjściową złożoną z neuronów odpowiadających
ilością liczbie zmiennych objaśnianych. Problem struktury sieci dotyczy więc ilości warstw ukrytych i
ilości węzłów na każdej z tych warstw, a także do struktury połączeń między warstwami. Najczęściej
wystarcza sieć trzywarstwowa (z jedną warstwą ukrytą). Wielowarstwowa sieć jednokierunkowa z
tylko jedną warstwą ukrytą może aproksymować z zadaną dokładnością dowolną funkcję ciągłą
(twierdzenie o uniwersalnej aproksymacji). Nie oznacza to, że jest to rozwiązanie optymalne pod
względem długości czasu uczenia się sieci.
Przy projektowaniu sieci bardzo ważna jest również ilość składników w warstwie ukrytej sieci.
Mogą tu wystąpić dwie możliwe sytuacje: overfitting i underfitting. Overfitting występuje wtedy, gdy
zaprojektujemy zbyt dużo neuronów w warstwie ukrytej. Prowadzi to do otrzymywania błędnych
wyników dla wektorów testowych. Underfitting występuje wtedy, gdy sieć posiada zbyt mało
neuronów w warstwie ukrytej. Efektem tego jest utrzymywanie się wartości błędu na stałym
niedopuszczalnym poziomie, pomimo długiego uczenia się danej sieci.
9
Sztuczne Sieci Neuronowe- Informacje podstawowe
Zastosowanie sieci
Oczekiwanym efektem uczenia jest przystosowanie sieci do prawidłowych reakcji na przedstawiane
jej informacje wejściowe. Wagi poszczególnych neuronów są tak  dostrajane , że sieć jest w stanie
poprawnie reagować na wzorce, których się nauczyła i również na wzorce, które nie występowały w
procesie uczenia. Np. wiedza zawarta w informacjach z przeszłości jest wykorzystywana do predykcji
zachowań w przyszłości.
Literatura:
Rutkowska D., Piliński M., Rutkowski L., Sieci neuronowe, algorytmy genetyczne i systemy rozmyte,
Państwowe Wydawnictwa Naukowe, Warszawa, 1997
Tadeusiewicz R., Sieci neuronowe, Akademicka Oficyna Wydawnicza RM, Warszawa 1993
Linki:
Skrypt R. Tadeusiewicz - http://winntbg.bg.agh.edu.pl/skrypty/0001/main.html
Strona Bartłomieja Bartkowskiego - http://nrn.prv.pl/
10


Wyszukiwarka

Podobne podstrony:
SN2 SN1 E2 E1
SN1
Reakcje SN2 E2 SN1 E1
chorg w 7 sn1
sn1 zadania na kartkwkÄ™ (jakÄ…Å›)
SN1

więcej podobnych podstron