IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ

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

METODY INŻYNIERII WIEDZY

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

METODY INŻYNIERII WIEDZY KNOWLEDGE ENGINEERING AND DATA MINING

Uczenie sieci typu MLP

PODSTAWY BAZ DANYCH I SZTUCZNEJ INTELIGENCJI. Adrian Horzyk. Akademia Górniczo-Hutnicza

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

Inteligentne systemy decyzyjne: Uczenie maszynowe sztuczne sieci neuronowe

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

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

Zastosowania sieci neuronowych

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

Uczenie sieci radialnych (RBF)

Sztuczne sieci neuronowe

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

ALGORYTMY SZTUCZNEJ INTELIGENCJI

Podstawy Sztucznej Inteligencji (PSZT)

METODY INŻYNIERII WIEDZY

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.

wiedzy Sieci neuronowe

1. Logika, funkcje logiczne, preceptron.

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

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

Algorytmy wstecznej propagacji sieci neuronowych

Metody Sztucznej Inteligencji II

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

Temat: Sieci neuronowe oraz technologia CUDA

Zastosowania sieci neuronowych

Podstawy sztucznej inteligencji

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

Sieci neuronowe w Statistica

METODY INŻYNIERII WIEDZY KNOWLEDGE ENGINEERING AND DATA MINING

Widzenie komputerowe

Elementy inteligencji obliczeniowej

wiedzy Sieci neuronowe (c.d.)

Systemy agentowe. Sieci neuronowe. Jędrzej Potoniec

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

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

Sieci neuronowe w Statistica. Agnieszka Nowak - Brzezioska

Definicja perceptronu wielowarstwowego

Inteligentne systemy przeciw atakom sieciowym

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

Systemy agentowe. Sieci neuronowe. Jędrzej Potoniec

Uczenie sieci neuronowych i bayesowskich

Uczenie Wielowarstwowych Sieci Neuronów o

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

Sztuczna inteligencja

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

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

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

SIECI NEURONOWE Liniowe i nieliniowe sieci neuronowe

Sztuczne sieci neuronowe (SNN)

Oprogramowanie Systemów Obrazowania SIECI NEURONOWE

I EKSPLORACJA DANYCH

METODY INTELIGENCJI OBLICZENIOWEJ wykład 5

METODY INŻYNIERII WIEDZY

METODY INŻYNIERII WIEDZY

DEKOMPOZYCJA HIERARCHICZNEJ STRUKTURY SZTUCZNEJ SIECI NEURONOWEJ I ALGORYTM KOORDYNACJI

Sztuczne siei neuronowe - wprowadzenie

Zastosowanie metod eksploracji danych Data Mining w badaniach ekonomicznych SAS Enterprise Miner. rok akademicki 2013/2014

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 jednowarstwowe w MATLABie LABORKA Piotr Ciskowski

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

2.4. Algorytmy uczenia sieci neuronowych

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

METODY INŻYNIERII WIEDZY KNOWLEDGE ENGINEERING AND DATA MINING

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

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

Politechnika Warszawska

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

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

Zadanie 2.: Perceptron wielowarstwowy

Lekcja 5: Sieć Kohonena i sieć ART

Sztuczne sieci neuronowe. Uczenie, zastosowania

Sztuczne sieci neuronowe

HAŁASU Z UWZGLĘDNIENIEM ZJAWISK O CHARAKTERZE NIELINIOWYM

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

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

Wykład 1: Wprowadzenie do sieci neuronowych

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

Elementy kognitywistyki III: Modele i architektury poznawcze

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

SIECI REKURENCYJNE SIECI HOPFIELDA

Deep Learning na przykładzie Deep Belief Networks

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

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

SZTUCZNA INTELIGENCJA

ELEMENTY SZTUCZNEJ INTELIGENCJI. Sztuczne sieci neuronowe

Wprowadzenie do sieci neuronowych i zagadnień deep learning

Optymalizacja ciągła

Obliczenia Naturalne - Sztuczne sieci neuronowe

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

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 i sztuczna immunologia jako klasyfikatory danych. Dariusz Badura Letnia Szkoła Instytutu Matematyki 2010

Podstawy Sztucznej Inteligencji

Wrocław University of Technology. Uczenie głębokie. Maciej Zięba

ĆWICZENIE 5: Sztuczne sieci neuronowe

