Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Systemy Wspomagania Decyzji. Zagadnienia omawiane na kursie Sieci neuronowe Algorytmy genetyczne i ewolucyjne Systemy ekspertowe.

Podobne prezentacje


Prezentacja na temat: "Systemy Wspomagania Decyzji. Zagadnienia omawiane na kursie Sieci neuronowe Algorytmy genetyczne i ewolucyjne Systemy ekspertowe."— Zapis prezentacji:

1 Systemy Wspomagania Decyzji

2 Zagadnienia omawiane na kursie Sieci neuronowe Algorytmy genetyczne i ewolucyjne Systemy ekspertowe

3 Sieci neuronowe Sieci neuronowe to matematyczne i obliczeniowe modele, których budowa została zainspirowana strukturą i funkcjonowaniem biologicznych sieci neuronowych. Zbudowane są z połączonych grup sztucznych neuronów. W większości przypadków są układami adaptacyjnymi, które potrafią zmieniać swoją strukturę w oparciu o zewnętrzne lub wewnętrzne informacje, które przepływają przez sieć w fazie uczenia. Podstawowym elementem obliczeniowym takiej sieci jest sztuczny neuron.

4 Uproszczony schemat neuronu biologicznego

5 x1x1 x3x3 x2x2 w1w1 w3w3 w2w2 Sumator wyjście, y Sztuczny neuron bez funkcji aktywacji

6 Przykład 0,7 2,3 1,2 0,5 1,0 -0,2 Sumator 2,89 Jest to przykład neuronu liniowego. Można pominąć funkcję aktywacji.

7 x1x1 x3x3 x2x2 w1w1 w3w3 w2w2 Sumator Funkcja aktywacji wyjście Ogólny neuron nieliniowy dowolna nieliniowa funkcja aktywacji

8 Zauważmy, że w przypadku gdy funkcja aktywacji ma postać to neuron nieliniowy staje się liniowym, gdyż

9 Neuron z funkcją progową 1 (Inna nazwa to funkcja Heavisidea)

10 Przykłady funkcji aktywacji Funkcja bipolarna Funkcja unipolarna

11 Funkcja sigmoidalna (kształtem przypomina literę s, co odpowiada literze sigma ( ) w greckim alfabecie). Wykres dla =1.

12 Poniżej jest przedstawiony schemat perceptronu 1 x1x1 x2x2 xnxn w1w1 w2w2 wnwn w0w0 x 0 =1 wyjście

13 Oznaczenia Wektory Dla wektorów zdefiniowane są dwie pierwotne operacje: dodawanie wektorów Oraz mnożenie wektora przez skalar (liczbę – na ogoł R lub C ): gdzie v, u to wektory, a to skalar. Ważne jest, że operacje te spełniają Szereg praw (przemienność, łączność, rozdzielność itd.)

14 Oznaczenia Wektory: Iloczyn skalarny: Dodawanie wektorów (wierszowych) i mnożenie przez skalar (liczbę): Czasami wektor wierszowy zapisujemy uzywając nawiasów kwadratowych:

15 Funkcja aktywacji perceptronu Rysunkowy schemat perceptronu sugeruje następującą funkcję aktywacji W literaturze spotyka się także (może nawet częściej) inną definicję W gruncie rzeczy nie ma tu zasadniczej różnicy, gdyż perceptron służy do klasyfikacji: czy sygnał wejściowy (reprezentowany przez punkt lub wektor) należy do jednej klasy czy do drugiej.

16 Cześć liniowa perceptronu (sumator, ) Dla danych wag perceptronu w 1, …, w n oraz progu -b, gdy impulsy wejściowe są równe x 1, …, x n, to pobudzenie neuronu jest równe Używając symbolu iloczynu skalarnego możemy to zapisać też tak gdzie

17 Istota działania perceptronu Funkcja aktywacji rozróżnia dwa przypadki: (i) s > 0, (ii) s 0, zatem to co jest kluczowe w działaniu perceptronu sprowadza się do klasyfikacji punktów (wektorów) x =( x 1,…, x n ) wg poniższych nierówności: Oznacza to, że punkty x spełniające nierówność (i) będą klasyfikowane do jednej kategorii a punkty spełniające nierówność (ii) do drugiej.

