cwicz2 teoria, uczenie maszynowe, sieci neuronowe


TEORIA DO ĆWICZENIA 2

Model neuronu

Sztuczna sieć neuronowa (SSN) to model obliczeniowy, złożony z elementów naśladujących działania komórek nerwowych zwanych neuronami. Sztuczne neurony nie są dokładnymi kopiami oryginalnych neuronów, są raczej ich bardzo uproszczonymi odpowiednikami matematycznymi, mającymi podobne właściwości i działającymi w zbliżony sposób jak ich pierwowzory. Neuron w SSN charakteryzuje się występowaniem wielu wejść i jednego wyjścia. W modelu sztucznego neuronu, każdemu połączeniu między neuronami przypisuje się odpowiednią wagę (siłę powiązania między elementami). Waga (odpowiednik efektywności synapsy w neuronie biologicznym) to pewna stała, przez którą przemnożony jest każdy sygnał przechodzący między dwoma konkretnymi neuronami, dzięki czemu, impulsy od jednych neuronów są ważniejsze od innych. Waga może mieć charakter pobudzający (dodatnia waga) lub hamujący (ujemna waga). Jeżeli nie ma połączenia między neuronami to waga jest równa zero. W ten sposób odrzucane są nieistotne informacje wejściowe.

W praktyce każdy neuron pobiera sygnały od wszystkich połączonych ze sobą elementów, przemnaża je przez odpowiednią wagę, otrzymane wartości sumuje i to łączne pobudzenie neuronu jest z kolei przekształcane przez ustaloną funkcję aktywacji (zwaną też funkcją przejścia) - rys.1. Wartość funkcji aktywacji jest ostatecznie wartością wyjściową neuronu. Funkcja przejścia może być funkcją liniową, skokową, sigmoidalną, tangensoidalną etc.. Wybór funkcji należy do projektanta sieci i zależy od problemu, który ma ona rozwiązywać.

0x01 graphic

Rys. 1: Model sztucznego neuronu

Do każdego neuronu o numerze i przesyłana jest wartość rzeczywistą xi z wagą wi. Informacja wejściowa xi jest przemnażana przez odpowiadającą jej wagę wi. Przekazana informacja jest integrowana w neuronie (zwykle przez zsumowanie wszystkich sygnałów) i to tzw. łączne pobudzenie neuronu e jest przekazywane jako argument do funkcji aktywacji f i następnie jest wyliczana wartość sygnału wyjściowego.

Model opisujący działanie neuronu może być zapisany w postaci:

0x01 graphic

gdzie

x1, ... ,xn - sygnały wejściowe danego neuronu;

w1, ... ,wn - wagi synaptyczne;

y - sygnał wyjściowy.

Przykładowe funkcje aktywacji używane przy konstrukcji sieci:

0x01 graphic

gdzie 0x01 graphic
- wartość progowa.

0x01 graphic
,0x01 graphic

Uczenie neuronu

Jedną z najważniejszych cech sieci neuronowych jest ich zdolność uczenia się, czyli zdolność do samodzielnego dostosowywania współczynników wagowych. Dzięki temu mają one charakter sztucznej inteligencji, potrafią samodzielnie przystosowywać się do zmieniających się warunków. Celem uczenia jest taki dobór wag w poszczególnych neuronach aby sieć mogła rozwiązywać stawiane przed nią problemy.

W naszym przypadku sieć uczy się metodą wstecznej propagacji błędów - jest to uczenie z nadzorem lub inaczej- z nauczycielem.

