Definicja perceptronu wielowarstwowego

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

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

Elementy inteligencji obliczeniowej

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

Podstawy Sztucznej Inteligencji (PSZT)

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

Inteligentne systemy decyzyjne: Uczenie maszynowe sztuczne sieci neuronowe

Sztuczne sieci neuronowe

ALGORYTMY SZTUCZNEJ INTELIGENCJI

Sztuczne sieci neuronowe (SNN)

Zastosowania sieci neuronowych

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

3. FUNKCJA LINIOWA. gdzie ; ół,.

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

Temat: Sieci neuronowe oraz technologia CUDA

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

INTERPOLACJA I APROKSYMACJA FUNKCJI

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

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

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

Sztuczne sieci neuronowe

Uczenie sieci typu MLP

Widzenie komputerowe

Metody Optymalizacji: Przeszukiwanie z listą tabu

Projekt Sieci neuronowe

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

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

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

Aproksymacja. funkcji: ,a 2. ,...,a m. - są funkcjami bazowymi m+1 wymiarowej podprzestrzeni liniowej X m+1

wiedzy Sieci neuronowe

I EKSPLORACJA DANYCH

Programowanie celowe #1

Optymalizacja ciągła

Matematyka stosowana i metody numeryczne

IX. Rachunek różniczkowy funkcji wielu zmiennych. 1. Funkcja dwóch i trzech zmiennych - pojęcia podstawowe. - funkcja dwóch zmiennych,

WYKŁAD 9 METODY ZMIENNEJ METRYKI

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

Sztuczna inteligencja

Metody numeryczne. materiały do wykładu dla studentów. 7. Całkowanie numeryczne

Przykładowe funkcje przejścia używane przy budowie sztucznych neuronów

Metody Sztucznej Inteligencji II

1 Wartości własne oraz wektory własne macierzy

1. Logika, funkcje logiczne, preceptron.

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

SIECI NEURONOWE Liniowe i nieliniowe sieci neuronowe

Zagadnienia optymalizacji i aproksymacji. Sieci neuronowe.

wiedzy Sieci neuronowe (c.d.)

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

METODY ROZWIĄZYWANIA RÓWNAŃ NIELINIOWYCH

Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

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

Funkcje wymierne. Funkcja homograficzna. Równania i nierówności wymierne.

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu

II. FUNKCJE WIELU ZMIENNYCH

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

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Uczenie sieci neuronowych i bayesowskich

Uczenie sieci radialnych (RBF)

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Elementy Sztucznej Inteligencji. Sztuczne sieci neuronowe cz. 2

0 + 0 = 0, = 1, = 1, = 0.

Optymalizacja systemów

Definicja pochodnej cząstkowej

Wykład z Technologii Informacyjnych. Piotr Mika

Rys Wykres kosztów skrócenia pojedynczej czynności. k 2. Δk 2. k 1 pp. Δk 1 T M T B T A

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

Funkcja liniowa - podsumowanie

ZAGADNIENIA PROGRAMOWE I WYMAGANIA EDUKACYJNE DO TESTU PRZYROSTU KOMPETENCJI Z MATEMATYKI DLA UCZNIA KLASY II

Zadania 1. Czas pracy przypadający na jednostkę wyrobu (w godz.) M 1. Wyroby

Rozwiązywanie równań nieliniowych

Aby mówić o procesie decyzyjnym Markowa musimy zdefiniować następujący zestaw (krotkę): gdzie:

Lekcja 5: Sieć Kohonena i sieć ART

Systemy uczące się Lab 4

METODY INŻYNIERII WIEDZY

Zapisujemy:. Dla jednoczesnego podania funkcji (sposobu przyporządkowania) oraz zbiorów i piszemy:.

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

Aproksymacja funkcji a regresja symboliczna

Programowanie liniowe

Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych klasa druga zakres rozszerzony

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

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

II. RÓŻNICZKOWANIE I CAŁKOWANIE NUMERYCZNE Janusz Adamowski

Metody iteracyjne rozwiązywania układów równań liniowych (5.3) Normy wektorów i macierzy (5.3.1) Niech. x i. i =1