18 Algorytm uczenia perceptronu Uczenie sieci polega na dobieraniu wag tak, aby dla zadanych impulsów wejściowych otrzymywać oczekiwane wartości wyjściowe z neuronów. Za chwilę zajmiemy się prostym przypadkiem (mamy tylko jeden neuron) poszukiwania wag w i oraz progu b dla perceptronu. Mamy dany ciąg uczący, który składa się z dowolnej skończonej liczby wektorów oraz dodatkowych informacji mówiących do której z dwóch klas te wektory należą. Tę dodatkową informację będziemy reprezentować symbolem d (d=+1 (pierwsza klasa) lub d=-1 (druga klasa)). Przy numeracji kolejnych wektorów uczących użyjemy indeksów górnych, np. x (2), aby odróżniać się od numerowania składowych wektora (indeksy dolne). Mamy więc ciąg uczący Liczba elementów ciągu uczącego (długość ciągu) oznaczamy przez T: T=liczba par uczących w epoce

19 Algorytm uczenia perceptronu 1.Losujemy wagi początkowe w 1, …,w n oraz próg b. 2.Dla t=1 do t=T wykonujemy 3., 4., 5. 3.Na wejście podajemy kolejny wektor uczące x=x (t) i obliczamy y=f(s(x)). 4. Porównujemy wartość wyjściową y z oczekiwaną wartością d=d t z ciągu uczącego. 5.Dokonujemy modyfikacji wag: 5.1 Jeżeli yd, to w := w + d·x, b=b+d. 5.2 Jeżeli y=d, to wagi pozostają bez zmian. 6. Jeżeli w 4. była choć jedna modyfikacja, to wracamy do Koniec. Uwagi: 1) Zauważmy, że w p. 5.1) operacja w:=w+d·x oznacza tak naprawdę w:=w+x, b=b+1 lub w:=w- x, b=b-1. 2) Tak naprawdę to nie musimy obliczać wartości y=f(s) w p. 2. Wystarczy sprawdzać warunek: s=w x+b > 0.

20 Start Losowy dobór wag t=1t=1 Podaj wektor x(t) na wejście neuronu i pobierz d(t) Oblicz wyjście y z neuronu y(t) = d(t) ? Wagi bez zmian: w(t+1) = w(t) Modyfikacja wag: w(t+1) w(t)+d(t)x(t) t = t+1 t > T Czy była jakaś modyfikacja wag? Stop

21 Przykładowy plik z danymi, n= perceptron-input.txt Wynik uczenia perceptronu:

22 Uwagi do implementacji Zbiór danych (samples) do uczenia neuronu ma liczność T=numOfSamples. Zbiór tych wektorów, czyli ciąg jest przechowywany w tablicy dwuwymiarowej double test[LIMIT][N], gdzie N=n (czyli liczba wejść perceptronu). Należy więc sprawdzać warunek Wektory uczące są przechowywane wierszami: i-ty wiersz w tablicy test to i-ty wektor uczący: 23… 0…5 0-2…7 Pierwszy wektor

23 void get_data() { char* fileName = "perceptron-input.txt"; FILE *fp; int i, posnum, negnum; double x, y; if ((fp = fopen(fileName,"r")) == NULL) { printf ("Could not open file. Quitting..."); exit(1);} /* Total number of learning vectors */ numOfSamples = 0; /* read first group */ fscanf(fp, "%d", &posnum); for (i = 0; i < posnum; i++) { fscanf(fp, "%lf %lf", &x, &y); test[numOfSamples][0] = x; test[numOfSamples][1] = y; d[numOfSamples++] = 1; /* 1 for one group */ } /* read second group */ fscanf(fp, "%d", &negnum); for (i = 0; i < negnum; i++) { fscanf(fp, "%lf %lf", &x, &y); test[numOfSamples][0] = x; test[numOfSamples][1] = y; d[numOfSamples++] = -1; /* -1 for second group */ } Wczytywanie danych (uproszczona funkcja, n=NUM=2)

24 Przykład klasyfikacji perceptronowej


Pobierz ppt "Systemy Wspomagania Decyzji. Zagadnienia omawiane na kursie Sieci neuronowe Algorytmy genetyczne i ewolucyjne Systemy ekspertowe."

Podobne prezentacje


Reklamy Google