Transkrypt:

IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ Celem ćwiczenia jest zapoznanie się ze sposobem działania sieci neuronowych typu MLP (multi-layer perceptron) uczonych nadzorowaną (z nauczycielem, supervised) metodą propagacji wstecznej błędów (backpropagation) z wykorzystaniem metody walidacji krzyżowej (cross-validation) dla zbioru Irys (z ML Repository). Jak rozpocząć? 1. Wczytać dane Irysów do tablicy lub tabeli. 2. Zaprojektować strukturę sieci: 4 wejścia, 3 wyjścia, a warstwa ukryta powinna zawierać od 5 do 30 neuronów, ew. można zastosować dwie lub trzy takie warstwy. 3. Zainicjować wagi tej sieci małymi liczbami z zakresu od -0,1 do +0,1. 4. Napisać metodę realizującą pobudzanie kolejnych neuronów w kolejnych warstwach sieci od wejścia do wyjścia. 5. Obliczyć błąd na wyjściach neuronów klasyfikujących na podstawie danych uczących określających pożądane klasy dla danych wejściowych. 6. Napisać metodę realizującą przekazywanie wsteczne błędów do kolejnych neuronów w poprzednich warstwach sieci od wyjścia do wejścia i obliczania korekty wag sieci. 7. Następnie po prezentacji całego zbioru danych dokonać korekty wag (off-line, batch). 8. Na końcu dostosuj algorytm tak, żeby zastosować 10-krotną walidację krzyżową.

JAK POPRAWIAMY WAGI POŁĄCZEŃ MIĘDZY NEURONAMI? Wagi połączeń między neuronami można poprawiać (aktualizować) w trakcie uczenia metodą: On-line (po prezentacji każdego wzorca uczącego i obliczeniu korekty wag) Off-line (batch learning, uczenie wsadowe) polegające na sumowaniu w pomocniczej tabeli wszystkich korekt obliczonych dla wszystkich wzorców uczących w jednym cyklu uczącym. Na koniec te sumy dzielimy przez ilość wszystkich wzorców uczących, wyznaczając średnią korektę dla wszystkich wzorców uczących i dopiero ją wykorzystujemy do korekty wag sieci. Najczęściej wykorzystywana jest metoda off-line, gdyż zapewnia większą stabilność uczenia, ponieważ wszystkie wzorce prezentowane są niejako tej samej sieci w danym cyklu uczenia (tj. sieci o tych samych wagach), zaś w przypadku uczenia metodą on-line kolejność prezentacji wzorców uczących wpływa na sposób adaptacji sieci, a kolejne wzorce prezentowane są sieci po jej dopasowaniu do poprzednich wzorców. Taki sposób uczenia jest charakterystyczny dla ludzi, lecz w przypadku uczenia zdefiniowanych zbiorów uczących kolejność prezentacji wzorców nie powinna być powodem do ich faworyzowania w procesie uczenia.

ZAIMPLEMENTUJ METODĘ UCZENIA PROPAGACJI WSTECZNEJ DO DYSKRYMINACJI 3 KLAS Irysów Zbuduj 3 warstwową sieć neuronową składającą się z neuronów sigmoidalnych (lub tangens hiperboliczny) do dyskryminacji wzorców 3 klas Irysów: Setosa, Versicolor i Virginica na podstawie wszystkich czterech parametrów. 1. Wczytaj zbiór danych Iris 2. Zbuduj sieć neuronową wielowarstwową, posługując się 2D tablicami double do reprezentacji wag (w ij ) pomiędzy neuronami sąsiednich warstw neuronów, oraz 1D tablicami rekordów do reprezentacji sum ważonych (s i ), obliczonych wartości wyjściowych (y i ) oraz sum ważonych propagowanych wstecz błędów (δ ik ) dla neuronów. 3. Zaimplementuj metodę propagacji wstecznej błędów. 4. Zastosuj metodę walidacji krzyżowej do nauki. 5. Zastosuj algorytmy genetyczne do wybrania optymalnej ilości neuronów w warstwie ukrytej. 6. Można poeksperymentować z 2. warstwą ukrytą (sieć 4-warstwowa).

