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

  1. 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).
  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 (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).
  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 samemu 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. 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.