Systemy Wspomagania Decyzji

Slides:



Advertisements
Podobne prezentacje
o radialnych funkcjach bazowych
Advertisements

Teoria układów logicznych
Sieć jednokierunkowa wielowarstwowa
Język ANSI C Funkcje Wykład: Programowanie komputerów
SIECI NEURONOWE Sztuczne sieci neuronowe są to układy elektroniczne lub optyczne, złożone z jednostek przetwarzających, zwanych neuronami, połączonych.
Wprowadzenie do optymalizacji wielokryterialnej.
SZTUCZNA INTELIGENCJA ARTIFICIAL INTELLIGENCE
Inteligencja Obliczeniowa Perceptrony o dużym marginesie błędu
Inteligencja Obliczeniowa Perceptrony
SIECI NEURONOWE Wykład III.
Badania operacyjne. Wykład 2
Sztuczne sieci neuronowe
Sztuczne sieci neuronowe w doświadczeniach nad fizyką spinową w CERN
Liczby Pierwsze - algorytmy
Macierze Maria Guzik.
Dr hab. Ewa Popko pok. 231a
Wykład 1 dr hab. Ewa Popko
Czy potrafimy obliczyć wartość wyjścia sieci znając wartości jej wejść? Tak, przy założeniu, że znamy aktualne wartości wag i progów dla poszczególnych.
Perceptrony proste liniowe - Adaline
Metody Sztucznej Inteligencji w Sterowaniu 2009/2010 Metoda propagacji wstecznej Dr hab. inż. Kazimierz Duzinkiewicz, Katedra Inżynierii Systemów Sterowania.
Język ANSI C Operacje we/wy
Sieci Hopfielda.
Sieci neuronowe jednokierunkowe wielowarstwowe
Sztuczne sieci neuronowe (SSN)
Matematyka.
AWK Zastosowania Informatyki Wykład 1 Copyright, 2003 © Adam Czajka.
formalnie: Budowa i zasada funkcjonowania sztucznych sieci neuronowych
O relacjach i algorytmach
Systemy wspomagania decyzji
Systemy wspomagania decyzji
Podstawy układów logicznych
Sztuczne Sieci Neuronowe
Zbiór do posortowania mieści się w pamięci
Metody matematyczne w inżynierii chemicznej
Komputerowe Wspomaganie w Inżynierii Materiałowej
TABLICE C++.
formalnie: Uczenie nienadzorowane
Wspomaganie decyzji nie zwalnia od decyzji...
Systemy Wspomagania Decyzji
Uczenie w Sieciach Rekurencyjnych
Zakładamy a priori istnienie rozwiązania α układu równań.
Podstawy programowania w języku C i C++
Systemy wspomagania decyzji
Modelowanie i Identyfikacja 2011/2012 Metoda propagacji wstecznej Dr hab. inż. Kazimierz Duzinkiewicz, Katedra Inżynierii Systemów Sterowania 1 Warstwowe.
Perceptrony proste liniowe - Adaline
II. Matematyczne podstawy MK
SYSTEMY EKSPERTOWE I SZTUCZNA INTELIGENCJA
Systemy wspomagania decyzji
Systemy Wspomagania Decyzji
MOiPP Matlab Przykłady metod obliczeniowych Obliczenia symboliczne
Metody matematyczne w inżynierii chemicznej Wykład 3. Całkowanie numeryczne.
Metody matematyczne w inżynierii chemicznej
Warstwowe sieci jednokierunkowe – perceptrony wielowarstwowe
Metody Sztucznej Inteligencji – technologie rozmyte i neuronowe Sieci jednowarstwowe - perceptrony proste progowe  Dr hab. inż. Kazimierz Duzinkiewicz,
Metody sztucznej inteligencji – technologie rozmyte i neuronoweReguła propagacji wstecznej  Dr hab. inż. Kazimierz Duzinkiewicz, Katedra Inżynierii Systemów.
SZTUCZNA INTELIGENCJA
© Kazimierz Duzinkiewicz, dr hab. inż. Katedra Inżynierii Systemów Sterowania Modelowanie i podstawy identyfikacji 2015/2016 Modele neuronowe – podstawy,
Narzędzia AI Dominik Ślęzak, Pokój Wykład dostępny na:
GeneracjeTechnologia Architektura przetwarzania 0. Przekaźniki elektromechaniczne 1. Lampy elektronowe 2. Tranzystory 3. Układy scalone 3.5.Układy dużej.
Liczbami naturalnymi nazywamy liczby 0,1,2,3,..., 127,... Liczby naturalne poznaliśmy już wcześniej; służą one do liczenia przedmiotów. Zbiór liczb.
Belief Nets Autor: inż. 2013r źródło tła:
Inteligencja Obliczeniowa Perceptrony o dużym marginesie błędu
Modelowanie i podstawy identyfikacji
Systemy neuronowo – rozmyte
Perceptrony o dużym marginesie błędu
Wstęp do Informatyki - Wykład 6
Perceptrony o dużym marginesie błędu
Systemy Ekspertowe i Sztuczna Inteligencja trudne pytania
Inteligencja Obliczeniowa Perceptrony
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

Systemy Wspomagania Decyzji

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

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.

Uproszczony schemat neuronu biologicznego

Sztuczny neuron bez funkcji aktywacji x1 x3 x2 w1 w3 w2 Sumator wyjście, y

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

Ogólny neuron nieliniowy dowolna nieliniowa funkcja aktywacji x1 x3 x2 w1 w3 w2 Sumator Funkcja aktywacji wyjście

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

Neuron z funkcją progową 1 -1 (Inna nazwa to funkcja Heaviside’a)

Przykłady funkcji aktywacji Funkcja bipolarna Funkcja unipolarna

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

S Poniżej jest przedstawiony schemat perceptronu wejście wyjście x0=1 -1 xn wn

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.)

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

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.

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

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=(x1,…,xn) 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.

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 wi 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

Algorytm uczenia perceptronu Losujemy wagi początkowe w1, …,wn oraz próg b. Dla t=1 do t=T wykonujemy 3., 4., 5. Na wejście podajemy kolejny wektor uczące x=x(t) i obliczamy y=f(s(x)). Porównujemy wartość wyjściową y z oczekiwaną wartością d=dt z ciągu uczącego. Dokonujemy modyfikacji wag: 5.1 Jeżeli y≠d, 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 2. 7. 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.

Podaj wektor x(t) na wejście neuronu i pobierz d(t) Start Losowy dobór wag t=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

Przykładowy plik z danymi, n=2 perceptron-input.txt 3 2 1 2 2 0 6 4 -2 8 -2 0 0 0 4 -20 Wynik uczenia perceptronu: 8 3 -17

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: Pierwszy wektor 2 3 … -1 5 -2 7

Wczytywanie danych (uproszczona funkcja, n=NUM=2) 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++) { d[numOfSamples++] = -1; /* -1 for second group */

Przykład klasyfikacji perceptronowej