Jeśli każdy neuron w sieci neuronowej jest w zasadzie funkcją regresji logistycznej, dlaczego wielowarstwowość jest lepsza?

13

Przechodzę przez kurs DeepAI Cousery (film 3 tygodnia 1 „Przegląd sieci neuronowych”), a Andrew Ng wyjaśnia, w jaki sposób każda warstwa w sieci neuronowej jest kolejną regresją logistyczną, ale nie wyjaśnia, w jaki sposób poprawia to dokładność.

W jaki sposób w sieci dwuwarstwowej wielokrotne obliczanie logistyki czyni ją dokładniejszą?

mskw
źródło
7
Często, aby dopasować dobry pojedynczy model regresji logistycznej, musisz wykonać znaczące tworzenie funkcji. Dwuwarstwowa nn próbuje wykonać dla ciebie część tej pracy.
Matthew Drury
@msk, czy kiedykolwiek tworzyłeś nowe funkcje w oparciu o oryginalne funkcje w celu poprawy regresji logistycznej? To właśnie robi ukryta warstwa (warstwy).
Ricardo Cruz,

Odpowiedzi:

10

Podczas korzystania z funkcji aktywacji logistycznej prawdą jest, że funkcja odnosząca się do wejść każdej jednostki do jej wyjścia jest taka sama jak w przypadku regresji logistycznej. Ale tak naprawdę to nie to samo, co każda jednostka przeprowadzająca regresję logistyczną. Różnica polega na tym, że w regresji logistycznej wagi i odchylenie są wybierane w taki sposób, aby wynik najlepiej pasował do podanych wartości docelowych (przy użyciu straty log / entropii krzyżowej). Natomiast jednostki ukryte w sieci neuronowej wysyłają swoje dane wyjściowe do jednostek podrzędnych. Dla poszczególnych ukrytych jednostek nie ma docelowego wyniku. Wagi i odchylenia są raczej wybierane, aby zminimalizować jakąś obiektywną funkcję, która zależy od końcowego wyniku sieci.

Zamiast przeprowadzać regresję logistyczną, bardziej sensowne może być myślenie o każdej ukrytej jednostce jako obliczeniu współrzędnej w pewnej przestrzeni obiektów. Z tej perspektywy celem ukrytej warstwy jest przekształcenie jej danych wejściowych - wektor wejściowy jest odwzorowany na wektor aktywacji warstwy ukrytej. Można to traktować jako odwzorowanie danych wejściowych na przestrzeń cech o wymiarach odpowiadających każdej ukrytej jednostce.

Warstwę wyjściową często można traktować jako standardowy algorytm uczenia się, który działa w tej przestrzeni funkcji. Na przykład w zadaniu klasyfikacji użycie logistycznej jednostki wyjściowej z utratą entropii krzyżowej jest równoważne z wykonaniem regresji logistycznej w przestrzeni cech (lub wielomianowej regresji logistycznej, jeśli używa się wyjść softmax). W zadaniu regresji użycie wyniku liniowego z błędem do kwadratu jest równoważne z wykonaniem regresji liniowej najmniejszych kwadratów w przestrzeni cech.

Szkolenie sieci sprowadza się do nauki mapowania przestrzeni funkcji oraz funkcji klasyfikacji / regresji (w przestrzeni cech), które razem dają najlepszą wydajność. Zakładając nieliniowe ukryte jednostki, zwiększenie szerokości ukrytej warstwy lub ułożenie wielu ukrytych warstw pozwala na bardziej złożone mapowanie przestrzeni cech, a tym samym dopasowanie bardziej złożonych funkcji.

user20160
źródło
7

Jednym ze sposobów dostrzeżenia siły nieliniowości jest zwrócenie uwagi na uniwersalne twierdzenie o aproksymacji .

Chociaż w praktyce nie ma to większego znaczenia (dotyczy możliwości sieci jednowarstwowych), mówi ci, że jeśli użyjesz (dowolnie długich) sum sigmoidów, możesz w zasadzie zbliżyć dowolną funkcję ciągłą do dowolnego pożądanego poziomu. Jeśli znasz teorię Fouriera lub pamiętasz twierdzenie o aproksymacji Weierstrassa, nie powinno to dziwić.

Jakub Bartczuk
źródło
3
To była jedyna osoba, która faktycznie odpowiedziała poprawnie na pytanie, choć trochę zbyt zwięźle. Ukryta warstwa wystarcza do stworzenia nowych, potężnych funkcji, które łączą oryginalne funkcje. Problem polega na tym, że może być potrzebna ukryta warstwa ze zbyt dużą liczbą węzłów, a proces konwergencji działa najlepiej w przypadku głębszej sieci z ukrytymi warstwami> 1.
Ricardo Cruz
5

Gdy w sieci neuronowej istnieją ukryte warstwy, dodajemy elementy nieliniowe. Proszę sprawdzić moją odpowiedź tutaj, aby uzyskać jakiś sens.

co sprawia, że ​​sieci neuronowe są nieliniowym modelem klasyfikacji?

W szczególności zagnieżdżona funkcja sigmoidalna będzie bardziej „potężna” niż liniowa transformacja oryginalnych elementów i jedna funkcja sigmoidalna (regresja logistyczna).


Oto liczbowy przykład odpowiedzi na komentarze OP.

Załóżmy, że mamy ramkę danych , jest to macierz (10 punktów danych, 3 funkcje). Jeśli chcemy mieć ukrytych jednostek, to macierz wag jest macierzą . Wyjściem dla ukrytej warstwy (wynik mnożenia macierzy ) jest macierz , która dla każdego punktu danych ma rozszerzonych cech.10 × 3 7 W 3 × 7 X × W 10 × 7 7X10×37W3×7X×W10×77

Haitao Du
źródło
Zastanawiam się tylko, w jaki sposób którykolwiek z węzłów pierwszej warstwy różni się w danych wyjściowych, tj. Węzeł 1 otrzymuje X1, X2, X3, Węzeł 2 również otrzymuje X1, X2, X3, jeśli wszystkie są regresją logistyczną, w jaki sposób ich produkcja będzie inna?
mskw
przypuśćmy, że masz 3 funkcje i 10 ukrytych jednostek, wówczas wyjście ukrytej warstwy ma 10 „inżynieryjnych funkcji”.
Haitao Du
Dlaczego nazywacie to „funkcjami inżynieryjnymi”, a także funkcje, o których wspominacie, X1, X2, X3?
mskw
Zmienię swoją odpowiedź, aby uwzględnić twoje komentarze.
Haitao Du
Dzięki rewizji, z twojego wyjaśnienia, nie jestem pewien, czy nie odpowiadasz na moje pytanie, czy też mam lukę w wiedzy, którą muszę najpierw pokonać. W szczególności, czy w odpowiedzi na pytanie Waga odnosi się do każdej funkcji wyjściowej węzła? Jeśli tak, to czym różnią się od pozostałych węzłów na tej samej warstwie?
mskw
3

W standardowej regresji logistycznej mamy 1 wynik w warstwie końcowej. Jednak dzięki sieci neuronowej z jedną ukrytą warstwą możemy mieć wiele wartości pośrednich, z których każdą można traktować jako wynik innego modelu regresji logistycznej, tj. Nie wykonujemy po raz kolejny tej samej regresji logistycznej. Nie jest zatem wielkim skokiem myśleć, że połączenie ich ma większe możliwości ekspresji niż standardowy model regresji logistycznej (a także wykazano w praktyce i teorii ).

W komentarzach wspominasz także o tym, jak te węzły mają różne wartości w tej samej warstwie, jeśli mają takie same dane wejściowe? Jest tak, ponieważ powinny mieć różne ciężary. Każdy węzeł w sieci neuronowej pobiera danych wejściowych i tworzy wartość gdzie jest wybraną funkcją, w w naszym przypadku sigmoid, to wagi, to dane wejściowe, a to pewne odchylenie. Ciężary są wybraney j = f ( N i = 1 w j ix i + b j ) f w j i x i b jNyj=f(i=1Nwjixi+bj)fwjixibjprzez algorytm optymalizacyjny w celu optymalizacji naszego celu, np. minimalizacji błędu klasyfikacji. Inicjalizacja jest bardzo ważna dla algorytmów spadku gradientu, które są zwykle używane do optymalizacji wag. Zobacz https://intoli.com/blog/neural-network-initialization/, gdzie jeśli wszystkie wagi zaczynają się od 0, sieć nie jest w stanie się uczyć.

Srijan Parmeshwar
źródło