Sieci Neuronowe 2 Michał Bereta

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

Analiza danych OGÓLNY SCHEMAT. Dane treningowe (znana decyzja) Klasyfikator. Dane testowe (znana decyzja)

Sieci Neuronowe 1 Michał Bereta


Wykład 2: Uczenie nadzorowane sieci neuronowych - I

Neuron liniowy. Najprostsza sieć warstwa elementów liniowych

KURS STATYSTYKA. Lekcja 6 Regresja i linie regresji ZADANIE DOMOWE. Strona 1

Wykład 2: Uczenie nadzorowane sieci neuronowych - I

Wprowadzenie do Sieci Neuronowych Algorytm wstecznej propagacji błędu

Nowoczesne technk nformatyczne - Ćwczene 2: PERCEPTRON str. 2 Potencjał membranowy u wyznaczany jest klasyczne: gdze: w waga -tego wejśca neuronu b ba

Rozwiązywanie zadań optymalizacji w środowisku programu MATLAB

Zaawansowane metody numeryczne Komputerowa analiza zagadnień różniczkowych 1. Układy równań liniowych

Projekt 6 6. ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH CAŁKOWANIE NUMERYCZNE

Laboratorium ochrony danych

KRZYWA BÉZIERA TWORZENIE I WIZUALIZACJA KRZYWYCH PARAMETRYCZNYCH NA PRZYKŁADZIE KRZYWEJ BÉZIERA

( ) ( ) 2. Zadanie 1. są niezależnymi zmiennymi losowymi o. oraz. rozkładach normalnych, przy czym EX. i σ są nieznane. 1 Niech X

Zapis informacji, systemy pozycyjne 1. Literatura Jerzy Grębosz, Symfonia C++ standard. Harvey M. Deitl, Paul J. Deitl, Arkana C++. Programowanie.

Systemy Ochrony Powietrza Ćwiczenia Laboratoryjne

Neural networks. Krótka historia rozpoznawanie znaków alfanumerycznych.

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

WikiWS For Business Sharks

BADANIA OPERACYJNE. Podejmowanie decyzji w warunkach niepewności. dr Adam Sojda

) będą niezależnymi zmiennymi losowymi o tym samym rozkładzie normalnym z następującymi parametrami: nieznaną wartością 1 4

I. Elementy analizy matematycznej

Zastosowanie sieci neuronowych Kohonena do prognozowania obciążeń elektroenergetycznych

Analiza rodzajów skutków i krytyczności uszkodzeń FMECA/FMEA według MIL STD A

Nie istnieje ogólna recepta, każdy przypadek musi być rozważany indywidualnie!

SZACOWANIE NIEPEWNOŚCI POMIARU METODĄ PROPAGACJI ROZKŁADÓW

Wprowadzenie do Sieci Neuronowych Sieci rekurencyjne

Sztuczne sieci neuronowe

Zastosowania sieci neuronowych

METODA UNITARYZACJI ZEROWANEJ Porównanie obiektów przy ocenie wielokryterialnej. Ranking obiektów.

Nieeuklidesowe sieci neuronowe

Weryfikacja hipotez dla wielu populacji

Twierdzenie Bezouta i liczby zespolone Javier de Lucas. Rozwi azanie 2. Z twierdzenia dzielenia wielomianów, mamy, że

Diagnostyka układów kombinacyjnych

0 0,2 0, p 0,1 0,2 0,5 0, p 0,3 0,1 0,2 0,4

Ćwiczenie 10. Metody eksploracji danych

W praktyce często zdarza się, że wyniki obu prób możemy traktować jako. wyniki pomiarów na tym samym elemencie populacji np.

XXX OLIMPIADA FIZYCZNA ETAP III Zadanie doświadczalne

SYSTEMY UCZĄCE SIĘ WYKŁAD 15. ANALIZA DANYCH WYKRYWANIE OBSERWACJI. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska

6. ROŻNICE MIĘDZY OBSERWACJAMI STATYSTYCZNYMI RUCHU KOLEJOWEGO A SAMOCHODOWEGO

Metody sztucznej inteligencji Zadanie 3: (1) klasteryzacja samoorganizująca się mapa Kohonena, (2) aproksymacja sieć RBF.

TRANZYSTOR BIPOLARNY CHARAKTERYSTYKI STATYCZNE

Systemy Inteligentnego Przetwarzania wykład 3: sieci rekurencyjne, sieci samoorganizujące się

Wprowadzenie. Support vector machines (maszyny wektorów wspierających, maszyny wektorów nośnych) SVM służy do: Zalety metody SVM

5. OPTYMALIZACJA GRAFOWO-SIECIOWA

Statystyka Inżynierska

5. CHARAKTERYSTYKI CZĘSTOTLIWOŚCIOWE

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

dy dx stąd w przybliżeniu: y

Zaawansowane metody numeryczne

SZTUCZNA INTELIGENCJA

Pokazać, że wyżej zdefiniowana struktura algebraiczna jest przestrzenią wektorową nad ciałem

