Podstawy Sztucznej Inteligencji

Podobne dokumenty
MATLAB Neural Network Toolbox uczenie sieci (dogłębnie)

Podstawowe funkcje biblioteki narzędziowej Neural Network Toolbox. Version 5 pakietu MATLAB v. 6

Politechnika Warszawska

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

Sztuczne siei neuronowe - wprowadzenie

Zastosowania sieci neuronowych

Identyfikacja obiektów dynamicznych za pomocą sieci neuronowych

Wstęp do teorii sztucznej inteligencji Wykład III. Modele sieci neuronowych.

Zastosowania sieci neuronowych

Algorytmy sztucznej inteligencji

IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ

Sieci neuronowe w Statistica

Temat: Sztuczne Sieci Neuronowe. Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

Sieci neuronowe w Statistica. Agnieszka Nowak - Brzezioska

Uczenie sieci typu MLP

Temat: Sieci neuronowe oraz technologia CUDA

ZACHODNIOPOMORSKI UNIWERSYTET TECHNOLOGICZNY W SZCZECINIE

Algorytm wstecznej propagacji błędów dla sieci RBF Michał Bereta

WYKORZYSTANIE SIECI NEURONOWEJ DO BADANIA WPŁYWU WYDOBYCIA NA SEJSMICZNOŚĆ W KOPALNIACH WĘGLA KAMIENNEGO. Stanisław Kowalik (Poland, Gliwice)

MATLAB Neural Network Toolbox przegląd

Metody Sztucznej Inteligencji II

Inteligentne systemy decyzyjne: Uczenie maszynowe sztuczne sieci neuronowe

Uczenie sieci neuronowych i bayesowskich

ALGORYTMY SZTUCZNEJ INTELIGENCJI

Rozdział 1 Sztuczne sieci neuronowe. Materiały do zajęć dydaktycznych - na podstawie dokumentacji programu Matlab opracował Dariusz Grzesiak

Podstawy sztucznej inteligencji

1. Historia 2. Podstawy neurobiologii 3. Definicje i inne kłamstwa 4. Sztuczny neuron i zasady działania SSN. Agenda

Inteligentne systemy przeciw atakom sieciowym

Sztuczne sieci neuronowe

ID1SII4. Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny) stacjonarne (stacjonarne / niestacjonarne)

8. Neuron z ciągłą funkcją aktywacji.

SID Wykład 8 Sieci neuronowe

NEURAL NETWORK ) FANN jest biblioteką implementującą SSN, którą moŝna wykorzystać. w C, C++, PHP, Pythonie, Delphi a nawet w środowisku. Mathematica.

Oprogramowanie Systemów Obrazowania SIECI NEURONOWE

ĆWICZENIE 5: Sztuczne sieci neuronowe

Sztuczne sieci neuronowe

HAŁASU Z UWZGLĘDNIENIEM ZJAWISK O CHARAKTERZE NIELINIOWYM

Laboratorium nr 2. Identyfikacja systemu i detekcja uszkodzeń na podstawie modelu

sieci jednowarstwowe w MATLABie LABORKA Piotr Ciskowski

Prognozowanie kierunku ruchu indeksów giełdowych na podstawie danych historycznych.

Zastosowania sieci neuronowych - automatyka identyfikacja sterowanie

Literatura. Sztuczne sieci neuronowe. Przepływ informacji w systemie nerwowym. Budowa i działanie mózgu

Podstawy Sztucznej Inteligencji (PSZT)

Zrealizować sieć neuronową (learnbpm) uczącą się odwzorowania z = x 2 + y 2 dla x i y zmieniających się od -1 do 1.

PROGNOZOWANIE OSIADAŃ POWIERZCHNI TERENU PRZY UŻYCIU SIECI NEURONOWYCH**

Wstęp do sieci neuronowych, wykład 6 Wsteczna propagacja błędu - cz. 3

Definicja perceptronu wielowarstwowego

Sieci M. I. Jordana. Sieci rekurencyjne z parametrycznym biasem. Leszek Rybicki. 30 listopada Leszek Rybicki Sieci M. I.

MODELOWANIE PROCESÓW PRZETWÓRCZYCH Z UŻYCIEM SZTUCZNYCH SIECI NEURONOWYCH

Temat: ANFIS + TS w zadaniach. Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

Streszczenie. Słowa kluczowe: modele neuronowe, parametry ciągników rolniczych

Wstęp do sieci neuronowych, wykład 04. Skierowane sieci neuronowe. Algorytmy konstrukcyjne dla sieci skierowanych

Sieci neuronowe do przetwarzania informacji / Stanisław Osowski. wyd. 3. Warszawa, Spis treści

Sztuczne sieci neuronowe Ćwiczenia. Piotr Fulmański, Marta Grzanek

