Sieci neuronowe. Zaawansowana analiza statystyczna.

meto1

 

Sieci neuronowe

Sztuczne sieci neuronowe, których intensywny rozwój nastąpił w drugiej połowie lat osiemdziesiątych, znajdują się w polu zainteresowania naukowców z różnych dziedzin, m.in. informatyków, cybernetyków, automatyków oraz biologów i psychologów. Sztuczna sieć neuronowa jest zbiorem elementów zwanych neuronami wraz z zestawem połączeń między nimi. Jej budowa i działanie zostało zainspirowane wynikami badań nad ludzkim mózgiem. Sieć składa się z:wejść xi, gdzie wprowadzone zostają dane, warstw połączonych ze sobą neuronów, w których przebiega proces analizy, wyjścia y, gdzie pojawia się sygnał będący wynikiem analizy.

Budowa pojedynczego nauronu_sieć neuronowa_rys 1

Rysunek 1: Budowa pojedynczego neuronu

Na wejścia podawane są wektory uczące. Należy obliczyć całkowite pobudzenie neuronu e liniowego i radialnego. Wyjście y zależy od całkowitego pobudzenia neuronu:

y = f(e) (1)

gdzie f jest funkcją aktywacji neuronu, a jej postać określa typ neuronu. Najczęściej używane funkcje aktywacji to funkcja tożsamościowa, logistyczna, Gaussa oraz signum.

W najprostszym przypadku sieć składa się z dwóch warstw neuronów: wejściowej i wyjściowej. Jeżeli liczba warstw jest większa to pozostałe warstwy, leżące pomiędzy pierwszą a ostatnią noszą nazwę warstw ukrytych. Jeżeli połączenia w sieci przebiegają zawsze od warstwy niższej do wyższej do mamy do czynienia z tzw. siecią feedforward. Natomiast jeśli istnieją połączenia wyjść neuronów z wejściami tej samej lub wcześniejszej warstwy to taką sieć nazywamy siecią ze sprzężeniami zwrotnymi.

sieć neuronowa perceptron wielowarstwowy

Rysunek 2: Sieć feedforward – perceptron wielowarstwowy

Wartości jakie sieć wygeneruje na końcu zależą przede wszystkim od wag i rodzaju funkcji. Na podstawie testowego zbioru danych sieć uczy się rozpoznawać dobre i złe kredyty. Poprawnie nauczona sieć posiada umiejętność uogólniania wiedzy zdobytej na podstawie historycznych obserwacji i dokonywania trafnych prognoz dla nowych danych. Dlatego też proces uczenia sieci odgrywa tu kluczową rolę. Wyróżnia się dwa warianty uczenia sieci:

z nauczycielem, bez nauczyciela.

Uczenie z nauczycielem polega na tym, że sieci podaje się dane wejściowe wraz z pożądanymi dla nich danymi wyjściowymi i na tej podstawie sieć dostosowuje wagi w taki sposób żeby te dane wyjściowe otrzymać. Idea tego procesu dla pojedynczego elementu przetwarzającego przedstawia się następująco:

  1. Wprowadzamy dane wejściowe zawarte w wektorze X oraz sygnał wyjściowy z.
  1. Przetwarzamy siecią neuronową dane wejściowe X i w rezultacie dostajemy na wyjściu sygnał y różny od z.
  1. Określamy wielkość błędu w k-tej iteracji:
σk = z − yk (8)
4. Określamy nowy wektor wag:
W k+1 = W k + ησkxT (9)

gdzie W k – macierz wag określona w k-tej iteracji, η – współczynnik liczbowy decydujący o szybkości uczenia się.

5. Celem procesu jest minimalizacja funkcji:
1         n
X
Q = ∑(zi yi)2 (10)
2
     i=1

gdzie indeks i określa numer obserwacji w ciągu uczącym.

Algorytm ten jest jednym z pierwszych algorytmów uczenia sieci z nauczycielem i znany jest jako reguła delty. Nie sprawdza się jednak najlepiej w dłuższych przedziałach czasu, ponieważ otrzymane w jego wyniku wagi nie mogły być stosowane na danych dynamicznych i zbyt często należałoby je douczać. Później weszły w życie inne metody uczenia sieci z nauczycielem, takie jak algorytm propagacji wstecznej czy też algorytm Levenberga-Marquardta.

Uczenie z nauczycielem nie zawsze jest możliwe do zastosowania. Często zdarza się że nie dysponujemy danymi testowymi na wyjściu, a zebranie ich byłoby zbyt kosztowe. Posiadamy natomiast duży zbiór danych wejściowych. Dla takich sytuacji naukowcy opracowali algorytmy uczenia sieci bez nauczyciela. Najogólniej rzecz ujmując, polegają one na podawaniu na wejście sieci szeregu przykładowych wektorów uczących bez jakiejkolwiek informacji dotyczącej oczekiwanych sygnałów wyjściowych. Odpowiednio zaprojektowana i nauczona sieć neuronowa powinna umieć wykorzystać wiedzę pochodzącą od sygnałów wejściowych i na jej podstawie zbudować algorytm swojego działania. W tworzeniu takich sieci istotne jest, aby wektory wejściowe były odpowiednio długie (wskazana jest nawet nadmiarowość danych).

Ponieważ nie jesteśmy w stanie w mierzalny sposób określić poprawności danych na wyjściu, dlatego też sieci uczone bez nauczyciela mogą jedynie:

  • oceniać podobieństwo analizowanego elementu w stosunku do przyjętego za wzorzec,
  • dokonywać analizy głównych składowych, czyli szukać wektorów ortogonalnych w przestrzeni danych, które mają największy wpływ na dyspersję danych,
  • grupować według prawdopodobieństwa lub określać prototypy wzorców, kodować.

Do metod uczenia sieci bez nauczyciela zaliczamy m.in. regułę Hebba i algorytm Kohonena.

Z wymienionych algorytmów w ocenie zdolności kredytowej wykorzystywany jest najczęściej algorytm propagacji wstecznej dla perceptronu wielowarstwowego (sieci feedforward).

Autorem tekstu jest Marta Mrozek.

Więcej na:

Sieć neuronowa budowa sztucznego neuronu

Najczęściej wykonywane analizy statystyczne w pracach magisterskich i doktorskich

10 algorytmów uczenia maszynowego

Modelowanie ryzyka kredytowego czym jest ryzyko kredytowe credit scoring analiza ryzyka kredytowego