Każdy z neuronów posiada pięć wag; do każdego neuronu doprowadzony jest ten sam sygnał wejściowy. Działanie jednowarstwowej , trzyelementowej sieci oparte jest na zasadzie WAT (ang. Winer Take All) - zwycięzca bierze wszystko. Polega ona na tym, że do każdego z neuronów sieci doprowadza się ten sam sygnał wejściowy, następnie zostaje wyliczona wartość wyjściowa dla każdego neuronu. Neuron o największej (powyżej progowej wartości) wartości wyjścia zostaje zwycięzcą co dalej dla takiej sieci i takiego neuronu może rodzić różnorakie konsekwencje. Może to predysponować taki neuron do dalszego uczenia albo może np. stanowić wskazanie przynależności (faza eksploatacji lub testowania) obiektu definiowanego przy pomocy wektora wejściowego do klasy obiektów rozpoznawanych przez dany neuron (np. opis wrony poprzez odpowiednie wejście może być rozpoznane przez poprawnie nauczoną sieć jako obiekt przynależny do ptaków i do niczego więcej).
Praca danej sieci z zaimplementowanym progiem i przepisem działania WAT odbywa się według algorytmu:
struktury danych algorytmu:
NA1, NA2, NA3, NA4, NA5 - wagi neuronu A, wektor wag neuronu A to [NA1, NA2, NA3, NA4, NA5]
NB1, NB2, NB3, NB4, NB5 - wagi neuronu B, wektor wag neuronu B to [NB1, NB2, NB3, NB4, NB5]
NC1, NC2, NC3, NC4, NC5 - wagi neuronu C, wektor wag neuronu C to [NC1, NC2, NC3, NC4, NC5]
Ob1, Ob2, Ob3, Ob4, Ob5 - kolejne wartości wektora sygnału wejściowego ŕ wektor wejściowy to [Ob1, Ob2, Ob3, Ob4, Ob5]T
{ ----- wyjście dla neuronu A ----- }
Wyj := NA1 * Ob1 + NA2 * Ob2 + NA3 * Ob3 + NA4 * Ob4 + NA5 * Ob5;
TabPom[1] := Wyj;
{ ----- wyjście dla neuronu B ----- }
Wyj := NB1 * Ob1 + NB2 * Ob2 + NB3 * Ob3 + NB4 * Ob4 + NB5 * Ob5;
TabPom[2] := Wyj;
{ ----- wyjście dla neuronu C ----- }
Wyj := NC1 * Ob1 + NC2 * Ob2 + NC3 * Ob3 + NC4 * Ob4 + NC5 * Ob5;
TabPom[3] := Wyj;
{ zostały wyliczone wartości wyjść dla poszczególnych neuronów}
{teraz przechodzimy do ustalenia zwycięzcy - neuronu który zidentyfikował obiekt}
struktury danych algorytmu klasyfikacji WAT z progiem:
MaxWin - wartość progowa dla rozpoznawanych obiektów - wyjść poszczególnych neuronów zapisanych w trzyelementowej tablicy TabPom.
Winner - numer neuronu który rozpoznał obiekt
MaxWin - wartość określa próg przy którym można mówić o zwycięzcy. Jeśli wszystkie wartości wyjściowe poszczególnych neuronów są mniejsze od wartości progowej algorytm nie wyłania zwycięzcy przez co dany wektor sygnałów wejściowych jest odrzucany przez sieć trzech neuronów.
Winer := 0;
MaxWin := Prog;
for I := 1 to 3 do
if MaxWin <= TabPom[I] then
begin
MaxWin := TabPom[I];
Winer := I;
end;
{jeśli Winner jest równy 0, to znaczy, ze sieć nie potrafi zidentyfikować obiektu}
W przykładzie zostały wagi odpowiednio nazwane a wybór odpowiedniego - zwycięskiego - neuronu jest równoważny w rozpoznaniu wejścia jako nazwanego obiektu o określonych cechach (wartościami wag).
Opis modułu aplikacjiPrzykład składa się z dwóch ekranów znajdujących się pod dwoma zakładkami - “Określenie sieci” i “Testowanie sieci”.
Ekran “Określenie sieci” zawiera opis pięciu cech oraz trzech neuronów, dla których użytkownik ma możliwość edytowania i modyfikacji poszczególnych wag jak i skojarzonych z poszczególnymi wagami cech.
Cechy określamy dla wszystkich obiektów - neuronów. Co jest widoczne na umieszczonym poniżej rysunku pól zgrupowanych w sekcję Informacje o cechach. Określenie cechy polega na nazwaniu wejścia neuronu tzn. określamy, że pierwsze wejście będzie stanowić o ilości nóg rozpoznawanego obiektu, tak ustanowiona uwaga pozwala nam na odpowiednie konstruowanie wag odpowiednich neuronów jak i podawanie w sposób oczywisty parametrów dla badanych obiektów.
Następnie dla każdej klasy obiektów określamy jej cech indywidualne. Np. jako cechę wybieramy ilość nóg, klasy obiekty to ssak - ma 4 nogi, ptak - 2 nogi, płaz - brak (0) nóg, co zapisujemy jako bezpośrednie wartości poszczególnych neuronów A, B, C.
Dla każdego neuronu automatycznie wyliczana jest jego moc zestawu wag – co inaczej jest nazywane moc śladu pamięciowego.
Po określeniu parametrów sieci użytkownik może przejść do jej testowania (zakładka “Testowanie sieci”).
Na ekranie testowania sieci użytkownika określa sygnał testowy (dane dla badanego obiektu skojarzone z jego cechami), po czym testuje sieć. Sieć podaje odpowiedź dla zdefiniowanego przez użytkownika obiektu i wskazuje, który z neuronów rozpoznał testowany obiekt. Wyznaczane przez sieć wartości to moc sygnału wejściowego, odpowiedzi ilościowe każdego z neuronów, klasyfikacja jakościowa odpowiedzi – porównanie z zadanym progiem poprawnej klasyfikacji, wskazanie jednego (WTA) obiektu najlepiej pasującego swoimi wagami do wektora sygnałów wejściowych oraz spełniającego wymogi jakości klasyfikacji (ponad próg).
# C_M2
K prosta sieć neuronowa - działanie, WAT
$ Prosta sieć neuronowa (z WAT)