Zastosowanie metod eksploracji danych Data Mining w badaniach ekonomicznych SAS Enterprise Miner rok akademicki 2013/2014
Sieci neuronowe
Sieci neuronowe W XIX wieku sformułowano teorię opisującą podstawowe pojęcia dla funkcjonalnego opisu systemu nerwowego. System nerwowy składa się z komórek nerwowych (neuronów), które komunikują się ze sobą poprzez przekazywanie sygnałów. Komórki nerwowe są połączone ze sobą tworząc skomplikowana sieć. Każdy neuron jest pojedynczą komórką, która może odbierać sygnały elektrochemiczne, przetwarzać je i rozsyłać do innych komórek. 3
Sieci neuronowe Pojemność ludzkiego mózgu szacuje się na 10 11 neuronów. Na jeden neuron przypada średnio kilka tysięcy połączeń. Cztery tygodnie po zapłodnieniu embrion wytwarza pół miliona neuronów na minutę. W ciągu następnych tygodni te komórki przemieszczają się do mózgu i łączą między sobą (około 2 miliony połączeń na sekundę). To daje około 10 15 połączeń między neuronami. 4
Rodzaje neuronów Neurony wstępujące (czuciowe) odbierają bodźce od narządów zmysłów i przekazują informację do ośrodkowego układu nerwowego. Neurony pośredniczące zajmują się integracją (kojarzeniem) docierających informacji i podejmowaniem decyzji dotyczących sposobów reagowania. Neurony zstępujące przekazują informację z systemu nerwowego do odpowiednich narządów zmysłu i gruczołów. 5
Budowa neuronu Ciało komórki (perikarion). Dendryty odbierają sygnały przychodzące od innych. Sygnały wejściowe są agregowane i jeżeli przekroczą pewną wartość progową, neuron zostaje pobudzony i wysyła sygnał wyjściowy. Akson przewodzi z ciała komórki do innych neuronów lub do mięśni i gruczołów. Akson jednej komórki łączy się z dendrytami innych komórek poprzez złącza zwane synapsami. 6
Neurony a uczenie się W 1949 roku Donald Hebb w pracy The Organization of Behavior zasugerował, że zachowanie się synaps może być modyfikowane przez uczenie. Bodźce przychodzące ze świata zewnętrznego powodują wzrost aktywności neuronów, co wpływa na wzrost powiązań synaptycznych między pobudzanymi neuronami. Uczenie powoduje, że niektóre synapsy są wzmocnione, a inne uśpione. Powyższa idea stała się podstawą konstrukcji sztucznych sieci neuronowych. 7
Modele sieci neuronowych W budowie sztucznych sieci neuronowych wykorzystuje się modele matematyczne neuronów, których działanie w pewnym uproszczeniu odpowiada działaniu neuronów biologicznych. dendrytom biologicznych sieci neuronowych odpowiadają wejścia, które są połączone z wyjściami innych neuronów, synapsom odpowiadają pewne liczby zwane wagami połączeń, które pełnią rolę parametrów wpływających na działanie neuronów. Podobnie jak w systemie biologicznym wagi połączeń są zmieniane w zależności od otrzymywanej informacji. To zapewnia zdolność kojarzenia faktów czyli uczenia sieci. 8
Modele sieci neuronowych Mimo wielu uproszczeń, sztuczne sieci neuronowe charakteryzują się cechami zarezerwowanymi dotychczas dla organizmów żywych. zdolność uczenia się, dzięki której sieć neuronowa potrafi nauczyć się prawidłowych reakcji na określone bodźce, umiejętność abstrakcji tj. zdolność uogólniania zdobytej wiedzy, odporność na uszkodzenia, gdyż sieć neuronowa potrafi działać poprawnie nawet gdy część jej elementów jest uszkodzona. [D. Witkowska, 2000] Odporność na zaszumione i niedokładne dane wejściowe. 9
Zastosowania Modele sieci neuronowych stosuje się, gdy: nie znamy formuły matematycznej wiążącej zmienną zależną ze zmiennymi objaśniającymi (zależność ta jest nieliniowa), predykcja jest ważniejsza niż wyjaśnianie zależności między zmiennymi, mamy dużo obserwacji, dla których znamy wartości zmiennej objaśnianej i zmiennych objaśniających. 10
Kilka możliwych zastosowań sieci neuronowych rozpoznawanie i generowanie mowy, przewidywanie wskaźników finansowych, kursów na giełdzie optymalizacja procesów chemicznych, rozpoznawanie obiektów i wykrywanie złóż, identyfikacja komórek nowotworowych, wykrywanie anomalii w chromosomach, określanie ryzyka przedsięwzięć, automatyczne rozpoznawanie ręcznego pisma, rozwiązywanie problemów optymalizacyjnych, takich jak problem komiwojażera, usuwanie szumów w analizie szeregów czasowych. [R. Tadeusiewicz, 1993] 11
Ciekawe zastosowania sieci neuronowych selekcja policjantów z uwagi na skłonność do nieetycznego zachowania, powoływanie przysięgłych, przewidywanie napraw drogowych, diagnozy lekarskie, przewidywanie wyników wyścigów konnych, przewidywanie wybuchów na Słońcu prognoza pogody, automatyczne sterowanie, wybór składników karmy dla kurcząt, poszukiwanie złota, badanie zanieczyszczeń powietrza. [Iwo Białynicki-Birula, Iwona Białynicka-Birula, Modelowanie rzeczywistości, WNT 2007] 12
Opis zależności między zmiennymi Wartości zmiennych objaśniających X 1 X 2 Sieć neuronowa Y Wartości zmiennej objaśnianej X 3 Po wprowadzeniu na wejściu wartości zmiennych objaśniających sieć powinna przewidywać wartość zmiennej objaśnianej 13
Jednokierunkowa sieć wielowarstwowa MLP MultiLayer Perception) neurony układają się w warstwy, połączenie istnieje tylko pomiędzy neuronami sąsiednich warstw (nie ma połączeń między neuronami tej samej warstwy), istnieje warstwa wejściowa, warstwa wyjściowa oraz jedna lub wiele warstw ukrytych, sygnał przepływa od warstwy wejściowej do warstwy wyjściowej w jednym kierunku. Warstwa wejściowa Warstwa ukryta Warstwa wyjściowa 14
Sztuczna sieć neuronowa Połączeniom między neuronami są przypisane wagi połączeń. waga Początkowe wartości wag mogą być ustalone lub wybrane losowo. Warstwa wejściowa Warstwa ukryta Warstwa wyjściowa 15
W jaki sposób neuron przetwarza informację przychodzącą do niego? Pobudzenie neuronu p jest liniową funkcją sygnałów wejściowych z wagami połączeń jako współczynnikami (funkcja kombinacji). n p=w 1 x 1 +w 2 x 2 +...+w n x = n i=1 w i x i Sygnał wyjściowy y jest zależny od całkowitego pobudzenia neuronu, transformowanego przez funkcję aktywacji f. Pozwala to wprowadzić nieliniowość. n y=f ( p)=f ( i=1 w i x i) 16
Funkcja aktywacji progowa Funkcja przekazuje sygnał (f =1), gdy progowa wartość p jest większa od zera. 1,2 1 0,8 0,6 0,4 0,2 0-2,0-1,0 0,0 1,0 2,0 17
Funkcja aktywacji liniowo-progowa Zakres zmian wartości funkcji jest ograniczony przez wartości progowe α i β (przyjmujemy α < β). Sygnały mniejsze lub większe od wartości progowych nie powodują żadnych dalszych zmian wartości funkcji, natomiast między wartościami progowymi funkcja aktywacji zmienia się w sposób liniowy. 1,2 1 0,8 0,6 0,4 0,2 0-2,0-1,0 0,0 1,0 2,0 18
Funkcja logistyczna 1 f ( p )= 1+exp( β p ) Przyjmuje wartości z przedziału otwartego (0; 1), gdzie parametr β decyduje o kształcie funkcji w pobliżu zera. 1,0 0,8 0,6 0,4 0,2 0,0-2,0-1,0 0,0 1,0 2,0 2 19
Funkcja tangens hiperboliczny f ( p )=tanh p= exp ( p) exp( p ) exp ( p)+exp( p ) Przyjmuje wartości z przedziału [-1; 1] 20
Inne funkcje aktywacji W programie SAS Enterprise Miner używane są jeszcze inne funkcje aktywacji, m. in. identyczność - f(p) = p, wykładnicza - f(p) = exp(p) softmax - będąca uogólnieniem funkcji logistycznej, Gauss - f(p) = exp(-p 2 ), odwrotność (reciprocal) - f(p) = 1/p, Elliot - f(p) = p/(1+ p ) 21
Domyślne funkcje aktywacji dla warstwy wyjściowej W programie Enterprise Miner domyślne funkcje aktywacji dla warstwy wyjściowej zależą od skali pomiaru zmiennej objaśnianej (target). Skala pomiaru Interval Ordinal Nominal Funkcja aktywacji identyczność logistyczna softmax 22
Uczenie sieci neuronowej uczenie sieci polega na modyfikacji wartości wag wszystkich połączeń między neuronami w ten sposób, że sieć przyjmuje pożądane wartości wyjściowe dla określonych danych wejściowych, o działaniu sieci decyduje struktura połączeń neuronów i wartości wag tych połączeń, proces uczenia polega na kolejnych modyfikacjach wag. Wynika z niego też modyfikacja topologii sieci, ponieważ sieć z zerowymi wagami między dwoma neuronami oznacza brak połączenia, a neuron z wejściowymi i wyjściowymi wagami równymi zero oznacza neuron zbędny, który może być usunięty ze struktury sieci. 23
Uczenie sieci neuronowej Przebieg procesu uczenia sieci jest następujący: najpierw nadaje się wszystkim wagom wartości początkowe (w sposób z góry ustalony lub losowy), ale tak aby nie faworyzować żadnego połączenia, następnie sieć wykonuje postawione zadanie i na podstawie otrzymanego wyniku wartości wag są zmieniane. 24
Uczenie sieci neuronowej W zależności od rodzaju informacji o ocenie zadania wykonanego przez sieć wyróżniamy: uczenie pod nadzorem (z nauczycielem), gdzie dostarczana jest informacja o poprawnych odpowiedziach, uczenie ze wzmocnieniem gdzie nie podaje się poprawnej odpowiedzi, lecz jedynie ocenę wyniku, np. "dobrze" lub "źle ; ten tryb uczenia naśladuje ludzki proces uczenia się, uczenie bez nadzoru (bez nauczyciela), w którym nauczyciel nie bierze udziału w nauczaniu, a sieć sama wykrywa wzajemne zależności w danych wejściowych. Skuteczność uczenia zależy od wyboru wzorców ze względu na ich reprezentatywność. 25
Uczenie nadzorowane sieć neuronowa analizuje ciąg dostarczanych na wejściu przykładów (zwanych faktami) i jednocześnie otrzymuje informację, jaki jest poprawny wynik dla każdego przykładu, sieć stara się odgadnąć powiązania między danymi wejściowymi a znanym wynikiem, na podstawie odstępstw wyników sieci od znanych wartości na wyjściu dokonywana jest korekta wag w ten sposób, aby zredukować różnice do możliwie małych wartości. 26
Modyfikacja wag Modyfikacja wag połączeń jest przeprowadzana iteracyjnie zgodnie z zależnością: w t+1 =w t +Δw t, Zmienianie wartości wag jest w t+1 - nowa waga (w t+1 iteracji) zatrzymywane, jeżeli działanie sieci uznamy za właściwe lub przekroczona zostanie z góry w t założona maksymalna liczba iteracji. Δw t - dotychczasowa waga (w t-tej iteracji) - wartość, o jaką należy zmienić wagę w danej chwili uczenia 27
Reguła delta Jeżeli oznaczymy symbolem y - wartość wymaganej odpowiedzi neuronu, a symbolem y^ - wartość sygnału wyjściowego neuronu, to możemy obliczyć błąd odpowiedzi: δ = y ^y, Na podstawie obliczonego błędu Δw=η δ p jest wyznaczana wartość, o jaką należy zmienić wagę: gdzie η jest współczynnikiem uczenia, δ=δ f ' ( p ) f ' jest pochodną funkcji aktywacji. 28
Współczynnik uczenia η Określa szybkość, z jaką następuje modyfikowanie wartości wag. jeżeli wartość współczynnika uczenia jest zbyt duża, to zmiany wag będą zwiększać błąd w następnych iteracjach i uczenie nie będzie możliwe (sieć będzie zbyt intensywnie reagować na kolejne bodźce wejściowe), jeżeli wartość będzie zbyt mała, to uczenie będzie przebiegać powoli, współczynnik uczenia jest wspólny dla wszystkich wag, w trakcie procesu uczenia wartości współczynnika są zmieniane. 29
Algorytm propagacji wstecznej Celem algorytmu jest zmniejszenie błędu odpowiedzi sieci nie tylko dla jednego wzorca, ale dla wszystkich wzorców wejściowych. Q= 1 n 2 i=1 ( y i ^y i ) 2 Oblicza się błąd Q, zwany błędem średniokwadratowym (SSE - Sum Squared Error) y i ^y i n wartości oczekiwane na wyjściu neuronu wartości wyznaczone z sieci liczba wzorców 30
Algorytm propagacji wstecznej Propagacja wsteczna polega na obliczaniu gradientu błędu dla neuronów wcześniejszych warstw. Najpierw koryguje się wagi prowadzące do warstwy wyjściowej, potem wagi prowadzące do warstwy poprzedzającej ją, aż osiągniemy pierwszą warstwę. Pozwala to na wyznaczenie wartości wszystkich wag połączeń. 31
Algorytm propagacji wstecznej Możliwe są dwie wersje algorytmu: wczytaj cały zbiór danych, modyfikuj wagi, wczytaj cały zbiór danych, modyfikuj wagi itd., wczytaj jedną obserwację, modyfikuj wagi, wczytaj jedną obserwację, modyfikuj wagi itd.. Pierwsza z tych metod jest mniej zalecana, gdyż jest powolna i nieefektywna. 32
Trening sieci przygotowanie wzorców wejściowych i wyjściowych, nadanie wartości początkowych wagom połączeń, nadanie wartości początkowych innym parametrom uczenia (np. współczynnikowi uczenia), prezentacja wzorców i modyfikację wag, sprawdzenie kryterium zakończenia procesu uczenia. 33
Testowanie sieci Program umożliwia testowanie sieci podczas treningu. Testowanie odbywa się w oparciu o zbiór faktów testowych wyodrębnionych spośród zbioru wszystkich faktów, zapisanych w zbiorze danych. Następuje wtedy podział zbioru faktów (w proporcjach zadanych przez użytkownika): na fakty treningowe, fakty testowe. Fakty testowe nie biorą udziału w treningu sieci. 34
Pułapki Liczba faktów powinna być przynajmniej kilka razy większa od liczby szacowanych wag Sieć o zbyt złożonej strukturze prowadzi do powstania modeli, które bardzo dobrze działają na danych uczących, ale nie sprawdzają się dla innych danych (sieć nie potrafi uogólniać zdobytej wiedzy). Zjawisko to nazywa się przetrenowaniem sieci 35
Wnioski sieć neuronowa nie wyjaśnia, jaka jest zależność funkcyjną między zmiennymi objaśniającymi (wejściowymi) a zmienną wynikową. pozwala jednak dokonywać predykcji albo zidentyfikować przynależność obiektu do danej klasy. nie jest wymagane spełnienie założeń o naturze rozkładu zmiennych, jak to jest w przypadku stosowania modeli ekonometrycznych, np. metod regresji liniowej lub logistycznej. 36
Dziękuję za uwagę!