Sieci neuronowe i uczenie
maszynowe – laboratorium
|
||||
7
|
Uczenie nienadzorowane sieci neuronowych
|
|||
Długość trwania: 0.5
jednostki |
|
Narzędzie: Statistica
NN |
||
Temat zajęć: |
Uczenie sieci Kohonena
(SOM) |
|||
Zagadnienia: |
Uczenie przez
współzawodnictwo, uczenie nienadzorowane, koncepcja sąsiedztwa. |
|||
Zbiory danych: |
IRIS, PROTEIN |
|||
1.
Utwórz sieć typu mapa odwzorowania cech istotnych
(SOM) o wymiarach 5x4 (sugerowanych przez StatsticaNN) dla zbioru IRIS: File|New|Network,
potem wybrać Kohonen, Advise, Create.
2.
Otwórz edytor sieci (Edit|Network). Jakiego typu
neurony są stosowane w warstwie wyjściowej (okienko z ilustracją sieci to
sugeruje) ?
3.
Zwróć uwagę, jak zdefiniowany jest błąd popełniany
przez sieć (Error
function) (Suma po wszystkich przykładach odległości pomiędzy
przykładem a najbliższym mu wektorem wag neuronów w warstwie wyjściowej => uczenie
nienadzorowane!).
4.
Zobacz, jak można zmieniać topologię sieci
manewrując parametrem Width dla drugiej warstwy.
5.
Naucz sieć (Train|Kohonen) przy domyślnych
ustawieniach parametrów. Zwróć uwagę, że mimo nienadzorowanego charakteru
uczenia ma sens wyświetlanie przebiegu błędu.
6.
Co więcej, można używać zbioru weryfikującego i
oprzeć na nim warunek stopu. Zbadaj, jak uczy się sieć np. z warunkiem stopu Minimum
improvement|Verification = 0.01, Window = 10 (wydaje się to sensowne, bo
widać, że minimum lokalne znajdowane jest bardzo szybko i nie ma potrzeby uczyć
sieci aż przez 100 epok).
7.
Testowanie sieci. Obejrzyj najpierw, jak
„odpowiadają” poszczególne neurony na kolejne przykłady ze zbioru uczącego (Run|Activations).
Potem obejrzyj odpowiedzi sieci w diagramie, który zachowuje jej topologię (Run|Topological
Map). Jak grupują się
przykłady ?
Zwróć uwagę, że podczas przeglądania przykładów mapą topologiczną, można sobie
nazywać przykłady (górne pole bez nazwy) i/lub neurony (dolne pole bez nazwy);
działa także prawy przycisk myszki.
8.
Poza tym można też obejrzeć statystykę „wygrywania”
współzawodnictwa przez poszczególne neurony w poszczególnych podzbiorach (Statistics|Win
frequencies).
9.
W podobny sposób naucz i przeanalizuj dla tego
samego zbioru sieć o innej topologii (szczególnie ciekawe jest to dla sieci o
topologii „jednowymiarowej”, gdzie warstwa wyjściowa ma np. 10 neuronów
ułożonych w rzędzie, parametr Width = 1 dla warstwy 2 w edytorze sieci).
Dane: Zbiór PROTEIN.STA
(dostępny lokalnie w katalogu Statistica (Examples)). Opisuje spożycie protein
różnego pochodzenia w wybranych krajach Europy. Dane nie są podzielone na klasy
decyzyjne.
Zbuduj sieć dla tego
problemu (sugerowany rozmiar warstwy wyjściowej 4x4 lub nawet 3x3, bo mało
przykładów). Naucz ją i przetestuj. Czy da się wyciągnąć jakieś wnioski dot. podobieństwa
poszczególnych krajów pod względem spożycia protein (jakieś ciekawe obserwacje
(podobieństwa) i próba ich uzasadnienia). Można, podobnie jak dla IRIS,
spróbować z siecią SOM jednowymiarową.
Wprowadzenie do środowiska STATISTICA: Neural Networks
1.
Tworzenie zbiorów danych (liczba zmiennych zależnych
i niezależnych, podział na zbiór uczący, testujący i weryfikujący, brakujące
przypadki).
2.
Tworzenie sieci:
§
typ sieci,
§
wstępne przetwarzanie/kodowanie: minmax, min-SD,
explicite, none;
§
architektura sieci: liczba warstw, wielkości warstw
ukrytych
3.
Edycja sieci (Edit|Network)
§
Zmiana liczby neuronów
§
Zmiana funkcji aktywacji (linear, logistic,
hyperbolic)
§
PSP (Post Synaptic Potential) function - funkcja
obliczająca pobudzenie neuronu, agregująca bodźce do jednej wartości skalarnej:
linear, radial, division
4.
Przebieg błędu średniokwadratowego
(Statistics|Training graph)
5.
Uczenie (Train|Multilayer perceptrons|Back
propagation)
6.
Warunki stopu
7.
Prędkość uczenia
8.
Człon bezwładności
9.
Funkcja odpowiedzi sieci (Run|Responce surface)
10.
Czêœæ
I: Badanie wpływu parametrów sieci i algorytmu na przebieg uczenia
Zobacz,
co się dzieje gdy opcja "Shuffle cases" jest wyłączona.