Testowanie modeli predykcyjnych

Algorytmy wstecznej propagacji sieci neuronowych

Elementy inteligencji obliczeniowej

MODELOWANIE NEURONALNE ROZWOJU SYSTEMU ELEKTROENERGETYCZNEGO. CZĘŚĆ 2. MODELE SYSTEMU IEEE RTS

Uczenie sieci radialnych (RBF)

PRÓBA ZASTOSOWANIA SIECI NEURONOWYCH DO PROGNOZOWANIA OSIADAŃ POWIERZCHNI TERENU POWSTAŁYCH NA SKUTEK EKSPLOATACJI GÓRNICZEJ**

Automatyczna predykcja. Materiały/konsultacje. Co to jest uczenie maszynowe? Przykład 6/10/2013. Google Prediction API, maj 2010

SZTUCZNA INTELIGENCJA

wiedzy Sieci neuronowe

Najprostsze modele sieci z rekurencją. sieci Hopfielda; sieci uczone regułą Hebba; sieć Hamminga;

Metody i techniki sztucznej inteligencji / Leszek Rutkowski. wyd. 2, 3 dodr. Warszawa, Spis treści

Sztuczne Sieci Neuronowe. Wiktor Tracz Katedra Urządzania Lasu, Geomatyki i Ekonomiki Leśnictwa, Wydział Leśny SGGW

ELEMENTY SZTUCZNEJ INTELIGENCJI. Sztuczne sieci neuronowe

Systemy uczące się Lab 4

Wstęp do sztucznych sieci neuronowych

Sztuczne sieci neuronowe (SNN)

synaptycznych wszystko to waży 1.5 kg i zajmuje objętość około 1.5 litra. A zużywa mniej energii niż lampka nocna.

I EKSPLORACJA DANYCH

Instrukcja realizacji ćwiczenia

Sztuczne sieci neuronowe

MATLAB Compiler. jak tworzyć aplikacje ze skryptów. LABORKA Piotr Ciskowski

ZASTOSOWANIE AUTORSKIEJ METODY WYZNACZANIA WARTOŚCI PARAMETRÓW NOWOCZESNYCH SYSTEMÓW TECHNICZNYCH DO PŁUGÓW I OPRYSKIWACZY POLOWYCH

DEKOMPOZYCJA HIERARCHICZNEJ STRUKTURY SZTUCZNEJ SIECI NEURONOWEJ I ALGORYTM KOORDYNACJI

RAPORT Z PRAKTYKI. Zastosowanie Sztucznych Sieci Neuronowych do wspomagania podejmowania decyzji kupna/sprzedaży na rynku Forex.

Wstęp do teorii sztucznej inteligencji Wykład II. Uczenie sztucznych neuronów.

Metody klasyfikacji i rozpoznawania wzorców. Najważniejsze rodzaje klasyfikatorów

Uczenie się pojedynczego neuronu. Jeśli zastosowana zostanie funkcja bipolarna s y: y=-1 gdy z<0 y=1 gdy z>=0. Wówczas: W 1 x 1 + w 2 x 2 + = 0

Sieci neuronowe i ich ciekawe zastosowania. Autor: Wojciech Jamrozy III rok SMP / Informatyka

1. Logika, funkcje logiczne, preceptron.

Zastosowanie optymalizacji rojem cząstek (PSO) w procesie uczenia wielowarstwowej sieci neuronowej w problemie lokalizacyjnym

Zagadnienia optymalizacji i aproksymacji. Sieci neuronowe.

METODY INŻYNIERII WIEDZY

METODY INTELIGENCJI OBLICZENIOWEJ wykład 5

POPRAWA EFEKTYWNOŚCI METODY WSTECZNEJ

Inteligentne systemy decyzyjne: Uczenie maszynowe sztuczne sieci neuronowe

WYKORZYSTANIE SIECI NEURONOWYCH DO ODWZOROWANIA DEFORMACJI POWIERZCHNI NA TERENACH GÓRNICZYCH

Wstęp do sieci neuronowych laboratorium 01 Organizacja zajęć. Perceptron prosty

Projekt Sieci neuronowe

SZTUCZNA INTELIGENCJA

ZASTOSOWANIE SZTUCZNYCH SIECI NEURONOWYCH W ANALIZIE SYGNAŁÓW ELEKTROKARDIOGRAFICZNYCH

WYKŁAD 4 PLAN WYKŁADU. Sieci neuronowe: Algorytmy uczenia & Dalsze zastosowania. Metody uczenia sieci: Zastosowania

BIOCYBERNETYKA SIECI NEURONOWE. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Seminarium magisterskie. Dyskusja nad tematem pracy magisterskiej pisanej pod kierunkiem pani Dr hab. Małgorzaty Doman

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2012/2013