MATEMATYKA POZIOM ROZSZERZONY Kryteria oceniania odpowiedzi. Arkusz A II. Strona 1 z 5

Prawdopodobieństwo i statystyka r.

Kier. MTR Programowanie w MATLABie Laboratorium Ćw. 12

Proces narodzin i śmierci

Alternatywne metody grupowania i wizualizacji wykorzystujące sieci konkurencyjne

CAŁKOWANIE NUMERYCZNE całki pojedyncze

Analiza danych. Analiza danych wielowymiarowych. Regresja liniowa. Dyskryminacja liniowa. PARA ZMIENNYCH LOSOWYCH

IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ

Plan wykładu. Sztuczne sieci neuronowe. Neuronu dyskretny. Neuron dyskretny (perceptron prosty)

Wstęp do metod numerycznych Faktoryzacja SVD Metody iteracyjne. P. F. Góra

Sprawozdanie powinno zawierać:

Zestaw zadań 4: Przestrzenie wektorowe i podprzestrzenie. Liniowa niezależność. Sumy i sumy proste podprzestrzeni.

EKONOMETRIA I Spotkanie 1, dn

Procedura normalizacji

WPŁYW PARAMETRÓW DYSKRETYZACJI NA NIEPEWNOŚĆ WYNIKÓW POMIARU OBIEKTÓW OBRAZU CYFROWEGO

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

5. Pochodna funkcji. lim. x c x c. (x c) = lim. g(c + h) g(c) = lim

Badania sondażowe. Braki danych Konstrukcja wag. Agnieszka Zięba. Zakład Badań Marketingowych Instytut Statystyki i Demografii Szkoła Główna Handlowa

± Δ. Podstawowe pojęcia procesu pomiarowego. x rzeczywiste. Określenie jakości poznania rzeczywistości

D Archiwum Prac Dyplomowych - Instrukcja dla studentów

STATYSTYKA MATEMATYCZNA WYKŁAD 5 WERYFIKACJA HIPOTEZ NIEPARAMETRYCZNYCH

Funkcje i charakterystyki zmiennych losowych

KURS STATYSTYKA. Lekcja 1 Statystyka opisowa ZADANIE DOMOWE. Strona 1

65120/ / / /200

Minimalizacja globalna, algorytmy genetyczne i zastosowanie w geotechnice

3. ŁUK ELEKTRYCZNY PRĄDU STAŁEGO I PRZEMIENNEGO

Problem plecakowy (KNAPSACK PROBLEM).

Grupa: Elektrotechnika, wersja z dn Studia stacjonarne, II stopień, sem.1 Laboratorium Techniki Świetlnej

Diagonalizacja macierzy kwadratowej

Badanie współzależności dwóch cech ilościowych X i Y. Analiza korelacji prostej

Teoria niepewności pomiaru (Rachunek niepewności pomiaru) Rodzaje błędów pomiaru

SYSTEMY UCZĄCE SIĘ WYKŁAD 7. KLASYFIKATORY BAYESA. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska.

Oligopol dynamiczny. Rozpatrzmy model sekwencyjnej konkurencji ilościowej jako gra jednokrotna z pełną i doskonalej informacją

Modelowanie i obliczenia techniczne. Metody numeryczne w modelowaniu: Optymalizacja

Warszawa, 28 stycznia 2017 r., Blok tematyczny II Sztuczne sieci neuronowe (środowisko MATLAB i Simulink z wykorzystaniem Neural Network Toolbox),

Wykład IX Optymalizacja i minimalizacja funkcji

System Przeciwdziałania Powstawaniu Bezrobocia na Terenach Słabo Zurbanizowanych SPRAWOZDANIE Z BADAŃ Autor: Joanna Wójcik

Wyznaczenie promienia hydrodynamicznego cząsteczki metodą wiskozymetryczną. Część 2. Symulacje komputerowe

SZTUCZNA INTELIGENCJA

Hipotezy o istotności oszacowao parametrów zmiennych objaśniających ˆ ) ˆ

Analiza porównawcza rozwoju wybranych banków komercyjnych w latach

Stanisław Cichocki Natalia Nehrebecka. Zajęcia 4

WYZNACZANIE WSPÓŁCZYNNIKA LEPKOŚCI CIECZY METODĄ STOKESA

Ćwiczenie 2. Parametry statyczne tranzystorów bipolarnych

Podstawy teorii falek (Wavelets)

ZAJĘCIA X. Zasada największej wiarygodności

Transkrypt:

Zagadnena Sztucznej Intelgencj laboratorum Sec Neuronowe 2 Mchał Bereta Cele laboratorum: zapoznane sę z nowym rodzajam sec neuronowych: secam Kohonena oraz secam radalnym porównane sec Kohonena oraz sec welowarstwowego perceptronu w probleme klasyfkacj psma odręcznego zastosowane sec neuronowej do aproksymacj funkcj Samoorganzujące sę sec Kohonena Sec Kohonena (zwane też SOM Self Orgenzng Maps) są przykładem sec uczonych bez nadzoru (bez nauczycela). Oznacza to, że sec ne są prezentowane wzorcowe odpowedz a jedyne dane wejścowe. Neurony w sec Kohonena są uporządkowane względem sebe przestrzenne. Często realzowane jest to za pomocą satk dwuwymarowej. Zostało to pokazane na rysunku 1: Rysunek 1 Sec Kohonena Można zatem mówć o sąsedztwe danego neuronu. Sąsedztwem tym są nne neurony leżące blsko danego neuronu w przestrzen wyznaczonej przez zastosowane uporządkowane neuronów. Uczene polega na wyznaczenu zwycęskego neuronu modyfkacj jego wektora wag w w kerunku prezentowanego wektora wejścowego x. Zwycęskm neuronem jest ten neuron, którego wag synaptyczne są najbardzej zblżone do prezentowanego wektora danych wejścowych. Zatem wektor wag w w zwycęskego neuronu wyznacza sę za pomocą: d( x, w w ) = mn d( x, w ) 1 n Norma d może by dowolną normą (normą Eukldesową, loczynem skalarnym td.). W trakce uczena zwycęzca oraz jego sąsedztwo podlega adaptacj wag zgodne z regułą Kohonena: w ( k + 1) = w ( k) + η ( k)[ x w ( k)] Parametr eta krok uczena, przeważne malejący w trakce kolejnych teracj. W przypadku danych wejścowych o małych wymarach stneje potrzeba normalzacj wektorów wejścowych.

Algorytm WTA(Wnner Takes All) W metodze tej tylko zwycęsk neuron ma prawo adaptacj swoch wag. Aby unknąć przypadku, w którym nektóre neurony ne mają szans wygrać z najslnejszym neuronam, często wprowadza sę mechanzm zmęczena. Polega on na tym, że zwycęsk neuron pauzuje na pewen czas ne borąc udzału w konkurencj, dając tym samym szanse na wygrane nnym neuronom (Algorytm CWTA Conscence Wnner Takes All) Algorytm WTM Wnner Takes Most W metodze tej oprócz wag zwycęskego neuronu zmane polegają równeż wag jego sąsadów według reguły: w ( k + 1) = w ( k) + η ( k) G(, x)[ x w ( k)] gdze G(x,) jest funkcją sąsedztwa. W klasycznym algorytme Kohonena funkcja G(x,) zdefnowana jest jako: G(, x) = 1 0 dla dla d(, w) λ d(, w) > λ gdze d(,w) jest odległoścą pomędzy neuronam w przestrzen sec tzn. na satce (a ne w przestrzen danych wejścowych!), a lambda jest promenem sąsedztwa malejącym do zera w trakce nauk. Jest to tzw. sąsedztwo prostokątne. Innym rodzajem sąsedztwa jest sąsedztwo gaussowske: 2 d (, w) G(, x) = exp( ) 2 2λ W tym przypadku stopeń aktywacj neuronów jest zróżncowany w zależnośc od wartośc funkcj Gaussa. Sąsedz neuronu zwycęskego są modyfkowan w różnym stopnu. Często stosowanym podejścem jest wyróżnene dwóch faz uczena sec Kohonena: - wstępną (ang. orderng phase), podczas której modyfkacj ulegają wag neuronu zwycęzcy oraz jego sąsedztwa malejącego z czasem - końcową (ang. convergence phase), podczas której modyfkowane są wag jedyne neuronu zwycęzcy. Mają one na celu najperw wstępne nauczene sec, a następne jej dostrojene. Zastosowane sec Kohonena: - wykrywane zwązków w zborze wektorów - uczene sę rozkładu danych - kompresja obrazów - wykrywane neprawdłowośc Przykład : Wzualzacja sec Kohonena na płaszczyźne Poberz ze strony program Kohonen.exe. Prezentuje on proces nauk sec Kohonena w przypadku danych uczących dwuwymarowych. Równeż neurony tej sec są uporządkowane na dwuwymarowej satce. Ne mus to wcale być regułą. Należy zapamętać, ze wymarowość danych wejścowych ne mus być równa wymarowośc satk, na której są uporządkowane neurony Kohonena. W przykładze tym przyjęto tak, gdyż ułatwa to wzualzację dzałana algorytmu. Można stosować różne topologe, nekoneczne satkę dwuwymarową, jednak jest ona jedną z najpopularnejszych. Przed przystąpenem do analzy demonstracj, warto podkreslć, co jest prezentowane na ekrane. Nebeske kwadraty to dane uczące. Jak wdać, są to tylko dane wejścowe, ne ma odpowedz wzorcowych, uczene

