Oprogramowanie Systemów Obrazowania SIECI NEURONOWE

Podobne dokumenty
sieci jednowarstwowe w MATLABie LABORKA Piotr Ciskowski

Zastosowania sieci neuronowych

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

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

Metody Sztucznej Inteligencji II

Zastosowania sieci neuronowych

Uczenie sieci typu MLP

IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ

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

Projekt Sieci neuronowe

Lekcja 5: Sieć Kohonena i sieć ART

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

Sieci neuronowe w Statistica

Uczenie sieci radialnych (RBF)

Optymalizacja ciągła


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

Algorytm grupowania danych typu kwantyzacji wektorów

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

Testowanie modeli predykcyjnych

Inteligentne systemy decyzyjne: Uczenie maszynowe sztuczne sieci neuronowe

Politechnika Warszawska

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

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

Podstawy sztucznej inteligencji

Sieci neuronowe w Statistica. Agnieszka Nowak - Brzezioska

wiedzy Sieci neuronowe

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

Inteligentne systemy przeciw atakom sieciowym

Sztuczne sieci neuronowe

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

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

Podstawy OpenCL część 2

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

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

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

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

Instrukcja realizacji ćwiczenia

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.

Pattern Classification

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

I EKSPLORACJA DANYCH

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

ALGORYTMY SZTUCZNEJ INTELIGENCJI

Uczenie sieci neuronowych i bayesowskich

1. Logika, funkcje logiczne, preceptron.

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

Systemy uczące się Lab 4

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

Sztuczne sieci neuronowe (SNN)

Matlab podstawy + testowanie dokładności modeli inteligencji obliczeniowej

Elementy inteligencji obliczeniowej

Temat: Sieci neuronowe oraz technologia CUDA

Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I

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

Zastosowania sieci neuronowych - automatyka identyfikacja sterowanie

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych

6. Perceptron Rosenblatta

Sztuczne siei neuronowe - wprowadzenie

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

Przykładowa analiza danych

ZACHODNIOPOMORSKI UNIWERSYTET TECHNOLOGICZNY W SZCZECINIE

ALGORYTM RANDOM FOREST

Wstęp do sieci neuronowych, wykład 07 Uczenie nienadzorowane cd.

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

Jakość uczenia i generalizacja

PętlaforwOctave. Roman Putanowicz 13 kwietnia 2008

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

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

Widzenie komputerowe

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

Laboratorium MATLA. Ćwiczenie 4. Debugowanie. Efektywności kodu. Wektoryzacja.

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

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

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

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

Algorytmy sztucznej inteligencji

Elementy Sztucznej Inteligencji. Sztuczne sieci neuronowe cz. 2

Systemy uczące się wykład 2

Hierarchiczna analiza skupień

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

ĆWICZENIE 5: Sztuczne sieci neuronowe

Optymalizacja systemów

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

Elementy kognitywistyki III: Modele i architektury poznawcze

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

Wstęp do sieci neuronowych, wykład 9 Sieci rekurencyjne. Autoasocjator Hopfielda

Podstawy Sztucznej Inteligencji

Sztuczne sieci neuronowe. Krzysztof A. Cyran POLITECHNIKA ŚLĄSKA Instytut Informatyki, p. 311

1. Eliminuje się ze zbioru potencjalnych zmiennych te zmienne dla których korelacja ze zmienną objaśnianą jest mniejsza od krytycznej:

Sztuczne sieci neuronowe. Krzysztof A. Cyran POLITECHNIKA ŚLĄSKA Instytut Informatyki, p. 335

Zastosowania sieci neuronowych predykcja - giełda

Teoria informacji i kodowania Ćwiczenia Sem. zimowy 2016/2017

Adrian Horzyk

wiedzy Sieci neuronowe (c.d.)

Identyfikacja obiektów dynamicznych za pomocą sieci neuronowych

Wprowadzenie do uczenia maszynowego

46 Olimpiada Biologiczna

Egzamin z Metod Numerycznych ZSI, Egzamin, Gr. A

Wykład z Technologii Informacyjnych. Piotr Mika

Transkrypt:

SIECI NEURONOWE Przedmiotem laboratorium jest stworzenie algorytmu rozpoznawania zwierząt z zastosowaniem sieci neuronowych w oparciu o 5 kryteriów: ile zwierzę ma nóg, czy żyje w wodzie, czy umie latać, czy ma pióra, czy jest jajorodne, Sieć powinna rozpoznawać czy jest to ptak, ssak, czy ryba, Sieć będzie składała się z 5 wejść i 3 neuronów. Zadaniem każdego neuronu jest rozpoznawanie innej grupy zwierząt: I- ssaki, II-ptaki, III-ryby. Cechy grup zwierząt uwzględnione w toku uczenia: ssak ma 4 nogi; czasem żyje w wodzie, ale nie jest to dla niego typowe (foka, delfin), czasem umie latać (nietoperz), ale również nie jest to dla niego typowe; nie ma piór; jest żyworodny i jest to dość ważne; ptak ma 2 nogi; nie żyje w wodzie (co najwyżej na wodzie); zwykle umie latać i jest to bardzo ważna jego cecha; jak również ta, że ma pióra; oraz że jest jajorodny; ryba nie ma nóg (płetwy się nie liczą); żyje w wodzie i jest to jej najważniejsza cecha; nie umie latać (choć niektóre próbują); nie jest pokryta piórami; jest zwykle jajorodna, ale nie jest to aż tak ważne, jak u ptaków 1. Sieć jednowarstwowa: Rysunek 1 Działanie sieci neuronowej dla k-ego neuronu (np. w3,2 oznacza wagę neuronu 3 do wejścia 2) Zadanie 1 Inicjalizacja sieci: Napisz funkcję, która utworzy macierz wag jednowarstwowej sieci o S wejściach i K wyjściach (neuronach w warstwie), wypełnioną liczbami losowymi z przedziału [- 0.1;0.1], stanowiącymi początkowe wagi sieci.

Wektor wejść:: x 1 X = [ ] x S Sx1 Wektor wag wejściowych dla wybranego i-go neuronu: w 1 W i = [ w S ]Sx1 Macierz wag sieci jednowarstwowej o wymiarach SxK W toku nauki funkcja celu (średnia kwadratów błędów na wyjściach sieci) powinna przyjmować najmniejszą wartość. >>function [ W ] = init1 ( S, K ) >>W=rand( S, K ) * 0.2-0.1 Wywołaj funkcję w głównym oknie Matlaba z parametrami 5 i 3. Zadanie 2. Symulacja działania sieci Napisz funkcję symulującą działanie sieci jednowarstwowej, która obliczy wyjście Y jednowarstwowej sieci o macierzy wag W jako odpowiedź na wektor sygnałów wejściowych X podany na jej wejście. Funkcja aktywacji ma kształt sigmoidalny: >> function [ Y ] = oblicz ( W, X ) >> beta = 5 ; >> U = W * X ; >> Y = 1./ ( 1 + exp ( -beta * U ) ) ; Zadanie 3 Uczenie sieci Na wstępie należy napisać skrypt definiujący ciąg uczący: wejścia i wyjścia sieci. %% CIĄG UCZĄCY:%%

Ciąg uczący składa się z dwóch macierzy: P - zestawy wejść kolejnych przykładów uczących się T - odpowiadające przykładom wartości wyjść Jeden przykład stanowi para kolumn o tych samych indeksach z macierzy P i T. Pierwsze wejście jest typu ilościowego (nogi), kolejne są typu logicznego w praktyce najczęściej przyjmują wartości boolean (prawda/fałsz), tu wyjście poza zakres ma podkreślić znaczenie poszczególnych cech. % przykłady: 1------2-----3 % wejścia sieci: P = [ 4 2-1 ; % we 1 - ile ma nóg 0.01-1 3.5 ; % we 2 - czy żyje w wodzie 0.01 2 0.01 ; % we 3 - czy umie latać -1 2.5-2 ; % we 4 - czy ma pióra -1.5 2 1.5 ] % we 5 - czy jest jajorodne Za rozpoznaną klasę można uznać tę przypisaną do neuronu, który najsilniej zareagował na sygnał wejściowy (typ kodowania 1 z N, rzeczywiste wartości będą zbliżone do poniższych) % przykłady: 1------2-----3 % żądane wyjścia sieci: T = [ 1 0 0 ; % ssak 0 1 0 ; % ptak 0 0 1 ] % ryba %%Wykorzystanie uprzednio napisanych funkcji%% %inicjacja sieci losowymi wagami Wprzed = init1 ( 5, 3 ) %porównanie odowiedzi sieci przed i po uczeniu Yprzed = oblicz( Wprzed, P ) Ypo = oblicz( Wpo, P ) %%UCZENIE SIECI%% Wpo = ucz1 ( Wprzed, P, T, 100 ) Uruchom powyższy skrypt test1, oznacz 2 ostanie linijki jako komentarz Na wejście podawana jest cała macierz P (wszystkie przykłady są sprawdzane równocześnie). Wynikiem działania funkcji oblicz jest macierz, której kolumny zawierają odpowiedzi sieci na wszystkie trzy przykłady i którą można porównać z macierzą żądanych odpowiedzi T (wykorzystanie właściwości sieci jednowarstwowej bez progu wejściowego).

