next up previous contents
Następny: Sposób uwzględnienia historii Nadrzędny: Algorytm wyznaczania priorytetu Poprzedni: Sposób uwzględnienia aktywności   Spis rzeczy


Zastosowanie sieci neuronowej

W sposobie analizy aktualnej aktywności komputerów opisanej w p. 3.2.2 wskazano sposób jej szacowania poprzez obliczenie wartości pewnego parametru, zwanego estymatorem. Dane użyte do jego wyznaczenia opisują zachowanie danego komputera w ostatnim cyklu gromadzenia informacji o stanie sieci. Moduł decydenta oblicza jednak priorytet, który będzie wykorzystywany do sterowania ruchem w następnym cyklu. Opieranie się zatem jedynie na zebranych danych jest niewystarczające i prowadziłoby do efektu niedopasowania wielkości priorytetu do aktualnego stanu sieci. Z drugiej jednak strony oprogramowanie nie jest w stanie zgadnąć w jaki sposób poszczególne komputery będą wykorzystywać dostępne pasmo w cyklu, dla którego właśnie trwają analizy.

Do szacowania przyszłej wartości estymatora moduł decydenta wykorzystuje dwie metody: aproksymację liniową i sieć neuronową. Pierwsza z nich jest bardzo prosta do zaimplementowania, wykorzystuje jedynie dwie ostatnio wyznaczone wartości i służy głównie do przeprowadzania ogólnych testów działania modułu decydenta. Z kolei wykorzystanie sieci neuronowej jest formą wyposażenia modułu decydenta w sztuczną inteligencję. Niewątpliwą zaletą tej metody jest bardzo duża elastyczność sieci -- jej wielkość i parametry działania można łatwo modyfikować w szerokim zakresie. W efekcie tworzony system posiada duże możliwości. Niestety pełne ich wykorzystanie wymaga poznania subtelnych szczegółów działania sieci neuronowych. Rezultaty osiągnięte przez autorów, po wielu próbach dobierania parametrów sieci przyniosły nieduży zysk w porównaniu z zastosowaniem aproksymacji liniowej (więcej szczegółów por. rozdz. 4.2).

Działanie sieci neuronowej oparte jest na modelu neuronu -- komórki nerwowej, która wyznacza -- na podstawie pewnej liczby sygnałów wejściowych -- wartość wysyłanego przez nią sygnału wyjściowego. Tak określona funkcjonalność jest bardzo ogólna i może sprawiać wrażenie mało użytecznej, pozwala jednak na osiągnięcie trudnych do uzyskania innymi metodami efektów.

Kluczem są dwa pomysły:

Neurony łączy się poprzez przekazywanie sygnałów wyjściowych jako danych wejściowych dla innych komórek. Dowolną liczbę wyjść można połączyć z dowolną liczbą wejść, tworząc graf skierowany połączeń pomiędzy neuronami. Każda krawędź tego grafu posiada przypisaną liczbę zwaną wagą, która określa znaczenie danego połączenia pomiędzy neuronami. Zdolność uczenia się i pojemność sieci jest mocno zależna od wyglądu tego grafu, co jest jednak tematem zbyt obszernym by można go było opisać w tej pracy -- mogą to być dowolne struktury od skrajnie prostych (pojedynczy neuron), poprzez układy przypominające drzewa do skomplikowanych grafów bez widocznej logiki (losowe połączenia) lub sieci rezonansowych (których grafy zawierają pętle). Autorzy pracy zdecydowali się na wykorzystanie najczęściej spotykanego sposobu tworzenia sieci: N ponumerowanych warstw neuronów, z których:

Uczenie polega na przygotowaniu zestawu danych wejściowych oraz oczekiwanych wartości wyjściowych i takich zmianach wag połączeń pomiędzy neuronami, aby otrzymywany sygnał wyjściowy był jak najbliższy wartości oczekiwanej. Obliczona różnica pomiędzy wartością oczekiwaną a wygenerowaną przez sieć stanowi błąd szacowania. Odwracając kierunek przepływu sygnału przez sieć dokonuje się modyfikacji wag połączeń proporcjonalnie do wielkości błędu. Taka metoda uczenia nosi nazwę algorytmu propagacji wstecznej. Przy odpowiednio długim procesie doboru wag sieć neuronowa zyskuje zdolność uogólniania i ekstrapolacji, co pozwala jej na obliczanie sensownych wartości także dla danych wejściowych, które nie pojawiły się w procesie uczenia.

Dokładne omówienie zagadnień związanych z tematyką i zastosowaniami sieci neuronowych zdecydowanie wykracza poza tematykę prezentowanej pracy magisterskiej. Obszerne wprowadzenie do tej dziedziny wraz z dalszą bibliografią można znaleźć w opracowaniach [22,12,20].

Sieć neuronowa zastosowana w przypadku decydenta służy do przewidywania kolejnej, przyszłej wartości estymatora I na podstawie 12 ostatnio badanych jego wartości. Wykorzystano sieć składającą się z czterech warstw: 12 neuronów wejściowych, 12 i 6 w warstwach pośrednich oraz jednego neuronu wyjściowego. Dane wejściowe stanowi ciąg 12 liczb, będących wartościami estymatora I z poprzednich 12 kroków algorytmu. W następnej kolejności obliczane są wartości pojawiające się na wyjściu kolejnych warstw. Ostatnia warstwa składa się tylko z jednego neuronu, więc na wyjściu otrzymujemy jedną liczbę - przewidywaną wartość estymatora I. Oczywiście opisany proces szacowania estymatora I jest możliwy tylko wówczas kiedy sieć została już poddana uczeniu i wagi połączeń pomiędzy jej neuronami zostały odpowiednio zmodyfikowane. Proces uczenia się dokonuje się niejako równolegle. Na początku bowiem przez określoną liczbę kroków algorytmu dane przesyłane przez sieć neuronową służą do modyfikowania wag. Obliczona przez sieć wartość jest zapamiętywana i porównywana z wartością rzeczywistą jeden krok algorytmu później. Obliczona wówczas różnica służy do modyfikacji wag zgodnie z algorytmem propagacji wstecznej.


next up previous contents
Następny: Sposób uwzględnienia historii Nadrzędny: Algorytm wyznaczania priorytetu Poprzedni: Sposób uwzględnienia aktywności   Spis rzeczy
Marcin Kaszyński, Krzysztof Lorek