BUDOWA STRUKTURY SIECI NEURONOWEJ Zaleca się posłużenie się tablicami tablic lub listami list implementującymi strukturę sieci w taki sposób, iż główna tablica/lista reprezentuje warstwy sieci, a wewnętrzne tablice/listy reprezentują neurony w tych warstwach: Wejście 1 N1,1 N1,2 N2,1 Setosa Wejście 2 Wejście 3 Wejście 4 N1,3 N1,4 N1,5 N1,6 N1,7 N2,2 N2,3 N2,4 N2,5 Versicolor Virginica

TABLICE DO IMPLEMENTACJI WAG I WARTOŚCI NEURONÓW Zaleca się posłużenie się tablicami wag w następującej postaci:

SIECI NEURONOWE WIELOWARSTWOWE MLP Multilayer Perceptron Sieci wielowarstwowe to odpowiednio połączone warstwy neuronów zwykle o nieliniowych funkcjach aktywacji (np. neurony sigmoidalne, radialne), aczkolwiek czasami w warstwie wyjściowej pojawiają się neurony liniowe. Sieci wielowarstwowe muszą posiadać minimalnie dwie warstwy neuronów: warstwę wejściową i warstwę wyjściową pomiędzy którymi może być jedna lub więcej warstw ukrytych. W każdej warstwie może występować różna ilość neuronów: W warstwie wejściowej odpowiada ona zwykle ilości parametrów opisujących dane wejściowe, w warstwie wyjściowej np. ilości klas, natomiast ilość neuronów w warstwach ukrytych odpowiada za możliwości modelu. Neurony łączą się tylko pomiędzy (zwykle) sąsiednimi warstwami, zaś wewnątrz warstw nie występują połączenia pomiędzy neuronami. Neurony zwykle łączymy pomiędzy sąsiednimi warstwami na zasadzie każdy z każdym.

UCZENIE SIECI WIELOWARSTWOWYCH Sieci wielowarstwowe uczymy zwykle metodami nadzorowanymi (tzn. z nauczycielem): 1. Podajemy na wejście sygnał wejściowy (zwykle w postaci wektora lub macierzy danych) 2. Obliczamy wartości wyjściowe neuronów w 1. warstwie i poprzez ich połączenia z neuronami w 2. warstwie podajemy te wartości jako sygnały wejściowe dla neuronów w 2. warstwie. 3. Obliczamy wartości wyjściowe w kolejnych warstwach tym samym sposobem. 4. Wartości wyznaczone w ostatniej warstwie stanowią zarazem odpowiedź sieci na podany sygnał wejściowy. 5. Sygnał ten porównujemy z wzorcowym (określonym przez nauczyciela) i wyznaczamy błąd. 6. Korzystając metod gradientowych propagujemy błąd wstecz przez sieć i dokonujemy korekty wartości wag połączeń synaptycznych.

ALGORYTM WSTECZNEJ PROPAGACJI BŁĘDÓW Pierwszym i zarazem najbardziej popularnym algorytmem do uczenia sieci wielowarstwowych jest algorytm wstecznej propagacji błędów (backpropation algorithm), którego działanie oparte jest na regule delta. Wyznaczamy średniokwadratową funkcję błędu dla sieci Q(w), a następnie dążymy do znalezienia minimum tej funkcji względem wektora w. Uczenie składa się z dwóch naprzemiennych faz: 1. Fazy propagacji sygnału od wejść (wektora x) do wyjścia. 2. Fazy wstecznej propagacji błędu od wyjścia y w kierunku wejść sieci. PROPAGACJA SYGNAŁU PROPAGACJA BŁĘDU WSTECZ

PROPAGACJA SYGNAŁU PRZEZ PIERWSZĄ WARSTWĘ SIECI Sieć wielowarstwową pobudzamy sygnałami wejściowymi (x 1, x 2 ) kolejno warstwami neuronów. Najpierw pobudzane są neurony w 1. warstwie i obliczana jest ich wartość wejściowa y 1, y 2 i y 3. Wartości wyjściowe następnie są wykorzystane jako sygnały wejściowe w kolejnej warstwie neuronów.

PROPAGACJA SYGNAŁU PRZEZ DRUGĄ WARSTWĘ SIECI Drugą (ukrytą) warstwę neuronów sieci wielowarstwowej pobudzamy sygnałami wyjściowymi warstwy pierwszej (y 1, y 2 i y 3 ) obliczonymi w poprzednim kroku. Na tej podstawie wyznaczane są wartości wyjściowe neuronów w warstwie drugiej (y 4 i y 5 ). Obliczone wartości wyjściowe następnie są wykorzystane jako sygnały wejściowe w ostatniej warstwie neuronów, tzw. Warstwie wyjściowej sieci, która w naszym przypadku zawiera tylko 1 neuron.

PROPAGACJA SYGNAŁU PRZEZ TRZECIĄ WARSTWĘ SIECI Trzecia warstwa neuronów sieci wielowarstwowej zawierająca pojedynczy neuron pobudzamy sygnałami wyjściowymi warstwy drugiej (y 4 i y 5 ) obliczonymi w poprzednim kroku. Na tej podstawie wyznaczana jest wartość wyjściowa neuronu w warstwie trzeciej (y 6 ). Obliczona wartość wyjściowa jest porównywana z wartością pożądaną (z) wyznaczoną w zbiorze uczącym przez nauczyciela, a różnica pomiędzy wartością pożądaną i uzyskaną (δ = z y) stanowią o dalszych krokach działania algorytmu. Wartość błędu jest propagowana wstecz, ważona zgodnie z wagą połączenia między neuronami i sumowana w tych neuronach celem wyznaczenia ich błędu.

PROPAGACJA WSTECZNA BŁĘDU DO DRUGIEJ WARSTWY Przechodząc z błędem wstecz z trzeciej warstwy do drugiej, błąd jest ważony zgodnie z aktualną wartością wagi połączenia pomiędzy neuronem warstwy 3 i odpowiednim neuronem warstwy drugiej. Neurony w warstwie drugiej sumują ważone sygnały błędów dochodzących do nich z warstwy trzeciej. Tutaj ze względu na to, iż w warstwie 3 występuje tylko jeden neuron, sumy składają się tylko z jednego członu:

PROPAGACJA WSTECZNA BŁĘDU DO PIERSZWEJ WARSTWY Przechodząc z błędem wstecz z drugiej do pierwszej warstwy sieci błędy obliczone dla drugiej warstwy (δ 4 i δ 5 ) są ważone zgodnie z aktualną wartością wag połączeń pomiędzy neuronami warstwy drugiej i pierwszej, a następnie sumowane neuronach warstwy pierwszej zgodnie z następującą zależnością: Następnie dokonywana jest korekta wartości wag sieci.

KOREKTA WAG SIECI W TRAKCIE PROPAGACJI WSTECZNEJ BŁĘDU Dokonujemy korekty wag sieci tak, żeby zmniejszyły błąd średniokwadratowy, jaki był obliczony na wyjściu sieci. W tym celu korzystamy z uogólnionej reguły delta, korzystając z pochodnej cząstkowej funkcji aktywacji oznaczonej jako df i (e) / de. Korekty wag możemy dokonywać: od razu dla każdego wzorca uczącego (tzw. on-line training) dopiero po zakończeniu propagacji błędów dla całego zbioru uczącego, sumując je dla wszystkich wzorców, a na końcu obliczając ich średnią (tzw. off-line training lub batch training).

KOREKTA WAG SIECI W TRAKCIE PROPAGACJI WSTECZNEJ BŁĘDU Podobnie dokonujemy korekty wag w drugiej i trzeciej warstwie sieci. Współczynnik η służy stopniowej adaptacji sieci oraz określa szybkość uczenia się. Na początku jest zwykle duży, a następnie jego wartość jest stopniowo zmniejszana. Warunkuje on możliwość przejścia od minimów lokalnych do minimum globalnego.

KOREKTA WAG SIECI W TRAKCIE PROPAGACJI WSTECZNEJ BŁĘDU Wyznaczenie wartości pochodnej we wzorach na aktualizację wag zależne jest od postaci funkcji aktywacji f. Dla najczęściej stosowanych funkcji: sigmoidalnej: 1 f(x) = 1 + e β x f x = β f x 1 f x = β y 1 y tangensa hiperbolicznego: f(x) = tgh β x f x = β 1 tgh 2 β x = β y 1 y 2

Zbuduj pętlę umożliwiając uczenie z wykorzystaniem walidacji krzyżowej

Zbuduj pętlę umożliwiając uczenie z wykorzystaniem walidacji krzyżowej