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

Podobne dokumenty
ZACHODNIOPOMORSKI UNIWERSYTET TECHNOLOGICZNY W SZCZECINIE

Zastosowania sieci neuronowych

Sztuczne siei neuronowe - wprowadzenie

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

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

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

Zastosowania sieci neuronowych

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

Politechnika Warszawska

Podstawy Sztucznej Inteligencji (PSZT)

Uczenie sieci neuronowych i bayesowskich

S O M SELF-ORGANIZING MAPS. Przemysław Szczepańczyk Łukasz Myszor

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.

Wstęp do sztucznych sieci neuronowych

Temat: Sieci neuronowe oraz technologia CUDA

Instrukcja realizacji ćwiczenia

Algorytmy sztucznej inteligencji

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

Podstawy Sztucznej Inteligencji

Identyfikacja obiektów dynamicznych za pomocą sieci neuronowych

IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ

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

ĆWICZENIE 5: Sztuczne sieci neuronowe

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

Sztuczne sieci neuronowe

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

Sztuczne sieci neuronowe i sztuczna immunologia jako klasyfikatory danych. Dariusz Badura Letnia Szkoła Instytutu Matematyki 2010

Sieci neuronowe w Statistica

Metody Sztucznej Inteligencji II

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

Zagadnienia optymalizacji i aproksymacji. Sieci neuronowe.

Sieć Hopfielda. Sieci rekurencyjne. Ewa Adamus. ZUT Wydział Informatyki Instytut Sztucznej Inteligencji i Metod Matematycznych.

Sieci neuronowe w Statistica. Agnieszka Nowak - Brzezioska

Widzenie komputerowe

Elementy inteligencji obliczeniowej

Sieć przesyłająca żetony CP (counter propagation)

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

METODY INTELIGENCJI OBLICZENIOWEJ wykład 5

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

I EKSPLORACJA DANYCH

Wielowarstwowy perceptron jako klasyfikator

Podstawy sztucznej inteligencji

Elementy kognitywistyki II: Sztuczna inteligencja. WYKŁAD X: Sztuczny neuron

Dokumentacja Końcowa

Wprowadzenie do teorii systemów ekspertowych

Oprogramowanie Systemów Obrazowania SIECI NEURONOWE

Inteligentne systemy decyzyjne: Uczenie maszynowe sztuczne sieci neuronowe

ALGORYTMY SZTUCZNEJ INTELIGENCJI

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

Sztuczne sieci neuronowe (SNN)

Aproksymacja danych doświadczalnych z badań trójosiowego ściskania gruntu przy użyciu perceptronu wielowarstwowego

Inteligentne systemy informacyjne

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

Celem tych ćwiczeń jest zapoznanie się z klasyfikacją za pomocą sieci neuronowych.

Inteligentne systemy decyzyjne: Uczenie maszynowe sztuczne sieci neuronowe

Inteligentne systemy przeciw atakom sieciowym

Badacze zbudowali wiele systemów technicznych, naśladujących w komputerze ludzki mózg. Najbardziej pożyteczne okazały się sieci neuronowe.

wiedzy Sieci neuronowe

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

KONSPEKT LEKCJI MATEMATYKI (2 LEKCJE) W III KLASIE GIMNAZJUM OPRACOWAŁA RENATA WOŁCZYŃSKA

Budowa sztucznych sieci neuronowych do prognozowania. Przykład jednostek uczestnictwa otwartego funduszu inwestycyjnego

Projekt Sieci neuronowe

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

Budowa i własności. sztucznych neuronów i sieci

1. Logika, funkcje logiczne, preceptron.

HAŁASU Z UWZGLĘDNIENIEM ZJAWISK O CHARAKTERZE NIELINIOWYM

Sieci neuronowe jako sposób na optymalizacje podejmowanych decyzji. Tomasz Karczyoski Wydział W-08 IZ

x 1 x 2 x 3 x n w 1 w 2 Σ w 3 w n x 1 x 2 x 1 XOR x (x A, y A ) y A x A

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

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

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

SIEĆ NEURONOWA DO OCENY KOŃCOWEJ PRZEDSIĘWZIĘCIA (PROJEKTU)

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

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

Optymalizacja optymalizacji

Ćwiczenie WPK Wielowarstwowy perceptron jako klasyfikator

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

Politechnika Lubelska

4 Zastosowanie metody aproksymacji relacji odwrotnej do rozwiązywania wybranych zagadnień

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

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

SIEĆ NEURONOWA JAKO NARZĘDZIE APROKSYMACJI I KLASYFIKACJI DANYCH. Jakub Karbowski Gimnazjum nr 17 w Krakowie

