Sieć neuronowa - wejście binarne vs dyskretne / ciągłe

14

Czy są jakieś dobre powody, aby preferować wartości binarne (0/1) zamiast dyskretnych lub ciągłych wartości znormalizowanych , np. (1; 3), jako dane wejściowe dla sieci sprzężenia zwrotnego dla wszystkich węzłów wejściowych (z propagacją wsteczną lub bez)?

Oczywiście mówię tylko o danych wejściowych, które można przekształcić w dowolną formę; np. jeśli masz zmienną, która może przyjmować kilka wartości, albo podaj je bezpośrednio jako wartość jednego węzła wejściowego, albo utwórz węzeł binarny dla każdej wartości dyskretnej. Zakłada się, że zakres możliwych wartości byłby taki sam dla wszystkich węzłów wejściowych. Zobacz zdjęcia, aby zobaczyć przykład obu możliwości.

Podczas badań na ten temat nie mogłem znaleźć żadnych zimnych, twardych faktów na ten temat; wydaje mi się, że mniej więcej zawsze będzie to „próba i błąd”. Oczywiście, węzły binarne dla każdej dyskretnej wartości wejściowej oznaczają więcej węzłów warstwy wejściowej (a tym samym więcej ukrytych węzłów warstwy), ale czy rzeczywiście dałoby to lepszą klasyfikację wyjściową niż posiadanie takich samych wartości w jednym węźle, z dobrze dopasowaną funkcją progową w ukryta warstwa?

Czy zgadzasz się, że to tylko „spróbuj i zobacz”, czy masz inne zdanie na ten temat? Możliwość pierwsza: bezpośrednie wprowadzenie możliwych wartości {1; 3} Możliwość druga: uzyskanie każdej wartości wejściowej węzła binarnego

cirko
źródło

Odpowiedzi:

11

To, czy konwertować zmienne wejściowe na binarne, zależy od zmiennej wejściowej. Można by pomyśleć o wejściach do sieci neuronowej jako o rodzaju „intensywności”: tzn. Większe wartości zmiennej wejściowej reprezentują większą intensywność tej zmiennej wejściowej. W końcu, zakładając, że sieć ma tylko jedno wejście, dany ukryty węzeł sieci nauczy się jakiejś funkcji . gdzie to funkcja przenoszenia (np. sigmoid), a zmienna wejściowa.f(wx+b)fx

Ta konfiguracja nie ma sensu dla zmiennych jakościowych. Jeśli kategorie są reprezentowane przez liczby, nie ma sensu stosować do nich funkcji . Na przykład wyobraź sobie, że twoja zmienna wejściowa reprezentuje zwierzę, a owca = 1 i krowa = 2. Nie ma sensu mnożenie owiec przez i dodawanie do niej , ani nie ma sensu, aby krowa była zawsze większa niż owca. W takim przypadku należy przekonwertować kodowanie dyskretne na binarne kodowanie 1-of- .f(wx+b)wbk

W przypadku zmiennych o wartościach rzeczywistych wystarczy pozostawić je o wartościach rzeczywistych (ale znormalizować dane wejściowe). Powiedzmy, że masz dwie zmienne wejściowe, jedną zwierzę i jedną temperaturę zwierzęcia. Zamieniłbyś zwierzę na 1-of- , gdzie = liczba zwierząt, i pozostawiłbyś temperaturę bez zmian.kk

Matt
źródło
Krótko mówiąc, wskazujesz na skalę zmiennych: metryczną, porządkową i nominalną. Myślę, że to oczywiste, że skal nominalnych nie można „obliczyć” ani przedstawić za pomocą funkcji. Jeśli chodzi o wartości rzeczywiste, tak jak ty, myślę, że wartości rzeczywiste mogą być „lepsze” niż „sklasyfikowane” wartości rzeczywiste z powodu płynniejszych zmian, ale po prostu nie mogłem znaleźć na to żadnego twardego dowodu. Wydaje mi się, że to kolejny przypadek „próby i błędu”.
około
4

Tak, są. Wyobraź sobie, że Twoim celem jest zbudowanie binarnego klasyfikatora. Następnie modelujesz swój problem jako oszacowanie rozkładu Bernoulliego, gdzie, biorąc pod uwagę wektor cech, wynik należy do jednej klasy lub przeciwnie. Wyjściem takiej sieci neuronowej jest prawdopodobieństwo warunkowe. Jeśli jest większy niż 0,5, przypisujesz go do klasy, w przeciwnym razie do drugiej.

Aby być dobrze zdefiniowanym, wynik musi wynosić od 0 do 1, więc wybierasz etykiety na 0 i 1 i minimalizujesz entropię krzyżową, gdzie jest wyjściem twojej sieci, zaś są wartościami docelowymi dla twoich próbek treningowych. Dlatego potrzebujesz . y ( x ) t t { 0 , 1 }

E=y(x)t(1y(x))1t
y(x)tt{0,1}
jpmuc
źródło
Rozumiem, że znormalizowane dane wejściowe powinny być preferowane nad zmiennymi zakresami wartości wejściowych, ponieważ są one bardziej podobne do wyjść binarnych wytwarzanych przez sieć. Ale w moim pytaniu chciałem odnieść się do znormalizowanych dyskretnych wartości określonego zakresu, tj. Jeśli dane wejściowe mogłyby znajdować się w zakresie, wówczas wszystkie węzły powinny mieć ten sam zakres, tj. Być znormalizowane. Czy w takim przypadku nadal byłoby lepiej używać węzłów binarnych dla każdej wartości dyskretnej? (Teraz zredagowałem pytanie, aby spełnić ten warunek)
około
1

Napotkałem również ten sam dylemat, kiedy rozwiązałem problem. Nie wypróbowałem obu architektur, ale uważam, że jeśli zmienna wejściowa jest dyskretna, to funkcja wyjściowa sieci neuronowej będzie miała charakterystykę funkcji impulsowej, a sieć neuronowa jest dobra w modelowaniu funkcji impulsowej. W rzeczywistości każdą funkcję można modelować za pomocą sieci neuronowej z różną precyzją w zależności od złożoności sieci neuronowej. Jedyną różnicą jest to, że w pierwszej architekturze zwiększyła się liczba danych wejściowych, więc większa liczba wag w węźle pierwszej ukrytej warstwy służy do modelowania funkcji impulsowej, ale w drugiej architekturze potrzebna jest większa liczba węzłów w ukrytej warstwie w porównaniu do pierwszej architektury aby uzyskać taką samą wydajność.

Anshu Abhishek
źródło