Pierwszą czynnością w procesie uczenia jest przygotowanie dwóch ciągów danych: uczącego i weryfikującego. Ciąg uczący jest to zbiór takich danych, które w miarę dokładnie charakteryzują dany problem. Jednorazowa porcja danych nazywana jest wektorem uczącym. W jego skład wchodzi wektor wejściowy czyli te dane wejściowe, które podawane są na wejścia sieci i wektor wyjściowy czyli takie dane oczekiwane, jakie sieć powinna wygenerować na swoich wyjściach. Po przetworzeniu wektora wejściowego, porównywane są wartości otrzymane z wartościami oczekiwanymi i sieć jest informowana, czy odpowiedź jest poprawna, a jeżeli nie, to jaki powstał błąd odpowiedzi. Błąd ten jest następnie propagowany do sieci ale w odwrotnej niż wektor wejściowy kolejności (od warstwy wyjściowej do wejściowej) i na jego podstawie następuje taka korekcja wag w każdym neuronie, aby ponowne przetworzenie tego samego wektora wejściowego spowodowało zmniejszenie błędu odpowiedzi. Procedurę taką powtarza się do momentu wygenerowania przez sieć błędu mniejszego niż założony. Wtedy na wejście sieci podaje się kolejny wektor wejściowy i powtarza te czynności. Po przetworzeniu całego ciągu uczącego (proces ten nazywany jest epoką) oblicza się błąd dla epoki i cały cykl powtarzany jest do momentu, aż błąd ten spadnie poniżej dopuszczalnego. Sieci wykazują tolerancję na nieciągłości, przypadkowe zaburzenia lub wręcz niewielkie braki w zbiorze uczącym.

 Jeżeli mamy już nauczoną sieć, musimy zweryfikować jej działanie. W tym momencie ważne jest podanie na wejście sieci wzorców z poza zbioru treningowego w celu zbadania czy sieć może efektywnie generalizować zadanie, którego się nauczyła. Do tego używamy ciągu weryfikującego, który ma te same cechy co ciąg uczący tzn. dane dokładnie charakteryzują problem i znamy dokładne odpowiedzi. Ważne jest jednak, aby dane te nie były używane uprzednio do uczenia. Dokonujemy zatem prezentacji ciągu weryfikującego z tą różnicą, że w tym procesie nie rzutujemy błędów wstecz a jedynie rejestrujemy ilość odpowiedzi poprawnych i na tej podstawie orzekamy, czy sieć spełnia nasze wymagania, czyli jak została nauczona.

Algorytm propagacji wstecznej jest jednym z najskuteczniejszych algorytmów uczenia sieci wielowarstwowej. Jego nazwa pochodzi od sposobu obliczania błędu w poszczególnych warstwach sieci. Najpierw obliczane są błędy w warstwie ostatniej na podstawie porównania aktualnych i wzorcowych sygnałów wyjściowych i na tej podstawie dokonywane są zmiany wag połączeń, następnie w warstwie ją poprzedzającej i tak dalej aż do warstwy wejściowej. W algorytmie propagacji wstecznej można wyróżnić trzy fazy:

Działanie pojedynczego neuronu

Model pojedynczego neuronu (perceptronu) można przedstawić następująco:

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

gdzie:

w1, w2, b - to wartości wag połączeń odpowiednio wejść x1, x2 i biasu

0x01 graphic
jest to łączne pobudzenie neuronu e

Kolejne etapy w jednym kroku uczenia dla przedstawionego neuronu przy skokowej funkcji aktywacji:

1) dla danego wektora uczącego (x1, x2, d) wyliczenie łącznego pobudzenia 0x01 graphic

2) wyliczenie aktualnego wyjścia sieci 0x01 graphic

założyliśmy, że wartość progowa 0x01 graphic
= 0

3) w przypadku błędnej odpowiedzi sieci tzn. y≠d modyfikacja wag według następujących wzorów:

0x01 graphic

0x01 graphic

0x01 graphic

gdzie 0x01 graphic
- współczynnik szybkości uczenia

Przy liniowej separowalności sygnałów wejściowych sieć jest w stanie się nauczyć poprawnych odpowiedzi. Po zakończeniu procesu uczenia granica decyzyjna jest dana wzorem: 0x01 graphic
. Perceptron poprawnie klasyfikuje sygnały z ciągu uczącego, jak i te które do ciągu nie należą, ale również spełniają warunek liniowej separowalności.

Na sieci tej możliwa jest realizacja funkcji logicznych AND i OR, ale już nie jest możliwa realizacja funkcji XOR (nie spełnia warunku liniowej separowalności). „Siła” sieci neuronowych tkwi w połączeniach, w związku z tym sieci składające się z wielu neuronów będą miały o wiele więcej zastosowań.

Kolejne etapy w jednym kroku uczenia dla przedstawionego neuronu przy sigmoidalnej funkcji aktywacji0x01 graphic
,0x01 graphic

1) dla danego wektora uczącego (x1, x2, d) wyliczenie łącznego pobudzenia 0x01 graphic

2) wyliczenie aktualnego wyjścia sieci 0x01 graphic

3) w przypadku błędnej odpowiedzi sieci tzn. y≠d modyfikujemy wagi

Stosujemy tutaj regułę Delta:

0x01 graphic
0x01 graphic

Warto zauważyć, że dla funkcji sigmoidalnej o wzorze 0x01 graphic

0x01 graphic

Modyfikacja wag przebiega następująco:

0x01 graphic

0x01 graphic

0x01 graphic

Sieć wielowarstwowa