Działanie algorytmu oparte jest na minimalizacji funkcji celu jako suma funkcji kosztu ( ) oraz funkcji heurystycznej ( ).

W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora.

Całki niewłaściwe. Całki w granicach nieskończonych

Sieci neuronowe w Statistica

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

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

Spacery losowe generowanie realizacji procesu losowego

Wstęp do sztucznych sieci neuronowych

Podstawy Sztucznej Inteligencji

Algorytmy wstecznej propagacji sieci neuronowych

3a. Wstęp: Elementarne równania i nierówności

Wykład 1: Wprowadzenie do sieci neuronowych

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Elementy rachunku różniczkowego i całkowego

D. Miszczyńska, M.Miszczyński KBO UŁ 1 GRY KONFLIKTOWE GRY 2-OSOBOWE O SUMIE WYPŁAT ZERO

Transkrypt:

1 Sieci neuronowe - wprowadzenie 2 Definicja perceptronu wielowarstwowego 3 Interpretacja znaczenia parametrów sieci 4 Wpływ wag perceptronu na jakość aproksymacji 4.1 Twierdzenie o uniwersalnych właściwościach aproksymacyjnych 5 Uczenie sieci 5.1 Algorytm uczenia perceptronu 5.2 Algorytm uczenia perceptronu z momentem bezwładności Sieci neuronowe - wprowadzenie Sieci neuronowe są jedną z wielu możliwych realizacji aproksymatora regresyjnego. Swoją popularność zawdzięczają w pewnej mierze analogiom biologicznym można w nich upatrywać niezwykle uproszczonych modeli naturalnych struktur neuronowych. Przykładem sieci neuronowych, chyba najbardziej rozpowszechnionym, jest perceptron wielowarstwowy, któremu poświęcimy tę lekcję. Inne rozpowszechnione struktury sieci neuronowych to architektury ze sprzężeniem zwrotnym (tzw. sieci Hopfielda), realizujące układy dynamiczne, oraz architektury samoorganizujące (tzw. sieci Kohonena), realizujące algorytm grupowania. Tematyka sieci neuronowych jest dość dobrze opisana w literaturze uzupełniającej, do której odsyłamy bardziej zainteresowanych. Poniżej naszkicujemy podstawowe zagadnienia związane z wykorzystaniem perceptronu jako metody regresji oraz z metodami uczenia się stosowanymi dla tej sieci. Definicja perceptronu wielowarstwowego Perceptron wielowarstwowy jest aproksymatorem nieliniowym sieci jest następująca:. Graficzna postać

Węzeł grafu sieci odpowiada pojedynczemu neuronowi. Krawędź odpowiada połączeniu między neuronami (tzw. połączenie synaptyczne) jest skierowana od wyjścia jednego do wejścia drugiego neuronu, co odpowiada jednokierunkowemu przepływowi danych. Neuron działa w taki sposób, że dokonuje się ważonego sumowania wartości wejść, obliczając wartość, zwaną pobudzeniem : Wygodnie jest założyć, że neuron otrzymuje jeszcze jedno wejście o wartości równej stale jedynce. Przy takim założeniu, pobudzenie da się zapisać prościej jako Wyjście neuronu powstaje w wyniku podania pobudzenia na funkcję aktywacji : W przypadku sieci neuronowych, funkcja aktywacji ma kształt litery s jest monotonicznie rosnąca z asymptotami poziomymi w nieskończonościach. Najczęściej przyjmuje się funkcję tangens hiperboliczny: przyjmującą wartość z zakresu, względnie funkcję logistyczną: o wartościach z zakresu. Neurony zgrupowane są w warstwy w taki sposób, że między neuronami tej samej warstwy nie ma połączeń, a połączenia występują jedynie między neuronami sąsiadujących warstw. Wyróżnia się warstwę neuronów wyjściowych (zwaną krótko warstwą wyjściową), których wyjście jest jednocześnie wyjściem z sieci. Pozostałe warstwy są nazywane ukrytymi, gdyż wyjścia neuronów w nich się znajdujących nie są widoczne na wyjściu sieci. Dla neuronów wyjściowych można przyjąć, że funkcja aktywacji jest funkcją liniową. Tak więc sieć neuronowa jest w swojej istocie pewnym wzorem, który da się przedstawić w formie graficznej. Wzór ten brzmi (w nieco nieformalnym zapisie): Wielokrotne ważone sumowanie i przekształcanie funkcją aktywacji ma miejsce tyle razy, ile jest warstw neuronów w sieci, dlatego w powyższym wzorze pojawiają się trzy kropki. Jak więc widać, wyjście sieci neuronowej jest funkcją jej wejścia, przy czym funkcja ta jest parametryzowana zestawem parametrów.

