Uczenie Maszynowe – uczenie nienadzorowane warstwowych sieci neuronowych
Cel | Uczenie sieci Kohonena (SOM) |
Zagadnienia |
Uczenie przez współzawodnictwo, uczenie nienadzorowane, koncepcja sąsiedztwa |
Narzędzia |
Statistica NN |
Zbiory danych |
IRIS, PROTEIN |
Pomocne materiały |
wikipedia
animacje 3D→2D animacja, ring 3D→1D przykład TSP 2D→1D PCA a SOM |
Zadanie 16. Projektowanie i testowanie prostej sieci typu SOM
- Utwórz sieć typu mapa odwzorowania cech istotnych (SOM) o wymiarach 5x4 (sugerowanych przez StatsticaNN) dla zbioru IRIS: File|New|Network, potem wybierz Kohonen, Advise, Create. Być może trzeba będzie zmienić liczbę neuronów (na 20) i szerokość drugiej warstwy (jeśli kolumna Width nie mieści się w okienku, użyj scrollbar'a).
- Otwórz edytor sieci (Edit|Network). Jakiego typu neurony są stosowane w warstwie wyjściowej (okienko z ilustracją sieci to sugeruje)?
- 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!)
- Zobacz, jak można zmieniać topologię sieci manewrując parametrem Width dla drugiej warstwy.
- Naucz sieć (Train|Kohonen) przy domyślnych ustawieniach parametrów. Zwróć uwagę, że mimo nienadzorowanego charakteru uczenia ma sens wyświetlanie przebiegu błędu.
- Co więcej, można używać zbioru weryfikującego i oprzeć na nim warunek stopu (Train|Auxiliary|Stopping Conditions). 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).
- 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 samemu nazywać przykłady (górne pole bez nazwy) i/lub neurony (dolne pole bez nazwy); działa także prawy przycisk myszki. - Poza tym można też obejrzeć statystykę „wygrywania” współzawodnictwa przez poszczególne neurony w poszczególnych podzbiorach (Statistics|Win frequencies).
- 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. 20 neuronów ułożonych w rzędzie, parametr Width = 1 dla warstwy 2 w edytorze sieci).
Zadanie 17. Analiza rzeczywistego problemu przy użyciu sieci SOM
Dane: Zbiór PROTEIN.STA dostępny w dane-nn.zip (patrz pierwsze zajęcia z NN) albo lokalnie w katalogu Statistica (Examples). Opisuje on spożycie białek 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ąć i uzasadnić jakieś wnioski dotyczące podobieństwa poszczególnych krajów pod względem spożycia protein? Można, podobnie jak dla IRIS, spróbować z siecią SOM jednowymiarową.
Zadanie 18. Badanie wpływu parametrów sieci i algorytmu na przebieg uczenia
Zobacz, co się dzieje, gdy opcja "Shuffle cases" jest wyłączona. Sprawdź wpływ parametrów algorytmu uczącego (blisko "skrajnych" wartości parametrów) na przebieg i efekty uczenia.