zatem jest nenadzorowane. Czerwone kółka reprezentują neurony. Połączena mędzy nm pokazują, które neurony są sąsadam. Jednak pozycja każdego neuronu na ekrane to ne jego współrzędne w przestrzen tej sec (na satce), lecz raczej wartośc jego wag. Pozwala nam to zaobserwowac, jak bardzo dany neuron zdołał zaadaptować swe wag w kerunku konkretnej danej uczącej. Wdzmy równeż, jak jego sąsedz są przez nego cągnęc. Sła tego cągnęca maleje w trakce kolejnych teracj. Wzualzacja taka jest możlwa dlatego, że wymarowość satk jest taka sama jak wymarowość danych uczących. Satka często jest dwuwymarowa, natomast dane mogą być w praktyce wysokowymarowe. W takch przypadkach dwuwymarowe sec Kohonena stosuje sę do wzualzacj rozkładu danych wysokowymarowych poprzez prezentację nauczonej za pomocą takch danych dwuwymarowej sec Kohonena. Rysunek 2: Program demonstrujący uczene sec Kohonena Zadane: Przyjrzyj sę dzałanu sec dla różnych ustaweń parametów. Przykładowo, nastepujące ustawena: Rysunek 3: Parametry algorytmu Kohonena

spowodują, że neuronów będze tyle samo, co danych uczacych (25), zatem każdy neuron pownen znaleźć sę w poblżu swojej danej uczącej. Przykład pokazano na rysunku 4. Rysunek 4: Przykład nauczonej sec Kohonena Można równeż zastosować algorytm Kohonena przy założenu, że sąsedztwo neuronów lczone jest ne w przestrzen sec, lecz w przestrzen wag (a węc tej samej co danych wejścowych). Taka zmana (rezygnacja z ułożena neuronów w sztywną seć) pozwala mówć raczej o zborze luźnych neuronów nż o sec. Cały mechanzm adaptacj wag zwycęzcy oraz jego sąsadów pozostaje natomast nezmenony zmena sę tylko przestrzeń, w której szukamy tych sąsadów. Taka odmana uczena nenadzorowanego w postac algorytmu Kohonena służyć może do znalezena rozkładu danych uczacych, ch podzału na grupy. Podzał ten polega na tym, że wszystke dane, dla których dany neuron jest zwycęzcą, stanową jedną grupę (jedną klasę). Cały zbór neuronów uczy sę zatem sam, jak podzelć wszystke dane wejścowe na rozłączne klasy. Seć tak nauczoną można późnej wykorzystać do klasyfkacj danych wejścowych, które ne uczestnczyły w uczenu sec, poprzez wyznaczene neuronu zwycęskego zaklasyfkowane neznanej danej do klasy reprezentowanej przez ten neuron. Jeśl lczba klas jest z góry znana, można przyjąć lczbę neuronów równą lczbe klas. Nc jednak ne sto na przeszkodze, by jedna klasa była reprezentowana przez węcej nż jeden neuron. Innym algorytmem uczena nenadzorowanego, który może być wykorzystany w tym celu, jest algorytm gazu neuronowego. Nazwa pochodz od własnośc tego algorytmu: zbór neuronów swom zachowanem przypomna zachowane sę cząsteczek gazu. Jego dokladne omówene wykracza poza zakres tego kursu, jednak w ponższym przykładze, zobaczymy jak on dzała w porównanu z algorytmem Kohonena. Przykład : Uczene rozkładu danych dwuwymarowych za pomocą algorytmu Kohonena oraz algorytmu gazu neuronowego. Ze strony poberz plk z demonstracyjnym programam Kohonen_Grupowane.exe oraz Gaz_Neuronowy.exe. Wykorzytaj plk bat w celu zaobserwowana dzałana algorytmu na różnych danych

wejścowych. Rysunek 5: Neurony nauczone algorytmem gazu neuronowego. Pytana: Jake róznce w dzałanu obu algorytmów jesteś w stane zauważyć? Który z nch wydaje sę być lepszy? Zadane: Porównane sec Kohonena sec MLP (welowarstowy percpetron) w zadanu klasyfkacj psma ręcznego. Aby rozwązać zadane, wykorzystamy ponowne środowsko JOONE. Umożlwa nam ono przygotowane odpowednch danych uczacych testowych. W tym celu: wyberz Help->Examples->SOM Image Tester (rysunek 6). Rysunek 6: Edytor do przygotowana danych uczących testujących. Edytor ten pozwala na przygotowane potrzebnych danych. Narysuj kształt ltery A nacsnj DownSample. W polu ImageID należy wpsać dentyfkator klasy, do której dany znak należy. Utworzony obraz będze