Zadanie 3 Uczenie sieci Napisz funkcję, która będzie uczyć sieć jednowarstwową o danej macierzy wag W przez zadaną liczbę epok n na ciągu uczącym podanym w postaci macierzy przykładów P (wejścia) i T (żądane wyjścia). Sieć zbudowana jest z neuronów o sigmoidalnej funkcji aktywacji. Wynikiem działania funkcji powinna być macierz wag nauczonej sieci. N Uczenie sieci polega na wielokrotnym pokazywaniu jej kolejnych przykładów z ciągu uczącego; w 1 cyklu wyznaczana jest odpowiedź sieci, porównywana następnie z żądaną odpowiedzią dla danego przykładu (zamieszczoną w ciągu uczącym). Różnica (błąd sieci) wykorzystywana jest by ustalić poprawki wszystkich wag sieci (algorytm uczenia), które dodaje się do wag (w następnych krokach, gdy sieci zostanie przedstawiony ten sam przykład, jej odpowiedź będzie bliższa żądanej odpowiedzi z ciągu uczącego) Pojedynczy krok uczenia, przedstawiony obejmuje: wylosowanie numeru przykładu do pokazania w danym kroku,podanie przykładu na wejścia sieci i obliczenie jej wyjść czyli wybranie odpowiedniej kolumny z macierzy P zbioru uczącego i obliczenie wartości wyjść sieci, porównanie wyjść sieci z żądanymi wyjściami dla danego przykładu czyli z odpowiednią kolumną macierzy T, obliczenie macierzy poprawek wag, zgodnie z wybranym algorytmem uczenia, dodanie macierzy poprawek do macierzy wag sieci. Zasady korekcji wag: Wagi zmieniane są tym silniej, im większy błąd został popełniony na danym neuronie. (wagi tych neuronów, które nie popełniły błędów na danym przykładzie, nie są poprawiane). Sieć sama przerywa uczenie, gdy jest już dobrze wytrenowana Im większy sygnał pojawił się na wejściu, do którego prowadzi dana waga, tym bardziej jest ona poprawiana. Jeśli sygnał wyjściowy był poprawny, to i poprawka danej wagi będzie niewielka. Jeśli zaś był błędny, to ten sygnał wejściowy, który był większy od innych, miał większy wpływ na powstanie tego błędu. Stąd waga prowadząca do wejścia, na którym ten sygnał się pojawił, powinna być bardziej skorygowana. Korekcja wagi w k,s: dw k,s = wspucz d k k s wspucz-współczynnik uczenia (wspucz<0, łagodzenie wpływu korekcji wagi) function [ Wpo ] = ucz1 ( Wprzed, P, T, n ) liczbaprzykladow = size ( P, 2 ) ; W = Wprzed ; wspucz = 0.1 ; for i = 1 : n,

% losuj numer przykładu nrprzykladu = ceil ( rand(1) * liczbaprzykladow ) ; % lub: los = randperm ( liczbaprzykladow ) ; % nrprzykladu = los ( 1 ) ; % podaj przykład na wejścia i oblicz wyjścia X = P ( :, nrprzykladu ) ; Y = oblicz( W, X ) ; % oblicz błędy na wyjściach D = T ( :, nrprzykladu ) - Y ; % oblicz poprawki wag dw = wspucz * X * D ; % dodaj poprawki do wag W = W + dw ; end % i to wszystko n razy Wpo = W ; Ponownie uruchom skrypt test1, odznaczając komentarz w 2 ostatnich linijkach Wyniki: Analizując uzyskane wyniki odpowiedz jak sprawdzić czy sieć nauczyła się rozpoznawać zwierzęta?

Zadanie 4 Testowanie sieci O jakości sieci świadczy zdolność uogólniania zdobytej wiedzy na nowe przypadki danych wejściowych, nie widziane przez sieć podczas uczenia. 4.1 Sprawdź czy sieć rozpozna Ciebie jako ssaka? Przykładowa implementacja ja = [ 2 ; % mam dwie nogi 0 ; % słabo pływam 0 ; % rzadko latam 0 ; % brak piór 0 ] ; % jajorodność odp = oblicz ( Wpo, ja ) odp = 0.8039 0.1825 0.0335 4.2 Człowiek nietypowy czlowiek = [ 2 ; % ile ma nóg 0.2 ; % czy żyje w wodzie - M. Phelps 0.2 ; % czy umie latać - A. Małysz 0.1 ; % czy ma pióra - Winnetou 0 ] ; % czy jest jajorodne odp = oblicz( Wpo, czlowiek ) odp = 0.7215 0.1772 0.0372 4.3 Oceń krytycznie rezultaty (jakość rozpoznania) uzyskane w punktach 4.1 i 4.2 Przeprowadź analogicznie test dla strusia, nietoperza, delfina i dziobaka.