Jak może istnieć dwu-warstwowa sieć neuronowa z jedną warstwą ukrytą⁇

Odpowiedz Nowy wątek
2019-06-23 17:52
0

Autentyczne zadanie z jednego z poprzednich egzaminów:

Narysuj dwu-warstwową sieć neuronową z jedną warstwą ukrytą i z jednym neuronem w warstwie wyjściowej. Wszystkie neurony są aktywowane funkcjami progowymi, a neuron wyjściowy powinien zwracać wartość 1 wtedy i tylko wtedy, gdy punkt na wjeściu (sic!) (x1, x2) znajduje się w zaciemnionym obszarze.

Zaznacz na rysunku dokładnie wartości progowe neuronów oraz wag krawędzi.

„Zaciemniony obszar” to jest prostokąt [<-0,5; -1>, <2; 1>]. Ale nie to jest istotne.

Istotne jest to: JAK MOŻE istnieć dwuwarstwowa sieć neuronowa z jedną warstwą ukrytą?? Warstwa ukryta to warstwa, która nie jest ani wejściowa, ani wyjściowa; tak więc sieć neuronowa z warstwą ukrytą będzie TRÓJwarstwowa a nie dwuwarstwowa - bo będzie musiała być warstwa wejściowa, ukryta i wyjściowa a to razem 3!

Czy mnie coś zamroczyło, czy treść tego zadania jest rzeczywiście sprzeczna?

Nie za bardzo ogarniam podział tego forum na kategorie :( Czy wstawiłem swój temat w dobrej kategorii? Z jednej strony sieci neuronowe to są algorytmy, ale z drugiej strony to już nie jest typowe ASD. Ale z trzeciej strony czy to już się kwalifikuje do nietuzinkowych tematów? Wątpię. Jeśli do niczego się nie kwalifikuje to off-topic no ale to nie jest offtop bo ewidentnie jest związane z programowaniem. Gdzie powinienem umieścić ten post? - kmph 2019-06-23 17:55
Jakbym trafił na ten wątek w offtopic, to bym go przeniósł do "algorytmów". Moim zdaniem dobrze wybrałeś :) - cerrato 2019-06-23 18:56

Pozostało 580 znaków

2019-06-23 18:20
3

Warstwy wejściowej zazwyczaj się nie liczy, więc dwuwarstwowa sieć ma fizycznie trzy warstwy (wejście + ukrytą + wyjście).

Pozostało 580 znaków

2019-06-23 18:27
0