przekształcony automatyczne ma obraz 9x9 pksel bnarnych (czanych lub bałych). Klkając NewImage dodajemy kolejne przykłady znaków w analogczny sposób. Po utworzenu wszystkch znaków nadana m etyket klas (ImageID), klkamy Save Images, co spowoduje zaps danych do plku w formace, który możemy następne wykorzystać w środowsku JOONE do uczena sec. Przykład: Stworzymy plk z danym uczącym abc_tran.txt oraz plk z danym testowym abc_test.txt. Do uczena sec wykorzytamy perwszy z nch, natomast drug wykorzystamy do przetestowana skutecznośc sec po zakończenu nauk. W tym przykładze oba plk zawerają po dwa przykłady lter A, B oraz C z etyketam kolejno 1, 2, 3. Zawartość plku abc_tran.txt 0.0;1.0;1.0;1.0;1.0;1.0;0.0;0.0;0.0;0.0;1.0;0.0;0.0;0.0;1.0;1.0;0.0;0.0;1.0;1.0;0.0;0.0;0.0;0.0;1.0;1.0;1.0;1. 0;1.0;0.0;0.0;0.0;0.0;0.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;1.0; 0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;1.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;1 0.0;0.0;0.0;0.0;1.0;1.0;1.0;1.0;0.0;0.0;0.0;0.0;1.0;1.0;0.0;0.0;1.0;0.0;0.0;0.0;0.0;1.0;0.0;0.0;0.0;1.0;0.0;0. 0;1.0;1.0;0.0;0.0;0.0;0.0;0.0;1.0;0.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0; 0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1 1.0;1.0;1.0;1.0;1.0;1.0;1.0;0.0;0.0;1.0;1.0;0.0;0.0;0.0;0.0;1.0;0.0;0.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;0.0;1. 0;1.0;1.0;1.0;0.0;0.0;0.0;1.0;1.0;1.0;1.0;1.0;0.0;0.0;0.0;0.0;0.0;1.0;1.0;1.0;1.0;0.0;0.0;0.0;0.0;0.0;1.0;1.0; 1.0;1.0;0.0;0.0;0.0;0.0;0.0;1.0;0.0;1.0;1.0;0.0;0.0;1.0;1.0;1.0;1.0;0.0;0.0;1.0;1.0;1.0;1.0;1.0;0.0;0.0;2 1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;0.0;0.0;1.0;0.0;0.0;0.0;0.0;0.0;1.0;0.0;0.0;1.0;0.0;0.0;0.0;0.0;0.0;1.0;0. 0;0.0;1.0;0.0;0.0;0.0;1.0;1.0;1.0;0.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;0.0;0.0;1.0;0.0;0.0;0.0;0.0;0.0;1.0;0.0; 0.0;1.0;0.0;0.0;0.0;0.0;0.0;1.0;0.0;0.0;1.0;0.0;0.0;0.0;0.0;0.0;1.0;1.0;0.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;2 0.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1. 0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0; 1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;3 0.0;0.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;0.0;1.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1. 0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0; 0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;1.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;3 Jak wdać, jest sześć danych ucząych, każda z nch to wektor skladający se z 81 (9x9) wartośc pksel (1.0-czarny pksel, 0.0-bały pksel). Każdy wektor jest zakonćzony etyketą klasy, którą reprezentuje.

W przypadku drugego plku, sytuacja jest analogczna. Stworzymy teraz w środowsku JOONE seć z neuronam Kohonena, która rozwąże problem klasyfkacj tak przygotowanych danych opsujących ręczne psane znak. Otwórz JOONE stórz nowy projekt. Dodaj nowy FleInput. Ustaw odpowene parametry jak ponżej: Dodaj LnearLayer, ustaw lczbe neuronów wejścowych na 81. Połącz FleInput z LnearLayer. Dodaj nową WnnerTakeAllLayer. Warstwa ta będze mała 3 neurony, jako, że mamy trzy klasy (trzy różne znak). Zatem: lub Połącz LnearLayer z WnnerTakeAllLayer za pomocą KohonenSynapse.

Efekt: Otwórz Tools->ControlPanel ustaw parametry : Zwróć uwagę, że supervsed jest teraz ustawone na false. Równeż błąd RMSE ne występuje w uczenu nenadzorowanym. Ne ma równeż nauczycela. Po zakończenu nauk dodaj FleOutput ustaw odpowedną nazwę plku wyjścowego.

W ControlPanel ustaw learnng na false, epochs na 1 : Przykładowa zawartość plku wynkowego może wyglądać tak: 1.0;0.0;0.0 1.0;0.0;0.0 0.0;0.0;1.0 0.0;0.0;1.0 0.0;1.0;0.0 0.0;1.0;0.0 Oznacza to, że neuron perwszy odpalł (zwycężył) dla perwszych dwóch danych (dwa znak A), drug neuron odpalł dla pątego szóstego znaku (dwa znak C) a ostatn neuron odpalł dla trzecego czwartego znaku (dwa znak B). Zatem każdy neuron nauczył sę reprezentować jedną klasę. Ne zmenając ustaweń ControlPanel, podepnj pod FleInput plk z danym testowym. FleOutput ustaw na nowy plk wygeneruj odpowedź sec na nowe dane. Sprawdź, czy poprawne klasyfkuje dane, tzn. czy odpowedn neuron odpala dla każdego znaku. Klasyfkacja znaków za pomocą sec MLP (Mult Layer Perceptron) Aby rozwązać zadane klasyfkacj znaków wykorzystamy teraz seć MLP, podobną jak w przypadku problemu XOR. Teraz seć nasza będze mała warstwę wejscową lnową doprowadzającą sygnały do sec, warstwę ukrytą z pewną lczbą neuronów ukrytych, oraz warstwe wyjścową z lczbą neuronów równą lczbe klas, a węc w tym przypadku 3. Skonstruuj następującą seć:

Każdy neuron w warstwe wyjścowej pownen odpowadać 1.0 jeśl na wejścu sec pojaw sę znak należący do klasy reprezentowanej przez dany neuron, natomast 0.0 w przecwnym wypadku. Musmy zatem przystosować nasze dane uczące. Plk z danym wygląda teraz tak: 0.0;1.0;1.0;1.0;1.0;0.0;0.0;0.0;0.0;1.0;1.0;0.0;0.0;1.0;1.0;1.0;0.0;0.0;1.0;0.0;0.0;0.0;0.0;0.0;1.0;1.0;0.0;1.0;0. 0;0.0;0.0;0.0;0.0;0.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;1.0;1.0;0.0;0.0; 0.0;0.0;0.0;0.0;0.0;1.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;0.0;0.0 0.0;0.0;1.0;1.0;1.0;0.0;0.0;0.0;0.0;0.0;1.0;1.0;0.0;1.0;1.0;0.0;0.0;0.0;0.0;1.0;0.0;0.0;0.0;1.0;1.0;0.0;0.0;1.0;1. 0;0.0;0.0;0.0;0.0;1.0;1.0;0.0;1.0;1.0;0.0;0.0;0.0;0.0;1.0;1.0;0.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0; 1.0;1.0;0.0;0.0;0.0;1.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;0.0;0.0 0.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;0.0;0.0;1.0;0.0;0.0;0.0;0.0;1.0;1.0;0.0;0.0;1.0;0.0;0.0;0.0;0.0;0.0;1.0;0.0;0. 0;1.0;0.0;0.0;0.0;0.0;0.0;1.0;0.0;0.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;0.0;0.0;1.0;0.0;0.0;0.0;0.0;1.0;1.0;0.0;0.0;1.0; 0.0;0.0;0.0;0.0;1.0;1.0;0.0;0.0;1.0;0.0;0.0;0.0;0.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;0.0;1.0;0.0 1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;0.0;1.0;1.0;1.0;1.0;0.0;0.0;0.0;1.0;0.0;0.0;1.0;1.0;1.0;0.0;0.0;0.0;1.0;0.0;0.0;0. 0;1.0;1.0;0.0;0.0;0.0;1.0;0.0;0.0;0.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;0.0;0.0;1.0;1.0;0.0;0.0;0.0;0.0;1.0;0.0;0.0;1.0; 1.0;0.0;0.0;0.0;0.0;1.0;0.0;0.0;1.0;1.0;0.0;0.0;0.0;0.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;0.0;1.0;0.0 0.0;0.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;0.0;1.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;0. 0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;1.0;0.0; 0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;0.0;0.0;1.0 0.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;0. 0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;0.0;0.0; 0.0;0.0;0.0;0.0;0.0;0.0;1.0;1.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;1.0;0.0;0.0;1.0 Zatem ne ma juz w ostatnej kolumne etykety klasy, dodane natomast zostały w trzech ostatnch kolumnach odpowedz wzorcowe dla trzech neuronow warstwy wyjścowej. Przenklwośc Czytelnka pozostawam ustalene, który neuron reprezentuje którą klasę. Tak przygotowane dane można podpąć na wejśce sec oraz do nauczycela. Nauczycel korzysta z trzech ostatnch kolumn, zatem:

oraz oraz Naucz seć podobne jak w przypadku problemu XOR. Następne ustaw enabled nauczycela na false zmenając ustawena ControlPanel przekeruj odpowedz do plku wyjścowego. Przykładowy wynk:

0.9999959600135174;5.524582845276753E-5;4.804248323111521E-6 1.0000001043947928;-7.272529515555109E-6;1.192532009834283E-6 4.47507659956381E-8;1.0000001847592561;-6.171580458486092E-8 1.249711879258708E-7;0.9999998379969469;-5.437855032236483E-8-1.9369004378990643E-7;6.983926132336088E-6;0.9999995231219034-1.1677807908638729E-7;-2.1244467943316164E-6;1.000000353797686 Zatem jak wdać, seć se nauczyła (Dlaczego?). Sprawdź jake będą wynk dla danych testujących. Zadane do wykonana: Powtórz poprzedne zadane dla cyfr od 0 do 9. Przygotuj dane uczące składające sę z każdej cyfry narysowanej 3 razy. Dane testowe składają sę z każdej cyfry narysowanej równeż 3 razy. Przeprowadź oblczena dla sec Kohonena oraz MLP. Która seć dzałała lepej na danych uczących a która na testowych? Czy pomaga zwększene lczby neuronów ukrytych w sec MLP? Wynk oblczneń parametry algorytmów uczena przedstaw w tabelkach. Opsz swoje wnosk. Aproksymacja funkcj jednowymarowej za pomocą sec neuronowej Sec neuronowe uważane są za unwersalne aproksymatory. Przyjrzymy sę problemow aproksymacj funkcj jednej zmennej. Problem aproksymacj polega na oszacowanu, jake będą wartośc funkcj w neznanych punktach rozpatrywanej dzedzny, jeśl dysponujemy pewnym zborem par (x, d), gdze x to punkt dzedzny a d to wartość funkcj w x. Trzeba zatem znaleźć przyblżene funkcj. Aby rozwązać ten problem za pomocą sec neuronowej, zbór par (x, d) bedzemy traktować jako dane uczące: x jako dane wejscowe a d jako wzorcowe odpowedz. Od nauczonej sec bedzemy oczekwać, ze równez w pozostałych punktach dzedzny bedze odpowadała zgodne z prawdzwym przebegem neznanej funkcj (neznanej często w praktyce, gdy mamy tylko pary (x, d) np. z pomarów). Generowane danych uczących testowych Poberz ze strony program funkcje.exe. Z jego pomocą wygeneruj dane uczace testowe (po 150 par) dla jednej z ponższych funkcj w zadanym przedzale.! Funkcje wskazuje prowadzący! 1. y = sn(2*x) + log(x 2 ) w przedzale [1 ; 15] 2. y = sn(2*x) + ( cos(4*x) ) 3 w przedzale [-1 ; 1] 3. y = x 2 + ( cos(4*x) ) 3 w przedzale [-1.5 ; 2.5] 4. y = log( x 3 ) - log( x 5 ) + ( cos(4*x) ) 3 w przedzale [5 ; 12] 5. y= x + sn(3*cos(5*x)) w przedzale [0 ; 2] 6. y= x 1/3 + sn(5*x) w przedzale [1.5 ; 5] 7. y = 0.5*x + sn(x 3 ) w przedzale [0 ; 4] 8. y = x 3 x 2 + sn(4*x) - cos(15*x) w przedzale [-1 ; 1] 9. y = - x 2 - x + cos(10*x) - sn(50*x) w przedzale [-1 ; 1]

10. y = - x + sn(5*x) - cos(13*x) w przedzale [-1 ; 1] Plk wygenerowany przez program jest w formace akceptowanym przez Joone. Fragment plku: (perwsza kolumna x, druga d) 1.00922;0.656974 1.00928;0.657145 1.0123;0.665456 1.0137;0.669228 1.01773;0.679728 1.01874;0.682277 td... Poberz ze strony program Rysownk.exe z jego pomocą zobacz, jak wygląda przebeg funkcj. Przykładowo:

Konstrukcja sec oraz jej uczene Stwórz w środowsku JOONE seć z sgmodalnym neuronam w warstwe ukrytej, jednym neuronem w wartwe wyjścowej. Dadaj nauczycela, który bedze korzystał z drugej kolumny zawartej w plku. Perwsza kolumna to dane wejścowe sec, zatem warstwa wejścowa sec pownna meć jeden neuron lnowy. Odpoweno połącz elementy ustaw parametry uczena bazując na swom dośwadczenu. Przykładowo:

Jeśl przekerujemy odpowedź sec do plku, otrzymamy w nm jedną kolumnę. Plk tak można wykorzystać w programe Rysownk.exe. Przykładowo: Odpowedź sec (na nebesko) przed nauką:

Po nauce przykładowo otrzymamy: Jak wdać rezultat jest dalek od dealnego. Tak może sę zdarzyć, ale ne mus. Zależy to od danych uczących. Jeśl sygnały wejścowe mają duże wartośc (np. w tym przypadku maksymalna wartość to prawe 5 patrz: oś x) to seć będze mała problemy z nauczenem sę, gdyż występuje zjawsko tzw. nasycena neuronów. Aby tego unknąć, trzeba znormalzować dane, najlepej wejścowy wyjścowe, przykładowo do przedzału [0,1]. Możemy to zrobć już w środowsku JONNE. W tym celu dodajemy NewNormalzer do FleInput przy warstwe wejścowej oraz nauczyelu. W ustawenach zostawamy domyślną normalzację

na przedzał [0,1]. Aby wrócć do orgnalnego przedzału wartośc funkcj, użyjemy NewUnNormalzer, który podepnemy do FleOutput, do którego przekerowujemy odpowedz sec. Schemat pownen wyglądać tak: a ustawena: Pozostawene 0 (zer) dla InputDataMn, InputDataMax, ndatamn oraz ndatamax oznacza, że program sam znajdze mn oraz max wejścowych danych. W przypadku DataUnNormalzer (ostatne okenko) parametry outdatamax oraz outdatamn należy odczytać korzystając z wykresu w programe Rysownk sprawdzając, jaka jest mnmalna oraz maksymalna wartość danej funkcj w zadanym przedzale. W powyższym przypadku mamy mn około 0.62 a max około 3.77. (patrz ponżej)