Interpretacja znaczenia parametrów sieci Spróbujmy zrozumieć znaczenie poszczególnych parametrów, analizując przykładowe sieci zawierające jeden neuron wyjściowy z liniową funkcją aktywacji oraz jedną warstwę nieliniowych neuronów. Na początek skoncentrujmy się na najprostszej sieci, mających jedno wejście i jedno wyjście (a zatem aproksymowana jest funkcja ). Rozważmy sieć o dwóch neuronach ukrytych i jednym wyjściu liniowym. Opisuje ją wzór: Znaczenie parametrów pojedynczego neuronu warstwy ukrytej jest następujące. Wartości proporcji, służą do przesuwania wykresu funkcji wzdłuż osi OX. Z kolei parametry wpływają na stromość wykresu funkcji,. Tak więc, manipulując oboma parametrami, jesteśmy w stanie uzyskać funkcję o różnej stromości, różnie położoną na osi OX.

Parametry warstwy wyjściowej służą określeniu stopnia wymieszania wyjść neuronów ukrytych. Im większa wartość wagi, tym większy mnożnik użyty do wykresu wyjścia neuronu i-tego (dodajmy, że przyjęcie ujemnej wagi powoduje odbicie wykresu funkcji wyjścia neuronu względem osi OX). Z kolei w przypadku sieci o dwóch wejściach, aproksymującej funkcję neuronami ukrytymi i jednym liniowym wyjściowym, mamy wzór:, z dwoma Wagi odpowiadają za sposób ułożenia w przestrzeni powierzchni, odpowiadającej funkcji powierzchnia ta ma poziomice ułożone wzdłuż prostej o równaniu, a w przekroju poprzecznym do poziomic ma kształt funkcji. Zmieniając współczynniki wagowe, dokonujemy obrotów i przemieszczeń tej powierzchni, nie zmieniając jednak jej zasadniczego kształtu. Wpływ wag perceptronu na jakość aproksymacji Rzecz jasna wielce niepraktyczne byłoby dobieranie wartości współczynników wagowych sieci neuronowej na oko poprzez ręczne manipulacje tymi wartościami. Dlatego można zastosować to samo podejście, z którym mieliśmy już do czynienia w regresji liniowej i przeprowadzić regresję nieliniową. Zasada jest podobna. Zakładamy, że sieć neuronowa ma jedno wyjście i wiele wejść. Oznaczymy aproksymowaną funkcję przez, natomiast wyjście sieci przez. Dysponujemy pewnym zbiorem, zwanym zbiorem uczącym. Zdefiniujmy funkcję reszt. Zauważmy, że zarówno, jak i są funkcjami nie tylko wektora argumentów, ale i wektora wag. Załóżmy, że miarą błędu jest błąd średniokwadratowy:

W praktyce nie jesteśmy w stanie obliczyć powyższej całki, gdyż nie dysponujemy wartościami dla dowolnej wartość argumentu, lecz tylko dla zbioru uczącego. Dlatego zamiast całką posługujemy się wartością błędu średniokwadratowego, obliczanego na zbiorze trenującym: gdzie wartość jest liczbą elementów zbioru trenującego. Jeśli nie będzie to budzić wątpliwości, będziemy dalej nazywać błędem sieci. Teraz możemy już sformułować zadanie przeszukiwania, które leży u podstaw algorytmu uczenia sieci neuronowej. Przestrzeń przeszukiwań jest przestrzenią wektorów, a zatem jest to przestrzeń kartezjańska, gdzie jest liczbą wag sieci. W przykładach rozważanych powyżej wartość jest równa odpowiednio: siedem (dla sieci z jednym wejściem) i dziewięć (dla sieci z dwoma wejściami). W nieco bardziej realistycznych przypadkach wartość może się wahać od kilkudziesięciu do nawet kilkuset. W przestrzeni przeszukiwań jest zdefiniowany funkcja, przyporządkowująca wektorowi wag wartość błędu. Przeszukiwanie ma na celu znalezienie takiego punktu (czyli wektora wag ), dla którego wartość błędu jest minimalna uczenie sieci jest więc zadaniem minimalizacji błędu w przestrzeni wag aproksymatora. Powstaje pytanie jak stwierdzić, że dla konkretnego wektora wag w przypada minimum błędu? Jeśli wiemy, że jest dokładnie jedno takie minimum, a tak jest przy aproksymatorach liniowych, można obliczyć wartość gradientu błędu będzie się on zerować w minimum. W przypadku aproksymatorów nieliniowych może być wiele minimów lokalnych, jednak zerowanie gradientu błędu jest warunkiem koniecznym istnienia minimum funkcji w punkcie. Przystąpmy zatem do obliczenia gradientu. Dla neuronu wyjściowego (patrz rysunek) mamy: a ponieważ dla każdego neuronu: dostaniemy zatem:

Dla neuronu warstwy ukrytej, którego wyjście jest dostarczane do neuronu wyjściowego (patrz rysunek), mamy: a ponieważ dla każdego neuronu: dostaniemy zatem: Dla neuronu znajdującego się warstwę głębiej mamy:

Oznaczmy: Możemy zatem zapisać: O swoistej urodzie gradientu funkcji błędu względem wag sieci świadczy fakt, że do obliczenia gradientu względem wag warstwy ukrytej wystarczy informacja o gradiencie wag warstwy, która po niej następuje. Z tej przyczyny sposób obliczania gradientu jest nazywany algorytmem wstecznej propagacji błędu błąd propaguje wzdłuż wag sieci w kierunku od wyjścia do wejścia. Spełnienie warunku koniecznego istnienia minimum funkcji w punkcie nie daje oszacowania wartości funkcji błędu w tym punkcie. Powstaje zatem pytanie czy dla dowolnej aproksymowanej funkcji istnieje sieć neuronowa, której błąd aproksymacji będzie nie większy niż pewien założony limit. Odpowiedzi na to pytanie udziela poniższe twierdzenie. Twierdzenie o uniwersalnych właściwościach aproksymacyjnych Załóżmy, że: jest zbiorem otwartym, skończonej miary jest funkcją ciągłą, taką że dla każdego

jest funkcją postaci: gdzie jest funkcją ciągłą, ograniczoną i monotoniczną. Wówczas: dla każdego istnieje taki zbiór wektorów wag, że dla każdego Tak więc na mocy powyższego twierdzenia wiemy, że istnieje taka struktura sieci neuronowej, w której da się zrealizować aproksymację z dowolnie małym błędem. Analizując gradient, umiemy także stwierdzić, czy zestaw wag sieci jest minimum lokalnym funkcji błędu. Pozostaje rzecz najtrudniejsza wyznaczyć taki zestaw wag, który jest nie tylko minimum lokalnym, lecz globalnym funkcji błędu. Uczenie sieci Jedną z najpowszechniej chyba stosowanych metod minimalizacji błędu sieci neuronowej jest przeszukiwanie przestrzeni wag według algorytmu wzrostu. Algorytm wychodzi z ustalonego arbitralnie wektora wag, po czym oblicza wektor gradientu funkcji błędu i jako nowy wektor wag przyjmuje wektor znajdujący się na półprostej wyprowadzonej w kierunku minus gradientu. Taką metodę nazywa się często metodą wstecznej propagacji błędu, a jej algorytm jest podany poniżej. Algorytm uczenia perceptronu inicjuj powtarzaj dopóki Gradient funkcji błędu można obliczyć, korzystając z zasady wstecznej propagacji błędu, sumując iloczyny po wszystkich elementach zbioru trenującego. Taki sposób uczenia nazywa się trybem blokowym. Istnieje jednak inna możliwość zamiast wykorzystywać cały zbiór trenujący, można wziąć jedynie jego podzbiór (np. losowowybrany podzbiór, w szczególności podzbiór jednoelementowy), w każdej iteracji algorytmu uczenia wybierany na nowo, i obliczać gradient dla elementów zbioru. Jeśli ponumerujemy elementy zbioru, a podzbiór będzie jednoelementowy i będzie zawierać za każdym razem element z o kolejnym numerze porządkowym, to taki tryb uczenia nazywa się uczeniem sekwencyjnym. Przyjęcie trybu blokowego powoduje, że możliwie najdokładniej przybliżana jest wartość gradientu funkcji błędu. Jeśli funkcja błędu obliczana dla zbioru ma wąskie minima