Zależy jak to jest przedstawiane na rysunkach to różnie to może być interpretowane, warstwa wejściowa jest chyba umowna. Różne są też praktyczne implementacje, np. taka sieć neuronowa MLP (standardowa trójwarstwowa czyli w tym przypadku wejściowa, ukrywa, wyjściowa) w bibliotece AForge.NET (AForge.Neuro) jest tak właśnie zaimplementowana czyli jakby dwie warstwy (obrazowane klasami C#), jedna obrazującą warstwę ukrytą i wyjściową a wejściowej jakby nie ma tylko są pobierane wartości z wejść. Trzy warstwy z jedną wejściową są chyba często prezentowane żeby to było łatwe do zrozumienia przez studentów.

Pozostało 580 znaków

2019-06-24 17:09
0
drorat1 napisał(a):

a wejściowej jakby nie ma tylko są pobierane wartości z wejść. Trzy warstwy z jedną wejściową są chyba często prezentowane żeby to było łatwe do zrozumienia przez studentów.

Zaraz - to znaczy, że nie wolno mi w tym zadaniu robić żadnej logiki w warstwie wejściowej? Bo z tego, co piszesz, to rozumiałbym, że warstwa wejściowa jedynie i wyłącznie forwarduje to, co otrzymuje ;/

A ja bym już chciał dać neuronom w warstwie wejściowej progi i co więcej, dać 4 neurony w warstwie wejściowej, po 2 na każdą współrzędną wejścia. Taka warstwa wejściowa nie może być tylko domyślna i jej prezentacja zawiera w sobie więcej informacji niż tylko ułatwienie zrozumienia konstukcji sieci ;/

Pozostało 580 znaków

2019-06-24 17:34
0
kmph napisał(a):

nie wolno mi w tym zadaniu robić żadnej logiki w warstwie wejściowej?

Nie wiem, czy „nie wolno”, ale czasami taką logikę widziałem. Zazwyczaj jednak funkcja aktywacji warstwy wejściowej jest liniowa (czyli po prostu pchasz wejście dalej). Jest też dropout, ale nie wiem, czy to uważasz za „logikę”.

Pozostało 580 znaków

2019-06-24 18:02
0
Afish napisał(a):

Zazwyczaj jednak funkcja aktywacji warstwy wejściowej jest liniowa (czyli po prostu pchasz wejście dalej).

Treść zadania każe, by wszystkie neurony były aktywowane funkcjami progowymi.

Rozwiązanie tego zadania wyobrażam sobie tak:

title

Bez zduplikowania danych w warstwie wejściowej (każda współrzędna idzie do 2 neuronów) i dania nietrywialnych progów (gdzie „nietrywialnych” znaczy tyle, co „nie można ich po prostu wymazać i twierdzić, że są oczywiste i domyślne”) nie widzę, jak można by zrobić to zadanie.

Dlatego zaniepokoiło mnie, jak mówiliście, że „sieć z warstwami wejścia, ukrytą i wyjścia określa się jako dwuwarstwową, bo warstwa wejścia jest tylko domyślna”, bo to jakby znaczyło, że każde rozwiązanie tego zadania, które stanie się niezrozumiałe lub błędne po wymazaniu warstwy wejściowej, jest rozwiązaniem nieprawidłowym (bo warstwa wejściowa „robi za dużo”).

Od biedy mógłbym wymazać warstwę wyjściową (twierdzić, że jest w domyśle jeden neuron o standardowym progu ≥1 i wadze 1), wymagałoby to tylko podzielenia wag aksonów między warstwą ukrytą a wyjściową przez 2, ale nie mógłbym tego zrobić z warstwą wejściową!

EDIT: To znaczy oczywiście można rozwiązać to zadanie z warstwą wejściową tylko forwardującą wejście:

title

No ale treść zadania mówi wyraźnie: „Wszystkie neurony są aktywowane funkcjami progowymi”, więc jakby takie rozwiązanie odpada.

A może w domyśle jest, że wszystkie neurony oprócz tych z warstwy wejściowej aktywowane są funkcjami progowymi?

edytowany 4x, ostatnio: kmph, 2019-06-24 21:07

Pozostało 580 znaków

2019-06-25 08:14
0

Nie wiem czy treść tego zadania ma zmuszać do myślenia czy też ma być dokładnie odwrotnie ale tutaj zobrazuję to na podstawie rysunków wygenerowanych zresztą programem do symulacji SSN który sam sobie zresztą kiedyś napisałem.

Załóżmy że nie masz żadnej warstwy ukrytej a tylko operujesz na możliwościach jakie daje perceptron prosty (problemy lioniowo separowalne, taki sobie np. z XOR nie poradzi):

title

Ale tu masz warstwę wyjściową (fioletowe kółko i progowa funkcja aktywacji) i wejściową (zielone kółka) gdzie de facto tylko pchasz wejścia dalej a funkcja aktywacji jest liniowa. Równie dobrze można by to było uznać tylko za wejścia. A tu niżej masz SSN z jedną warstwą ukrytą, wg. podobnych założeń:

title

Czyli dwie warstwy (fioletowe kółka obrazujące neurony z progową funkcją aktywacji), ukryta i wyjściowa oraz wejściowa gdzie de facto też pchasz wejścia dalej do warstwy ukrytej. Ja tu raczej nie widzę problemu, no może poza takim czy to będzie uznane przez prowadzącego taki egzamin czy też nie ale to jest tylko jedna z możliwych interpretacji rozwiązania problemu.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0