Elementy kognitywistyki II: Sztuczna inteligencja. WYKŁAD XI: Sztuczne sieci neuronowe

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

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

ELEMENTY SZTUCZNEJ INTELIGENCJI. Sztuczne sieci neuronowe

Zastosowania sieci neuronowych - automatyka identyfikacja sterowanie

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

Sztuczne sieci neuronowe

Wprowadzenie do Sieci Neuronowych Laboratorium 05 Algorytm wstecznej propagacji błędu

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

SIEĆ NEURONOWA DO OCENY KOŃCOWEJ PRZEDSIĘWZIĘCIA (PROJEKTU)

MODELOWANIE RZECZYWISTOŚCI

Podstawy sztucznej inteligencji

Uczenie sieci typu MLP

6. Perceptron Rosenblatta

Przykładowa analiza danych

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

Algorytmiczne sieci neuronowe idea działania, słabe i mocne strony

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

Transkrypt:

2 Rozdział 1 Sztuczne sieci neuronowe.

3 Sztuczna sieć neuronowa jest zbiorem prostych elementów pracujących równolegle, których zasada działania inspirowana jest biologicznym systemem nerwowym. Sztuczną sieć neuronową można wytrenować do wykonywania specyficznych funkcji poprzez dopasowywanie wartości (wag) połączeń pomiędzy elementami. Sieci neuronowe są trenowane do rozwiązywania złożonych problemów w wielu dziedzinach, takich jak rozpoznawanie wzorów, identyfikacja, klasyfikacja, rozpoznawanie mowy, itp. Zazwyczaj sztuczne sieci neuronowe wykorzystuje się do rozwiązywania problemów, które są trudne bądź niemożliwe do rozwiązania przez człowieka lub konwencjonalny komputer.

4 Zadanie 1 Dopasowywanie funkcji.

5 Tworzymy wektory uczące A oraz B: A=-5:0.1:5; B=tan(A); plot(a,b, -. ); (średnik postawiony na końcu wpisywanego polecenia powoduje, że wartość tego wyrażenia nie zostanie wyświetlona) Tworzymy dwuwarstwową sieć neuronową o nazwie neu składającą się z pięciu neuronów w warstwie wejściowej oraz jednego neuronu w warstwie wyjściowej: neu=newff([-5 5],[5 1],{ tansig purelin }); (tansig, logsig oraz purelin są to najczęściej stosowane funkcje przejścia w sieciach z propagacją wsteczną. Jeśli jako funkcję przejścia w ostatniej warstwie użyjemy tansig lub logsig, które są funkcjami sigmoidalnymi, to dane wyjściowe będą ograniczone do niewielkiego zakresu. Jeśli użyjemy funkcji purelin, która jest funkcją liniową, to dane wyjściowe mogą przyjąć dowolną wartość.) Nadajemy wagom sieci przypadkowe wartości: neu=init(neu); Sprawdzamy odpowiedź sieci niewytrenowanej na wektor wejściowy. Wykres opisujemy 5 1 siec niewytrenowana : C=sim(neu,A); title( 5 1 - siec niewytrenowana ) Określamy maksymalną liczbę epok: neu.trainparam.epochs=5; Trenujemy sieć: neu=train(neu,a,b); Sprawdzamy odpowiedź wytrenowanej sieci na wektor wejściowy na wykresie. Wykres opisujemy 5 1 5 epok : C=sim(neu,A); title( 5 1-5 epok ) Oceniamy dokładność dopasowania, nie zamykamy wykresu! Ponownie nadajemy wagom sieci przypadkowe wartości, a następnie zwiększamy maksymalną liczbę epok do 25: neu=init(neu); neu.trainparam.epochs=25;

6 Ponownie trenujemy sieć, a następnie sprawdzamy jej odpowiedź na wektor wejściowy. Na podstawie wykresu oceniamy dokładność dopasowania. neu=train(neu,a,b); C=sim(neu,A); title( 5 1-25 epok ) Powtarzamy procedurę dla 50, 100, 250 oraz 500 epok, wyciągamy początkowe wnioski. Czyścimy pamięć ze wszystkich danych: clear Tworzymy identyczne jak poprzednio wektory uczące A oraz B: A=-5:0.1:5; B=tan(A); plot(a,b, -. ); Tworzymy dwuwarstwową sieć neuronową o nazwie neo składającą się z 20 neuronów w warstwie wejściowej oraz jednego neuronu w warstwie wyjściowej: neo=newff([-5 5],[20 1],{ tansig purelin }); Nadajemy wagom sieci przypadkowe wartości: neo=init(neo); Sprawdzamy odpowiedź sieci niewytrenowanej na wektor wejściowy: C=sim(neo,A); title( 20 1 - siec niewytrenowana ) Określamy maksymalną liczbę epok: neo.trainparam.epochs=5; Trenujemy sieć: neo=train(neo,a,b); Sprawdzamy odpowiedź wytrenowanej sieci na wektor wejściowy na wykresie: C=sim(neo,A); title( 20 1-5 epok ) Oceniamy dokładność dopasowania, nie zamykamy wykresu! Ponownie nadajemy wagom sieci przypadkowe wartości, a następnie zwiększamy maksymalną liczbę epok do 25:

7 neo=init(neo); neo.trainparam.epochs=25; Ponownie trenujemy sieć, a następnie sprawdzamy jej odpowiedź na wektor wejściowy. Na podstawie wykresu oceniamy dokładność dopasowania. neo=train(neo,a,b); C=sim(neo,A); title( 20 1-25 epok ) Powtarzamy procedurę dla 50, 100, 250 oraz 500 epok, wyciągamy wnioski. Czyścimy pamięć ze wszystkich danych: clear Tworzymy identyczne jak poprzednio wektory uczące A oraz B: A=-5:0.1:5; B=tan(A); plot(a,b, -. ); Tworzymy trójwarstwową sieć neuronową o nazwie ne3 składającą się z 10 neuronów w pierwszej warstwie, 10 w drugiej warstwie oraz jednego neuronu w warstwie wyjściowej: ne3=newff([-5 5],[10 10 1],{ tansig tansig purelin }); Nadajemy wagom sieci przypadkowe wartości: ne3=init(ne3); Sprawdzamy odpowiedź sieci niewytrenowanej na wektor wejściowy: C=sim(ne3,A); title( 10 10 1 - siec niewytrenowana ) Określamy maksymalną liczbę epok: ne3.trainparam.epochs=5; Trenujemy sieć: ne3=train(ne3,a,b); Sprawdzamy odpowiedź wytrenowanej sieci na wektor wejściowy na wykresie: C=sim(ne3,A); title( 10 10 1-5 epok ) Oceniamy dokładność dopasowania, nie zamykamy wykresu!

8 Ponownie nadajemy wagom sieci przypadkowe wartości, a następnie zwiększamy maksymalną liczbę epok do 25: ne3=init(ne3); ne3.trainparam.epochs=25; Ponownie trenujemy sieć, a następnie sprawdzamy jej odpowiedź na wektor wejściowy. Na podstawie wykresu oceniamy dokładność dopasowania. ne3=train(ne3,a,b); C=sim(ne3,A); title( 10 10 1-25 epok ) Powtarzamy procedurę dla 50, 100, 250 oraz 500 epok, wyciągamy wnioski.

9 Zadanie 2 Rozpoznawanie znaków.

10 Wywołujemy definicje liter alfabetu oraz ich reprezentacje: [alphabet,targets]=prprob; Przykład reprezentacji litery A Tworzymy nową sieć neuronową z 35 neuronami w warstwie wejściowej (ilość pól mogących tworzyć kształt litery) oraz 26 neuronami w warstwie wyjściowej. W warstwie ukrytej umieścimy na początek 10 neuronów. net=newff(alphabet,targets,10,{ tansig tansig }); Definiujemy liczbę epok: net.trainparam.epochs=250; Trenujemy sieć: net.dividefcn=''; /apostrof x 2/ [net,tr]=train(net,alphabet,targets); Wywołujemy przykładową literę z alfabetu, może to być B: B=alphabet(:,2); Wyświetlamy ją: plotchar(b); Odpytujemy sieć, aby rozpoznała wybraną literę i wyświetliła swoją odpowiedź: y=sim(net,b); y=compet(y); answer=find(compet(y)==1); ; plotchar(alphabet(:,answer)); Powtarzamy to samo dla innej litery, np. X: X=alphabet(:,24); ; plotchar(x); y=sim(net,x); y=compet(y);

11 answer=find(compet(y)==1); ; plotchar(alphabet(:,answer)); Czyścimy obszar roboczy ze zbędnych danych: clear; Oceniamy jakość rozpoznawania liter przez sieć, a następnie zwiększamy ilość neuronów w warstwie ukrytej i powtarzamy całą procedurę. Powtórzenie procedury należy wykonać dla 50 oraz 75 neuronów w warstwie ukrytej.