Wstęp do sieci neuronowych, wykład 03 Warstwy RBF, jednostka Adaline.

Transkrypt:

Politechnika Łódzka Katedra Informatyki Stosowanej Podstawy Sztucznej Inteligencji Laboratorium Ćwiczenie 2 Wykorzystanie środowiska Matlab do modelowania sztucznych sieci neuronowych Opracowali: Dr hab inż Jacek Kucharski Dr inż Piotr Urbanek

Część 1 Zapoznanie się z podstawowymi funkcjami do tworzenia perceptronu, neuronu liniowego, sieci neuronów z warstwami ukrytymi 1 Tworzenie perceptronu za pomocą funkcji i metod środowiska MATLAB Modelowany perceptron przedstawiony na rys1 Rys1 Model perceptronu o R-wejściach oraz unipolarną funkcją aktywacji Do tworzenia pojedynczego perceptronu pokazanego na rys 1 lub sieci perceptronów służy funkcja newp (w wersji 2007b) lub perceptron (we współczesnych wersjach Matlaba) Wywołuje się ją następująco: P = [0 2]; T = [0 1]; net = newp(p,t); gdzie: P wektor uczący, T wektor wzorcowy Dla tak zdefiniowanych wektorów P i T perceptron będzie miał jedno wejście i jedno wyjście Po wywołaniu funkcji newp tworzony jest w przestrzeni roboczej obiekt net, którego własności podzielone na wyszczególnione klasy można odczytać wywołując jego nazwę (net) net = Neural Network object: architecture: numinputs: 1 numlayers: 1 biasconnect: [1] inputconnect: [1]

layerconnect: [0] outputconnect: [1] numoutputs: 1 (read-only) numinputdelays: 0 (read-only) numlayerdelays: 0 (read-only) subobject structures: inputs: {1x1 cell} of inputs layers: {1x1 cell} of layers outputs: {1x1 cell} containing 1 output biases: {1x1 cell} containing 1 bias inputweights: {1x1 cell} containing 1 input weight layerweights: {1x1 cell} containing no layer weights functions: adaptfcn: 'trains' dividefcn: (none) gradientfcn: 'calcgrad' initfcn: 'initlay' performfcn: 'mae' plotfcns: {'plotperform','plottrainstate'} trainfcn: 'trainc' parameters: adaptparam: passes divideparam: (none) gradientparam: (none) initparam: (none) performparam: (none) trainparam: show, showwindow, showcommandline, epochs, goal, time weight and bias values: IW: {1x1 cell} containing 1 input weight matrix LW: {1x1 cell} containing no layer weight matrices b: {1x1 cell} containing 1 bias vector other: name: '' userdata: (user information) Jest to najprostszy sposób zdefiniowania sieci perceptronowej Drugim jest wywołanie funkcji newp z następującymi parametrami:

newp([wart_min wart_maks;wart_min wart_maks; ], liczba_neuronów) Gdzie: wart_min, wart_maks- spowiedziewane zakresy poszczególnych wejść perceptronu, Liczba_neuronów liczba perceptronów w sieci Zatem definicja net = newp([-1 1;-1 1],1) oznacza jeden perceptron o dwóch wejściach, których wartości zmieniają się w granicach [-1 1] Zatem program wykorzystujący sieć perceptronową do klasyfikacji dwóch zbiorów mógłby mieć następującą postać: P = [ -05-05 +03-01; -05 +05-05 +10]; Wektor uczący T = [1 1 0 0]; Wektor wzorcowy plotpv(p,t); Rysowanie punktów na płaszczyźnie kartezjańskiej net = newp([-1 1;-1 1],1); Def perceptronu plotpv(p,t); netadaptparampasses = 3; 3 pętle doboru wag i przesunięcia net = adapt(net,p,t); Dobór wag i przesunięcia wagi=netiw{1,1} przesuniecie=netb{1} Wyświetlenie wartości wag i przesunięcia plotpc(netiw{1},netb{1}); Rysowanie wag perceptronu p = [07; 12]; Zdefiniowanie punktu sprawdzającego a = sim(net,p); Sprawdzenie działania nauczonego perceptronu 2 Modelowanie neuronu z liniową funkcją aktywacji (ADALINE) Przykładowy schemat neuronu pokazuje rys2 Rys 2 Przykładowy neuron dwuwejściowy z liniową funkcję aktywacji Neuron taki może oprócz (podobnie jak perceptron) być wykorzystany do klasyfikacji zbiorów na płaszczyźnie kartezjańskiej przedstawionej na rys 3

