Topologie sieci neuronowych

Topologie sieci

Istnieje wiele różnych topologii sieci neuronowych. Co jakiś czas jednak pojawiają się nowe rozwiązania i modyfikacje które niebywale wnoszą wiele w dziedzinie uczenia maszynowego. Czasami jednak brakuje rozeznania do czego zastosować odpowiednią topologię. Czy aby na pewno wybrana architektura nadaje się aby rozwiązać nasz problem? Istnieje wprawdzie wiele opracowań ( niektóre nawet całkiem niezłe) ale nie odpowiadają one na wszystkie pytania. Nadmiar informacji często bywa zbyt duży więc tutaj postanowiłem skompensować wiedzę w czytelnej formie. Zawarte informacje mają więc bardziej charakter informacyjny a dokładny opis samych sieci oraz ich działania znajdziemy w kolejnych artykułach.

Perceptron i sieć wielowarstwowa.

Perceptrony i sieci wielowarstwowe to najpopularniejsze rozwiązania które są z nami od lat. Taki typ sieci stał się wręcz synonimem sieci neuronowej. Sieci wielowarstwowe stosuje się praktycznie wszędzie. Każda warstwa zbudowana jest z równolegle umieszczonych węzłów. Sieć posiada jedną warstwę neuronów wejściowych, jedną lub kilka warstw ukrytych oraz jedną warstwę wejściową. Neurony na poszczególnych warstwach nie są połączone ze sobą lecz z neuronami znajdującymi się na innych warstwach. Najczęściej taką sieć uczy się w sposób nadzorowany wykorzystując odpowiednie zestawy danych wejściowych i wyjściowych.

Sieć Hopfielda

Jest to sieć w której każdy neuron jest połączony z każdym innym neuronem. W takim układzie wszystkie węzły działają jednakowo. Taka sieć trenowana jest poprzez dostosowanie wartości neuronów do pożądanego wzorca, po czym dopiero można określić ich wagi. Następnie wagi pozostają niezmienione. Po nauczeniu jednego lub więcej wzorców, sieć zawsze będzie zbiegać się do jednego z wyuczonych wzorców. Wynika to z faktu iż jest ona stabilna tylko w takim stanie. Każdy neuron ma próg aktywacji, który po przekroczeniu powoduje, że neuron przyjmuje jedną z dwóch form (zwykle -1 lub 1, czasem 0 lub 1). Sieć może być aktualizowana równolegle lub najczęściej pojedynczo. Gdy komórki są aktualizowane pojedynczo, generowana jest uczciwa losowa sekwencja, aby określić kolejność w jakiej są aktualizowane komórki (dostatecznie losowe oznacza, że wszystkie alternatywy (n) zdarzają się dokładnie raz na n elementów). Dzięki temu możesz określić, kiedy sieć jest stabilna (zakończono zbieżność); po zaktualizowaniu wszystkich komórek i żadnej zmianie, sieć jest stabilna (wyżarzona). Sieci te są powszechnie określane jako pamięć asocjacyjna, ponieważ zbiegają się do najbardziej porównywalnego stanu jako dane wejściowe.

Sieć Kohonena

Sieć nazywana jest również samoorganizujaca się mapą. Korzysta ona z konkurencyjnego uczenia się, aby kategoryzować dane bez nadzoru. Sieć otrzymuje dane wejściowe i określa, który z jej neuronów najlepiej pasuje do tych danych wejściowych. Neurony są następnie modyfikowane, aby lepiej pasowały do danych wejściowych, ciągnąc w ten sposób swoich sąsiadów. Odległość między sąsiadami a najlepiej dopasowanymi jednostkami określa, jak daleko są przesunięci sąsiedzi.

Maszyna Boltzmanna

Jest to struktura bardzo podobna do sieci Hopfielda. Różnica polega na tym iż niektóre neurony są oznaczone jako neurony wejściowe, a pozostałe zostają “ukryte”. Gdy zakończy się pełna aktualizacja sieci, neurony wejściowe stają się neuronami wyjściowymi. Uczenie rozpoczyna się od losowych wag poprzez propagację wsteczną. Ostatnio nabiera jednak popularności uczenie przez kontrastową dywergencję. W porównaniu z sieciami Hopfielda, neurony posiadają binarne wzorce aktywności. Dopóki komórki są wolne, mogą przyjmować dowolną wartość.Cykl powtarza się między neuronami wejściowymi a ukrytymi.

cdn ...