lokalne takie, których stwierdzenie nie jest możliwe po usunięciu choć jednego elementu zbioru to przypuszczalnie nie odpowiadają one minimum globalnemu. Posłużenie się jedynie podzbiorem, w dodatku zmieniającym się z iteracji na iterację, pozwala algorytmowi skoncentrować się na szerokich minimach funkcji błędu, co czyni metodę uczenia nieco odporniejszą na minima lokalne. Wtedy jednak należy się liczyć z faktem, że warunek zatrzymania spadek normy gradientu błędu poniżej założonego poziomu może nie być spełniony. Można ten problem ominąć, zwiększając wartość, albo ustalić apriori liczbę iteracji algorytmu. Powyższy algorytm wykonuje krok w kierunku minus gradientu; szerokość tego kroku jest stałą krotnością gradientu (reguluje to współczynnik uczenia ). Takie postępowanie może prowadzić do bardzo długotrwałego procesu uczenia, jeśli gradient funkcji błędu ma małą długość (norma gradientu jest niewielką liczbą). Małe wartości gradientu z kolei występują w dwóch sytuacjach: gdy neurony są bliskie nasyceniu (tzn. wartości gradientu funkcji aktywacji są małe) albo gdy mamy do czynienia z minimum funkcji błędu (patrz poniższy rysunek). W tym pierwszym przypadku, po wykonaniu ruchu w kierunku minus gradientu, znajdujemy się w nowym punkcie, w którym gradient ma najczęściej ten sam kierunek (a nierzadko i tę samą wartość) co poprzednio. Z tą sytuacją mamy do czynienia dla punktu. W tym drugim przypadku, po wykonaniu podobnego kroku mamy najczęściej do czynienia ze zmianą kierunku i wartości gradientu (tak jest przykładowo dla punktu ). Obserwacje te stanowią motywację metody przyspieszenia algorytmu uczenia perceptronu, polegającej na dodaniu momentu bezwładności. Algorytm wygląda następująco: Algorytm uczenia perceptronu z momentem bezwładności inicjuj powtarzaj dopóki

Współczynnik jest momentem bezwładności i spełnia warunek. Jeśli zachodzi pierwszy z omawianych wcześniej przypadków (gradient w przybliżeniu niezmienny wzdłuż kierunku swoich zmian), wówczas efektywny współczynnik uczenia wynosi w przybliżeniu, gdzie jest liczbą kroków, w których gradient jest w przybliżeniu niezmienny. A zatem w kolejnych iteracjach algorytm uczenia wykonuje coraz większy krok, co pozwala przyspieszyć jego działanie. Z kolei gdy w kolejnych krokach gradient różni się, krok się zmniejsza. Przykładowo, dla, efektywny współczynnik uczenia wyniesie, co pozwala na dokładniejszą lokalizację minimum lokalnego funkcji błędu. Omawiane algorytmy uczenia sieci korzystają z warunku koniecznego istnienia minimum funkcji w punkcie. Oznacza to, że wektor wag będzie zdążać do takiego wektora, dla którego przypada minimum lokalne funkcji błędu, niekoniecznie będące minimum globalnym. Nie jest znany algorytm dający gwarancję znalezienia minimum globalnego dowolnej funkcji w, a zatem nie możemy liczyć na gwarancję wyznaczenia optymalnego wektora wag. Można jednak zwiększyć prawdopodobieństwo wyznaczenia minimum globalnego, stosując np. techniki omawiane we wcześniejszej lekcji poświęconej metodom przeszukiwania wykorzystującym losowość.