Sieć wielowarstwowa posiada warstwę wejściową, wyjściową oraz jedną lub więcej warstw ukrytych. Zadaniem elementów w warstwie wejściowej jest wstępne przetwarzanie impulsu wejściowego x=[x1, x2, x3, ..., xN]. Zasadnicze przetwarzanie neuronowe impulsu wejściowego odbywa się w warstwach ukrytych oraz w warstwie wyjściowej. Warstwy te zbudowane są z elementów przetwarzających, które stanowią modele sztucznych neuronów. Połączenia pomiędzy poszczególnymi warstwami są zaprojektowane tak, że każdy element warstwy poprzedniej jest połączony z każdym elementem warstwy następnej. Połączeniom tym są przypisane odpowiednie współczynniki wag, które w zależności od zadania, jakie dana sieć powinna rozwiązywać, są wyznaczane dla każdego przypadku z osobna. Na wyjściu sieci generowany jest impuls wyjściowy y=[y1, ..., yM].

Model sieci wielowarstwowej:

0x01 graphic

Uczenie sieci wielowarstwowych

W sieciach tego typu najistotniejszym problemem jest dobór wag w warstwach ukrytych. Jednak istnieją algorytmy umożliwiające efektywne uczenie takich sieci.

Dla dużych sieci i ciągów uczących składających się z wielu tysięcy wektorów uczących ilość obliczeń wykonywanych podczas całego cyklu uczenia jest gigantyczna a więc i czasochłonna. Nie zdarza się także aby sieć została dobrze zbudowana od razu. Zawsze jest ona efektem wielu prób i błędów. Ponadto nigdy nie mamy gwarancji, że nawet prawidłowa sieć nie utknie w minimum lokalnym podczas gdy interesuje nas znalezienie minimum globalnego. Dlatego algorytmy realizujące SSN wyposaża się mechanizmy dające nauczycielowi możliwość regulacji szybkości i jakości uczenia. Są to tzw współczynniki: uczenia i momentum. Wpływają one na stromość funkcji aktywacji i regulują szybkość wpływu zmiany wag na proces uczenia.

Przy pojedynczym współczynniku uczenia η, do uczenia sieci wielowymiarowych stosujemy regułę Delta, przy czym definiujemy sygnał błędu dla każdego neuronu z warstw ukrytych. Doprowadza nas to do następującego wzoru na zmianę wagi między j- tym neuronem w warstwie k a i- tym w warstwie k-1:

0x01 graphic
0x01 graphic

gdzie:

0x01 graphic
- zmiana wartości wagi połączenia między neuronem j w warstwie k, a neuronem i w warstwie k-1,

η - współczynnik szybkości uczenia,

0x01 graphic
- błąd neuronu j w warstwie k,

f'(ej) - pochodna funkcji aktywacji,

xi - sygnał wejściowy pochodzący od neuronu j.

Aby przyspieszyć proces uczenia, a jednocześnie uniknąć niebezpieczeństwa oscylacji w sieci (czyli wpadania algorytmu w minima lokalne funkcji błędu) wprowadza się modyfikację do algorytmu, zwaną Uogólnioną Regułą Delty, zawierającą czynnik bezwładności 0x01 graphic
:

0x01 graphic

gdzie:

η1 - współczynnik szybkości uczenia,

η2 - momentum,

0x01 graphic
- poprzednia zmiana wag.

x1

w1

x2

w2

y = f(e)

bias = 1

e = w1·x1 + w2·x2 + b

b



Wyszukiwarka

Podobne podstrony:
cwicz2 old, uczenie maszynowe, sieci neuronowe
cw3 teoria old, uczenie maszynowe, sieci neuronowe
cwicz2, uczenie maszynowe, sieci neuronowe
cw1 2009, uczenie maszynowe, sieci neuronowe
cw3 old, uczenie maszynowe, sieci neuronowe
cw1 old, uczenie maszynowe, sieci neuronowe
Wykłady Sieci Neuronowe(1), uczenie maszynowe, sieci neuronowe
sn, uczenie maszynowe, sieci neuronowe
SIECI NEURONOWE(1), uczenie maszynowe, sieci neuronowe
Krzywański, Węgrzyn Wykorzystanie sztucznych sieci neuronowych dla celow modelowania rzeczywistości
Społeczno pragmatyczna teoria uczenia sie słów
Smarowanie - teoria1, Projektowanie Maszyn (PM)
MSI-program-stacjonarne-15h-2011, logistyka, semestr IV, sieci neuronowe w log (metody sztucznej int
Ontogeniczne sieci neuronowe skrypt(1)
04 Wyklad4 predykcja sieci neuronoweid 523 (2)
Ściąga ze sztucznej inteligencji(1), uczenie maszynowe, AI

więcej podobnych podstron