Sieci neuronowe
Typowanie polega na prognozowaniu wystąpień lub przerwy w wystąpieniu, wybranych jedynek i dwójek na podstawie wcześniejszych wystąpień. Głównym przeznaczeniem typowania jest wspomaganie typowania dwójek w połączeniu z systemem stawkowym. Zasada typowania oraz sposób przedstawienia wyników jest bardzo podobny do typowania - regresja liniowa. Różnica polega na zastosowanym algorytmie do prognozowania. Tutaj użyto jednokierunkowej, kilkuwarstwowej sieci neuronowej. Zadaniem sieci jest przewidywanie następnej przerwy lub wystąpienia na podstawie wcześniejszych wystąpień danej kombinacji. Można powiedzieć, że chcemy nauczyć sieć zależności funkcyjnej pomiędzy kilkoma poprzednimi wynikami a wynikiem następnym (przyszłym).
Jak wygląda prognozowanie wystąpień kombinacji za pomocą sieci?
Przykład:
Załóżmy, że liczba 1 wystąpiła w następujących losowaniach:
1, 5, 7, 13, 14, 20, 21, 22, 24, 29, 30, 36, 40, 41, 42, 48, 55, 56, 61, 63
Na podstawie tych danych tworzony jest zbiór uczący.
(1, 5); (5, 7); (7, 13); (13, 14); (14, 20); (20, 21); (21, 22); (22, 24); (24, 29); (29, 30); (30, 36); (36, 40); (40, 41); (41, 42); (42, 48); (48, 55); (55, 56); (56, 61); (61, 63);
Każda para liczb (próbka zbioru uczącego) to indeks poprzedniego losowania - Wei i indeks następnego losowania - Wyi, czyli sygnał wejściowy i oczekiwany sygnał wyjściowy. Na podstawie tego zbioru sieć jest uczona, tzn. jej wagi są tak ustawiane, aby błąd sieci był jak najmniejszy. Błąd sieci to suma kwadratów różnic między wartością na wyjściu sieci a wartością oczekiwaną dla każdej próbki ze zbioru uczącego i dany jest wzorem:
gdzie n - liczba próbek, di - oczekiwany sygnał wyjściowy sieci w i-tej próbce, wi - wartość otrzymana na wyjściu sieci
Przykładowa struktura sieci czterowarstwowej w naszym przykładzie mogłaby wyglądać następująco:

Kółka oznaczają neurony, natomiast strzałki połączenia między neuronami (wagi - parametry swobodne sieci). Sieć zawiera 1 neuron wejściowy ponieważ w naszym przykładzie przewidujemy na podstawie jednego poprzedniego wyniku (w przypadku 2 wyników byłyby 2 neurony wejściowe itd.), 3 neurony w pierwszej warstwie ukrytej, 2 neurony w drugiej warstwie ukrytej oraz jeden neuron wyjściowy ponieważ prognozujemy tylko jedną wartość (przerwę lub wystąpienie). Sygnały wejściowe przechodzą (są przetwarzane) poprzez kolejne warstwy, aż do warstwy wyjściowej Sygnał wyjściowy każdego neuronu jest funkcją jego sygnałów wejściowych. Zachowanie sieci określają przede wszystkim wagi połączeń miedzy neuronami należącymi do różnych warstw. Liczba parametrów swobodnych (wag) w naszej sieci wynosi:
L = Nu1 * (Nwe + 1) + Nu2 * (Nu1 + 1) + Nwy * ((Nu2 + 1) = 3 * 2 + 2 * 4 + 1 * 3 = 17, gdzie
Nwe - liczba neuronów w warstwie wejściowej
Nu1 - liczba neuronów w pierwszej warstwie ukrytej
Nu2 - liczba neuronów w drugiej warstwie ukrytej
Nwy - liczba neuronów w warstwie wyjściowej
Jedynka w nawiasach oznacza dodatkową wagę zwaną obciążeniem, tzn. każdy neuron posiada jedno dodatkowe wejście, które ma zawsze wartość 1.0 (nie pokazane na rysunku).
Uczenie sieci (optymalne ustawianie wag sieci) zostaje przerwane, gdy osiągnięty zostanie zadany poziom błędu. Prognoza polega na podaniu na wejście nauczonej sieci indeksu ostatniego losowania lub ostatniej przerwy. Wartość na wyjściu sieci to indeks losowania, w którym powinna pojawić się kombinacja lub przerwa, która zostaje zamieniona na indeks przyszłego wystąpienia kombinacji..
Podobnie jak w regresji liniowej do prognozowania można (a nawet trzeba - dobrą wartością może być 3) użyć kilku poprzednich wyników. Sieć będzie miała wtedy tyle wejść, ile jest poprzednich indeksów losowań.
Parametry typowania są następujące:
Długość kombinacji – prognozować można jedynki lub dwójki
Rodzaj prognozy - prognozować można wystąpienia lub przerwy w wystąpieniach (zalecane)
Liczba poprzednich wyników – ile ostatnich losowań (w których wystąpiła kombinacja) zostanie użytych do prognozy następnego losowania.
Parametry sieci:
Błąd sieci - uczenie sieci zostaje przerwane, gdy osiągnięty zostanie zadany poziom błędu. Ustawienie wartości 0 spowoduje, że sieć będzie uczona tak długo, aż osiągnięty zostanie zerowy błąd lub też dalsze uczenie nie przyniesie już poprawy.
Ograniczenie czasowe - maksymalny czas uczenia w sekundach dla pojedynczej kombinacji
Struktura sieci:
Automatyczne ustawienia - program sam dobiera strukturę sieci, tak aby stosunek liczby parametrów swobodnych sieci (wag) do liczby próbek zbioru uczącego był nie większy od zadanej wartości procentowej. Dodatkowo można określić, czy sieć ma posiadać jedną lub dwie warstwy ukryte.
Ręczna - użytkownik sam określa liczbę neuronów w pierwszej i drugiej warstwie ukrytej. Wpisanie 0 oznacza brak danej warstwy ukrytej
Zasady uczenia
Wielkość sieci - liczba próbek nie powinna być zbyt mała w stosunku do liczby parametrów swobodnych sieci. Zbyt duża liczba parametrów może spowodować nadmierne dopasowanie sieci do danych uczących, tzn. sieć osiągnie bardzo mały błąd na zbiorze uczącym, ale najprawdopodobniej nie będzie w stanie poprawnie prognozować. Innymi słowy sieć zatraci zdolność generalizacji (uogólnienia). Z tego wynika taki wniosek, aby nie starać się osiągnąć za wszelką cenę błędu zerowego (poprzez ciągłe zwiększanie liczby neuronów). Starajmy się uczyć sieć zaczynając od bardzo ubogiej struktury (kilka neuronów i jedna warstwa ukryta), zwiększając liczbę neuronów, aż osiągniemy satysfakcjonujący poziom błędu (np. 1.0)
Liczba warstw - do aproksymacji (przybliżania) dowolnej funkcji ciągłej wystarczy sieć z jedną warstwą ukrytą. Do aproksymacji dowolnej funkcji, miejscami nieciągłej, wystarczy sieć z dwiema warstwami ukrytymi. A więc najpierw uczymy sieć z jedną warstwą. Jeśli wyniki są niezadowalające możemy dodać drugą warstwę. Zazwyczaj liczba neuronów w drugiej warstwie powinna być mniejsza od liczby neuronów w warstwie pierwszej. Duża liczba neuronów (zarówno w pierwszej i drugiej warstwie) znacznie wydłuża czas uczenia, a i osiągniecie minimum globalnego (minimalnego błędu) staje się coraz trudniejsze i dłuższe
Wielkość zbioru uczącego - trudno się spodziewać, aby za pomocą zbioru próbek o wielkości np. 10 sieć nauczyła się dobrze prognozować. Próbek tych powinno być co najmniej kilkadziesiąt co przy prognozowaniu jedynek daje liczbę losowań cztery razy większą (każda jedynka powinna występować raz na 4 losowania), przy prognozowaniu dwójek daje 16 razy większą liczbę losowań. Np. przy prognozowaniu dwójki i wielkości zbioru 50 liczba losowań średnio powinna wynosić 900. Oczywiście rozważania dotyczą ML.
Wyniki typowania są pokazywane w tabeli na zakładce Wyniki. Opis kolumn tabeli jest następujący:
| Kolumna | Opis |
| K | Kombinacja |
| Cz |
Częstotliwość kombinacji (liczba wystąpień) |
| Ostatnie wystąpienie | Zawiera liczbę oznaczającą ile losowań wstecz pojawiła się dana kombinacja (jeśli pojawiła się w ostatnim losowaniu wówczas będzie 0) oraz datę ostatniego losowania (najnowszego) w którym znajduje się ta kombinacja |
| Następne wystąpienie | Zawiera liczbę oznaczającą po ilu losowaniach (od końca zakresu losowań) pojawiła się dana kombinacja (jeśli pojawiła się w następnym losowaniu wówczas będzie 0) oraz datę pierwszego losowania w którym znajduje się ta kombinacja. Jeśli kombinacja nie pojawiła się jeszcze w przyszłości wtedy wyświetlany jest znak '–' |
| Prog. | Zawiera prognozę. Pierwsza liczba oznacza za ile losowań od końca zakresu losowań powinna pojawić się kombinacja (czyli przyszła przerwa kombinacji). Druga liczba (w nawiasie) oznacza indeks losowania w którym powinna pojawić się kombinacja |
| Przedział | Jest to wartość prognozy uwzględniająca błąd prognozy (sieci). W wyniku powstaje przedział w którym powinna pojawić się kombinacja. Przedział jest tworzony następująco: [prognoza - błąd, prognoza + błąd] |
| Błąd | Błąd uczenia sieci (średni błąd kwadratowy) |
| Budowa | Podaje strukturę sieci, która została użyta do prognozowania danej kombinacji. Pierwsza wartość oznacza liczbę neuronów w pierwszej warstwie ukrytej, a druga - liczbę neuronów w drugiej warstwie ukrytej |
Obok tabeli znajdują się dwie zakładki - na pierwszej znajduje się wykres wystąpień (przyszłe wystąpienie w funkcji wystąpienia przeszłego) kombinacji a na drugiej informacja o przerwach kombinacji.
Tworzenie typowania Sieć neuronowa
Aby utworzyć typowanie:
Wybierz z listy Typowania pozycję Sieć neuronowa i kliknij przycisk obok listy
Wybierz z menu Typowania pozycję Sieć neuronowa
Aby wygenerować statystykę:
Wybierz z menu Zadania pozycję Start
Kliknij na pasku operacji przycisk Start
Wybierz z menu kontekstowego pozycję Generuj
Zostaną policzone częstotliwości dla wszystkich kombinacji danej długości. Teraz w tabeli należy zaznaczyć jedną lub kilka kolejnych kombinacji i nacisnąć przycisk Oblicz. Naciśnięcie przycisku Oblicz wszystko powoduje uruchomienie typowania dla wszystkich kombinacji w tabeli. Zaznaczone kombinacje będą kolejno prognozowane przez sieć, a wyniki będą pokazywane na bieżąco w tabeli. W panelu statusowym (dół okna) pokazywany jest postęp całkowity, aktualnie typowana kombinacja oraz aktualny błąd sieci (na początku uczenia szybko zmniejszający się).
Zobacz także:
Zakres losowań | Optymalne kombinacje | Typowanie redukcyjne | Regresja liniowa