Autor Wątek: Sieci neuronowe MLP - brakujące wnioski do badania  (Przeczytany 2291 razy)

Offline sztacheta28

  • Użytkownik
    • Wsparcie dla Unity 3d po polsku

# Listopad 11, 2013, 13:44:33
Mam sieć jednokierunkową wielowarstwową(MLP) o takiej topologi:
  ]

Wartości wejść(X1, X2) są losowane z zakresu od -1 do 1. Wartość Biasu(X0) to 0.
Wagi neuronów są losowane z zakresu od -1 do 1.

Treścią badania jest zbadanie możliwych podziałów przestrzeni wejść dla powyżej opisanej sieci.

Zaimplementowałem program w C#. Badanie sieci polegało na jednokrotnym wylosowaniu wag i dla tego zestawu wag wielokrotnego podania losowych wartości wejściowych i tak dla każdej z 5 wybranych funkcji aktywacji.

Poniżej dwie rezultaty z badania:

   

 

Wartości dodatnie biały kolor, ujemne czarny.

Obecnie posiadam takie wnioski:
a)  Sieć dwuwarstwowa jest w stanie generować figury wypukłe
Z innych badań wynikło też:
b)  Ustawienie progu na wartości inne niż 0 uwalnia linie podziału przestrzeni wejść od punktu (0,0)
c)  Jeśli zestawy wag są proporcjonalne względem siebie to mamy ten sam podział przestrzeni wejść

Niestety te wnioski zostały odrzucone jako niepełne i nie mam pojęcia co mogę jeszcze dodać. Z góry dziękują za jakąkolwiek pomoc.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline mwojt

  • Użytkownik

  • +1
# Listopad 11, 2013, 13:56:12
Może chodzi o xor.

Offline koirat

  • Użytkownik

  • +2
# Listopad 11, 2013, 14:44:59
Pierwsze co mnie zdziwiło to wartość biasu ustawiona na 0 (czyli tak jakby go nie było).
Zauważ że w przypadku funkcji tangens która dla argumentu 0 zwraca 0 jeśli x0 oraz x1 będą 0 to N3 zawsze będzie 0 niezależnie od wag.

Druga sprawa to nie rozumiem tego pomysłu z jednokrotnie wylosowanymi wagami, czy to znaczy ze nie uczycie tej sieci ?

Offline sztacheta28

  • Użytkownik
    • Wsparcie dla Unity 3d po polsku

# Listopad 11, 2013, 17:31:11
W rzeczywistości w tym przypadku to BIAS jest ustawiony na 1, a waga na 0, ale łatwiej było mi opisać że BIAS jest po prostu zerem.
W innym badaniu udowodniłem wniosek "b" właśnie ustawiając wagę biasu na inną niż 0 i wtedy linia podziału się przesuwała.

Problem jest z wnioskami właśnie do tej części co podesłałem.

Na razie jesteśmy na początku nauki więc badamy sieć ze sztywnymi losowymi wagami i obserwujemy co wychodzi. Kolejne projekty mają dotyczyć już sieci uczących się.
« Ostatnia zmiana: Listopad 11, 2013, 17:34:37 wysłana przez sztacheta28 »

Offline koirat

  • Użytkownik

  • +1
# Listopad 11, 2013, 20:12:07
W rzeczywistości w tym przypadku to BIAS jest ustawiony na 1, a waga na 0, ale łatwiej było mi opisać że BIAS jest po prostu zerem.
W tym wypadku to i tak nie ma znaczenie czy to waga czy bias jest 0, skoro i tak nie zmieniasz wagi. Ale ok powiedzmy że to było założenie zadania.

Opisz co się dzieje dla poszczególnych funkcji aktywacji. Dla przykładu zauważ że np funkcja aktywacji sigmoidalna unipolarna zwraca wartości dodatnie, jest to spowodowane tym iż wszystkie wartości tej funkcji są większe od 0. W związku z czym nieważne że wagi będą ujemne jeśli nie będziesz miał wagi po warstwie wyjściowej rezultat będzie zawsze dodatni.

Pomijam wątpliwość niektórych wniosków "Sieć dwuwarstwowa jest w stanie generować figury wypukłe" skoro już zostało to uznane. Ale może taka odpowiedź i tak jest warta jakości dydaktycznej tego zadania.