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ą?
Odpowiedzi:
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.
źródło
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ć.
źródło
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 7X 10×3 7 W 3×7 X×W 10×7 7
źródło
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 i ⋅ x i + b j ) f w j i x i b jN yj=f(∑i=1Nwji⋅xi+bj) f wji xi bj przez 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ć.
źródło