Tak wzbogaconą seć uczymy (pamętaj o zresetowanu wag : Tools->Randomze!), następne odłączamy nauczycela (enabled na false), ustawamy w ControlPanel learnng na false, epochs na 1 przekerowujemy wyjśce sec do plku. Korzystając z powstałego plku z odpowedzam sec, wdzmy, że teraz seć, dzęk normalzacj, nauczyła sę dobrze. Zadane : Dla wskazanej przez prowadzącego funkcj postaraj sę dobrać odpowedną archtekturę sec, tak aby bład RMSE byl najmnejszy. Dla funkcj wygeneruj dwa zestawy danych, trenujące (uczące) oraz testowe. Naucz seć za pomocą danych uczących przedstaw na wykrese jak prezentuje sę odpowedź sec. Dane testowe ne są wykorzystywane w trakce nauk, a jedyne do sprawdzena, jak seć sobe radz z danym, które ne były jej prezentowane podczas nauk. Przedstaw odpowedz sec równeż dla danych testowych. W tym celu, po zakończenu nauk sec, pod odpowedn InputLayer podepnj plk z danym wejścowym testowym przekeruj odpowedź sec do nowego plku, a następne użyj programu

Rysownk. Wynk oblczeń parametry algorytmu przedstaw w tabelkach. Wypróbuj różne ustawena sec, równeż z wecej nż jedną warstwą ukrytą. Odpowedz, jaka archtektura była najlepsza dla rozważanego problemu (funkcj). Sec neuronowe radalne RBF (Radal Bass Functon) Sec neuronowe radalne składają sę jedyne z dwóch warstw jak przedstawono to na rysunku 7. Rysunek 7 Seć radalna Warstwa ukryta, do której trafają bezpośredno sygnały wejścowe jest tworzona z neuronów posadających radalne funkcje aktywacj, w przecweństwe do poprzedno poznanych sgmodalnych funkcj aktywacj sec MLP. Najczęścej stosowaną funkcją radalną jest funkcja Gaussa określona wzorem: x c ϕ ( x) = exp( 2 2σ Kształt tej funkcj przedstawa rysunek 8. 2 ) Rysunek 8 Funkcja Gaussa: c=0, sgma=1 Zakres argumentów dla których funkcja tego typu ma wartośc wyraźne wększe od zera jest ogranczony określony przez dwa parametry: centrum radalne c oraz warancję σ odpowedzalną za jej szerokość. Cała seć realzuje zatem odwzorowane

K F( x) = w ϕ ( x ) c = 1 W secach sgmodalnych separacja danych odbywała sę za pomocą hperpłaszczyzn, w secach radalnych natomast ma mejsce separacja kołowa za pomocą hpersfer. Warstwa radalna realzuje rzutowane nelnowe na przestrzeń o wększej lośc wymarów. Zgodne z twerdzenem Covera, złożony problem klasyfkacyjny zrzutowany nelnowo w przestrzeń welowymarową może z wększym prawdopodobeństwem lnowo separowalny, nż przy rzutowanu w przestrzeń o mnejszym wymarze. Udowodnono, ze każdy zbór wzorców jest lnowo separowalny przy odpowedno dużym wymarze K. Uczene sec RBF Uczene sec RBF w najprostszym przypadku polega na mnmalzacj funkcj celu 2 p K E = = 1 j= 1 w ϕ ( x j c j ) d gdze K to lczba neuronów ukrytych a p to lczba par uczących. Przy założenu znajomośc parametrów funkcj radalnych, aby określć wartośc wag należy rozwązać układ równań lnowych względem wag. Gw = d gdze G jest macerzą radalną, zwaną równeż macerzą Gaussa. ϕ ( x1.. ϕ ( x p c c 1 1 ) )...... ϕ ( x ϕ ( x 1 p.. c c K K ) ) Macerz G jest przeważne macerzą prostokątną, wektor wag oblcza sę zatem za pomocą operacj pseudo nwersj macerzy G: w = G + d = ( G G) T 1 G T d Centra funkcj radalnych ustalć można np.: - losowo, losując centra w przestrzen danych stosując rozkład normalny - statystyczne, używając metody uśredneń (k-means)w celu dentyfkacj klastrów - z użycem samoorganzacj - z użycem algorytmu genetycznego td. Szerokośc funkcj radalnych dobera sę tak, aby pokryta została cała przestrzeń. Inną metodą jest zastosowane zasady wstecznej propagacj błędów zarówno do wartośc wag jak parametrów funkcj radalnych. Aproksymacja funkcj jednej zmennej za pomocą sec RBF Poberz ze strony program demonstracyjny RBF_Demo. Zaobserwuj, jak seć neuronowa radalna uczy sę aproksymować jednowymarową funkcję. Seć ta ma 7 neuronów radalnych ukrytych (kolor nebesk w programe) oraz jeden neuron lnowy w warstwe wyjścowej, dający konkretną wartość aproksymacj w danym punkce dzedzny. Przebeg funkcj przedstawono kolorem czerwonym, aproksymację dokonywaną

przez seć natomast kolorem zelonym. Zaobserwuj, jak w trakce nauk są modyfkowane funkcje Gaussa neuronów radalnych. Naukę zaczyna sę klkając na okenko programu prawym przycskem myszy. Przed nauką: Po nauce: