m3

#K$Uczenie pojedynczego neuronu

Sztuczny neuron przetwarza informacje wejściowe xi na pewien sygnał wyjściowy y. Neurony traktować można jako elementarne procesory o następujących właściwościach:

Każdy neuron dysponuje pewną wewnętrzną pamięcią (reprezentowaną przez aktualne wartości wag i progu) oraz pewnymi możliwościami przetwarzania wejściowych sygnałów w sygnał wyjściowy.

Proces uczenia neuronu sprowadza się do modyfikowania współczynników wagowych neuronu w taki sposób, by neuron działał zgodnie z oczekiwaniami użytkownika. W przykładzie tym wykorzystaliśmy uczenie z nauczycielem.

Uczenie z nauczycielem polega na tym, że neuronowi podaje się przykłady poprawnego działania, które powinien on potem naśladować w swoim bieżącym działaniu. Przykład należy rozumieć w ten sposób, że nauczyciel podaje konkretne sygnały wejściowe i wyjściowe, pokazując, jaka jest wymagana odpowiedź sieci dla pewnej konfiguracji danych wejściowych. W typowym procesie uczenia sieć otrzymuje od nauczyciela ciąg uczący i na jego podstawie uczy się prawidłowego działania, stosując jedną z wielu znanych dziś strategii uczenia

Najbardziej znaną z reguł uczenia z nauczycielem jest reguła delta.

Polega ona na tym, że każdy neuron po otrzymaniu na swoich wejściach określone sygnały (z wejść sieci albo od innych neuronów, stanowiących wcześniejsze warstwy sieci) wyznacza swój sygnał wyjściowy wykorzystując posiadaną wiedzę w postaci wcześniej ustalonych wartości wag, wartości wejść oraz (ewentualnie) progu. Wartość sygnału wyjściowego, wyznaczonego przez neuron na danym kroku procesu uczenia porównywana jest z odpowiedzią wzorcową podaną przez nauczyciela w ciągu uczącym. Jeśli występuje rozbieżność - neuron wyznacza różnicę pomiędzy swoim sygnałem wyjściowym a tą wartością sygnału, która była by - według nauczyciela prawidłowa. Ta różnica oznaczana jest zwykle symbolem greckiej litery  (delta) i stąd nazwa opisywanej metody.

Sygnał błędu (delta) wykorzystywany jest przez neuron do korygowania swoich współczynników wagowych (i ewentualnie progu), stosując następujące reguły:

W naszym przykładzie o zakończeniu procesu uczenia decyduje użytkownik. Proces uczenia może zostać uznany za zakończony gdy wyliczane po każdym kroku uczenia błędy są małe - powodują one minimalne korekty wag.


Program wczytuje dane z pliku zawierającego ciąg uczący (dane wejściowe i wzorcowe odpowiedzi) klasyfikuje obiekty, których dane są w tym pliku kolejno zapisane.

Podczas symulowanego uczenia użytkownik może śledzić w kolejnych krokach postęp uczenia, obserwując, jak zmieniają się współczynniki wag i błąd.


struktury danych algorytmu:

wyjscie - sygnał wyjściowy, odpowiedź neuronu dla zadanego sygnału wejściowego

wagi - wektor wag neuronu, modyfikowany w trakcie uczenia neuronu,

sygnaly - sygnały wejściowe; sygnały wczytywane są z pliku zewnętrznego – ciągu uczącego,

blad - wartość błędu wyliczana po każdej iteracji uczenia,

prawidlowe - wzorcowa prawidłowa wartość wyjścia (wczytywana z ciągu uczącego),

wspolczynnik - wartość współczynnika uczenia, ustalana przez użytkownika

Neuron ma 5 wejść, początkowe wartości współczynników wagowych są otrzymywane za pomocą generatora liczb pseudolosowych.


wyliczanie sygnału wyjściowego:

wyjscie := 0;

for i := 1 to 5 do

wyjscie := wyjscie + wagi[i] * sygnaly[i];


błąd po każdym kroku:

blad := prawidlowe - wyjscie;


modyfikacja wag, na podstawie wyliczonego błędu:

for i := 1 to 5 do

wagi[i] := wagi[i] + wspolczynnik * blad * sygnaly[i];


Testowanie neuronu polega na podawanie na jego wejścia określonych przez użytkownika sygnałów. Neuron wylicza dla tych wartości wejść sygnał wyjściowy.

Opis modułu aplikacji

Moduł ten ilustruje uczenie neuronu o charakterystyce liniowej, o 5 wejściach.

Użytkownik ma w tym przykładzie do dyspozycji 2 ekrany, znajdujące się pod odpowiednimi zakładkami – ekran wczytywania ciągu uczącego oraz ekran nauki i testowania neuronu. Na pierwszym ekranie użytkownik określa jaki jest ciąg uczący użyty do uczenia sieci.

W tym celu może wykonać jedną z poniższych operacji:

Plik wczytany do edytora może być przez użytkownika dowolnie modyfikowany i zapisywany. Format pliku jest stały, następują w nim po sobie (wielokrotnie powtórzone):


linia komentarza (rozpoczynająca się średnikiem)

5 liczb będących sygnałami wejściowymi

sygnał wyjściowy


Po wczytaniu ciągu uczącego (i ewentualnym naniesieniu na nim poprawek) użytkownik ma możliwość użycia tego ciągu do uczenia i testowania sieci. W tym celu należy wybrać zakładkę “Uczenie i testowanie” w dolnej części ekranu.

Na oknie Uczenia i testowania użytkownik może uczyć neuron (jednorazowe użycie przycisku “Uczenie neuronu” jest równoznaczne z podaniem na wejście sieci jednego elementu wybranego ciągu uczącego “),

a również może w dowolnym momencie przeprowadzić test neuronu (określając poszczególne wejścia i naciskając przycisk “Testowanie neuronu” ).

Wtedy dla określonych przez użytkownika sygnałów wejściowych neuron wyliczy sygnał wyjściowy.


# C_M3

K uczenie pojedynczego neuronu

$ Uczenie pojedynczego neuronu


Wyszukiwarka

Podobne podstrony:
M3 6 4
10 M3 JankowskiM MuszyńskiA ZAD10
M3 2 2
M3, WSFiZ Warszawa, Semestr II, Technologie informacyjne - ćwiczenia (e-learning) (Grzegorz Stanio)
fiz m3 teoria
1 3 m3 wstep
M3 2 1
ECCC Sylabus IT M3 A
M3 1 7
pielegn srod rodz m3
M3, weterynaria uwm III rok, patofizjo
ECCC Sylabus CS M3 D
16 M3 KobierskiM SzypowskaK ZAD16
M3 6 1
Lista na MESM3
M3 doc
CWICZ M3, Studia, I, Fizyka
Projekt m3, Metody elementów skończonych
Fizyka - dokumenty, CWICZ D1, M3