Rys3 Klasyfikacja punktów na płaszczyźnie Do utworzenia neuronu z liniową funkcją aktywacji służy polecenie newlin Przykładowy skrypt realizujący tworzenie neuronu liniowego, odczyt oraz ręczną zmianę wag oraz symulację jego działania net = newlin([-1 1; -1 1],1); %Tworzenie neuronu z liniową funkcją aktywacji W = netiw{1,1} %Odczyt wartości początkowych wag b = netb{1} %Odczyt wartości początkowych przesunięcia netiw{1,1} = [2 3]; %Przykład ręcznej zmiany wartości wag netb{1} = -4; % Przykład ręcznej zmiany wartości przesunięcia p = [5; 6]; %Wartość współrzędnych wektora wejściowego a = sim(net,p) %Symulacja działania pojedynczego neuronu z liniową funkcją aktywacji Neuron ADALINE może służyć do linearyzacji funkcji nieliniowych Algorytm uczenia jest następujący: 1 x1 w1 b x2 x3 w2 w3 S s 1-1 y xn wn t 1 wt xt w S - + d Gdzie współczynnik uczenia neuronu - błąd między wzorcem a wyjściem sieci =d-s Przykładowy skrypt realizujący uczenie neuronu funkcji liniowej: clear; clc; % Definiowanie wektorów 1 elementowych, kolumnowych P = [ 10 20 30;

40 50 60]; T = [05 10-10]; % Tworzenie neuronu liniowego minimalizującego sumę kwadratów błędów % pomiędzy odpowiedzią neuronu Y a wzorcem uczącym lr=01; %współczynnik uczenia parametr dobierany net = newlin([0 10;0 10],1,[0],lr); nettrainparamshow = 50; % Częstotliwość odświeżania wyników uczenia na ekranie nettrainparamepochs = 1000; % Maksymalna liczba epok nettrainparamgoal = 0001; % Wartość błędu średniokwadratowego pomiędzy wzorcem a wyjściem sieci [net,tr,y] = train(net,p,t); %Trening sieci Y1=sim(net,[15;2]); Zadanie do wykonania: W powyższym skrypcie zdefiniowano 3 różne punkty na płaszczyźnie odpowiadające trzem różnym klasom [05 1-1] Zaobserwować, czy neuron ADALINE poprawnie uczy się odwzorowania trzech powyższych klas? Opisać w sprawozdaniu wpływ wartości współczynnika uczenia lr na jakość uczenia Opisać spostrzeżenia NAUKA SIECI NEURONOWEJ UCZONEJ ALGORYTMEM WSTECZNEJ PROPAGACJI BŁĘDÓW Uczenie sztucznej sieci neuronowej bardziej skomplikowanych przebiegów wymaga utworzenia sieci uwarstwionej z odpowiednią liczbą neuronów w warstwie ukrytej oraz odpowiednią liczbą wyjść W poniższym skrypcie utworzono sztuczną sieć neuronową z 201 wejściami, 20 neuronami w warstwie ukrytej oraz jednym wyjściem Sieć taka posiada zdolność generalizacji przebiegów nieliniowych, okresowych itp Schemat sieci wielowarstwowej przedstawia rysunek 5

Rys 5 Schemat SSN zawierającej 3 wejścia, warstwę ukrytą (2 neurony) oraz warstwę wyjściową Przykładem wykorzystania sieci wielowarstwowej jest generalizacja dowolnie skomplikowanego przebiegu clear; clc; % Definiowanie wektorów 1 elementowych, kolumnowych P=[-1:001:1]; T=5+sin(2*pi*3*P); % Definiowanie sieci wielowarstwowej uczonej metodą wstecznej propagacji % błędów %Uczenie metodą największego spadku, 3 neurony w warstwie ukrytej LN=3; %Liczba neuronów net = newff(p,t,ln,{},'traingd'); % Definiowanie parametrów procesu uczenia - 300 epok, dopuszczalny błąd % 1e-5, wsp uczenia 005 nettrainparamshow = 50; nettrainparamlr = 005; nettrainparamepochs = 300; nettrainparamgoal = 1e-5; y = sim(net,p); blad=t-y; plot(blad);

% Po procesie uczenia net = train(net,p,t); % Trening sieci y1=sim(net,p); figure; plot(t,'b'); hold on; plot(y1,'r--'); Zadania do wykonania: 1 Sprawdzić sprawność uczenia sieci obliczając błąd średniokwadratowy (mse) dla różnej liczby neuronów (LN) w warstwie ukrytej Przyjąć wartość początkową LN=5 2 Dla danej liczby neuronów LN obliczyć mse dla dwóch algorytmów minimalizacji błędu wyjściowego sieci dla metody największego spadku (f traingd ) z metodą Levenberga-Marquardt a (f trainlm ) 3 Opisać wnioski z doświadczenia