Co oznacza „stopień swobody” w sieciach neuronowych?

17

W książce Bishopa „Klasyfikacja wzorców i uczenie maszynowe” opisuje technikę regularyzacji w kontekście sieci neuronowych. Nie rozumiem jednak akapitu opisującego, że podczas procesu szkolenia liczba stopni swobody rośnie wraz ze złożonością modelu. Odpowiedni cytat jest następujący:

Alternatywą dla regularyzacji jako sposobu kontrolowania efektywnej złożoności sieci jest procedura wczesnego zatrzymania. Szkolenie nieliniowych modeli sieciowych odpowiada iteracyjnej redukcji funkcji błędu zdefiniowanej w odniesieniu do zestawu danych treningowych. W przypadku wielu algorytmów optymalizacyjnych wykorzystywanych do uczenia sieci, takich jak gradienty sprzężone, błąd jest nie rosnącą funkcją wskaźnika iteracji. Jednak błąd zmierzony w odniesieniu do niezależnych danych, zwany ogólnie zestawem walidacyjnym, często początkowo wykazuje spadek, a następnie wzrost, gdy sieć zaczyna się nadmiernie dopasowywać. Szkolenie można zatem zatrzymać w punkcie najmniejszego błędu w odniesieniu do zestawu danych walidacyjnych, jak pokazano na rysunku 5.12, w celu uzyskania sieci o dobrej wydajności uogólniającej.Zachowanie sieci w tym przypadku czasami tłumaczy się jakościowo w kategoriach efektywnej liczby stopni swobody w sieci, w której liczba ta zaczyna się od małej, a następnie rośnie podczas procesu szkolenia, co odpowiada stałemu wzrostowi efektywnej złożoność modelu.

Mówi także, że liczba parametrów rośnie w trakcie treningu. Zakładałem, że przez „parametry” odnosi się do liczby wag kontrolowanych przez ukryte jednostki sieci. Może się mylę, ponieważ zapobiega się wzrostowi wag przez proces regularyzacji, ale nie zmienia się ich liczba. Czy może odnosić się do procesu znajdowania dużej liczby ukrytych jednostek?

Jaki jest stopień swobody w sieci neuronowej? Jakie parametry zwiększają się podczas treningu?

Robert Smith
źródło
1
Nomenklatura. Parametr to pojedyncza waga. Liczba rosnących parametrów oznacza, że ​​rośnie liczba „neuronów” lub „połączeń między neuronami”. Oznacza to, że topologia nie jest stała.
EngrStudent - Przywróć Monikę
Dzięki! Ale dlaczego trening zwiększa liczbę ciężarów?
Robert Smith
Istnieją w rzeczywistości algorytmy szkoleniowe, które manipulują strukturą sieci neuronowej podczas treningu (korelacja kaskadowa, NEAT, ...). Zwykle stale zwiększają liczbę ciężarów. Ale nie sądzę, że Bishop wspomina o tym w swojej książce.
alfa
@alfa Ciekawe. Nie przeczytałem jeszcze całej książki, więc nie wiem, czy wspomina o tego rodzaju algorytmach. Nie sądzę jednak, aby odnosiło się to do nich w tej części książki.
Robert Smith

Odpowiedzi:

12

Podejrzewam, że właśnie to ma na myśli Bishop:

Jeśli myślisz o sieci neuronowej jako funkcji odwzorowującej dane wejściowe na dane wyjściowe, to kiedy po raz pierwszy zainicjujesz sieć neuronową z małymi losowymi wagami, sieć neuronowa wygląda bardzo podobnie do funkcji liniowej. Funkcja aktywacji sigmoidalnej jest zbliżona do liniowej wokół zera (po prostu wykonaj ekspansję Taylora), a małe przychodzące ciężary zagwarantują, że efektywna domena każdej ukrytej jednostki jest tylko niewielkim odstępem wokół zera, więc cała sieć neuronowa, niezależnie od tego, ile warstwy, które masz, będą wyglądać bardzo podobnie do funkcji liniowej. Możesz więc heurystycznie opisać sieć neuronową jako posiadającą niewielką liczbę stopni swobody (równą wymiarowi wejścia). Gdy trenujesz sieć neuronową, ciężary mogą stać się dowolnie duże, a sieć neuronowa może lepiej przybliżać dowolne funkcje nieliniowe. W miarę postępu treningu

Marc Shivers
źródło
Dziękuję za Twoją odpowiedź. Dodałem odpowiednią część książki jako cytat, abyś mógł zobaczyć kontekst. Nie jestem jednak pewien, czy potwierdza to twoją sugestię.
Robert Smith
Tak, to potwierdza, co myślałem, że Bishop miał na myśli.
Marc Shivers,
Czytając kilka razy twoją odpowiedź, myślę, że w miarę postępu treningu i modelu zaczyna się dopasowywać, liczba funkcji, które model może przybliżać, jest faktycznie zmniejszona, ponieważ bardzo dobrze przybliża punkty na podstawie danych treningowych, ale jego przewidywania wygrały ” być dobry, ponieważ nie można go uogólnić, aby pasował do innych punktów lub podobnych zestawów danych.
Robert Smith
4

Wyrażenie „czasami wyjaśniane jakościowo” sugeruje, że czyni on jedynie analogię do prostej regresji liniowej. Za każdym razem, gdy dodajemy termin do modelu regresji liniowej, dodajemy stopień swobody do modelu i odejmujemy stopień swobody od tych związanych z terminem błędu. Jeśli umieścimy w modelu wystarczającą liczbę niezależnych terminów, możemy doskonale „przewidzieć” historię na podstawie zbioru liczb losowych, ale nie będziemy w stanie przewidzieć przyszłości.

Emil Friedman
źródło
3

pp. W przypadku bardziej skomplikowanych modeli (uwzględniono drzewa regresji) możliwość dodania dodatkowego węzła zapewnia znacznie większą elastyczność, ponieważ model CART będzie szukał dobrej zmiennej do podziału i dobrego punktu podziału. To o wiele więcej niż to, co może zrobić dodanie regresora do modelu liniowego, a Ye stwierdził, że drzewa regresji zużywają około 3,5-4 dfs na węzeł. Sieci neuronowe mogą być gdzieś pośrodku, ale stopnie swobody są z pewnością znacznie większe niż liczba jednostek i mogą być większe niż liczba wag.

Myślę, że coś podobnego zostało dostarczone przez HTF Sec. 7.6 , chociaż zaskakująco nie odnoszą się do Ye (1998). Jednak odnoszą się do Bishopa jako szczególnego przypadku.

StasK
źródło
1
Dzięki. To wydaje się słuszne, ale co z relacją ze szkoleniem sieci neuronowej? Znalazłem w „Elementach uczenia statystycznego” na stronie 96 ( docs.google.com/... ) wyrażenie odnoszące się do stopni swobody i kowariancji, i rozumiem, dlaczego więcej szkoleń zmniejszy funkcję błędu, aw konsekwencji zwiększy kowariancję i stopnie swobody. Nie rozumiem jednak, dlaczego to równanie (3.60 w książce) się utrzymuje.
Robert Smith
Nawiasem mówiąc, wydaje się również nieco inna niż definicja (uogólnionych) stopni swobody, o której mowa w artykule Ye.
Robert Smith
1
Myślę, że można pomyśleć o tej kowariancji jako zgrubnej wersji pochodnej ... lub może być odwrotnie: pochodna, zdefiniowana jako granica, gdy wielkość kroku zbliża się do zera, może być uważana za pion kowariancja, gdy wariancja zakłócenia osiąga zero. Równanie (3.60) nie musi być trzymane, to definicja , więc nie ma nic do trzymania. Co robi chwyt jest równoważne ze standardową definicją DFS dla modeli liniowych, które na krótko na następnej stronie Wspominają, a to jest po prostu algebra liniowa modeli liniowych. Ye (1998) też musi o tym mówić.
StasK
3

Mówi „skuteczna złożoność sieci”. W rzeczywistości odnosi się do wielkości wag sieci. Można to zrozumieć w kategoriach zasady minimalnej długości opisu . Ale zanim przejdę do tego, intuicja jest taka, że ​​im większe wagi, tym więcej różnych funkcji może pomieścić twoja sieć, a tym samym wyższy stopień swobody (i efektywnej złożoności).

W tym rozdziale mówi o regularyzacji, która jest techniką skutecznego zmniejszania ryzyka nadmiernego dopasowania, poprzez wymaganie, aby ciężary były jak najmniejsze. Ogólnie,

p(D|w)=np(tn|xn,w)=nexp(β2[tny(xn,w)]2)/ZD(β)
wZD(β)

p(w)=exp(α||w||22)/ZW(α)
argmaxwp(w|D)

p(w|D)=p(D|w)p(w)
Zw

argminwnβ2[tny(xn,w)]2+α2iwi2

Mówiąc bardziej ogólnie, szacunek MAP jest równoważny z następującymi,

wMAP=argminwlog2P(D|w)log2(w)

Prawa strona wyrażenia może być interpretowana jako liczba bitów potrzebna do opisania twojego klasyfikatora. Pierwszy termin reprezentuje liczbę bitów potrzebną do zakodowania błędów twojej sieci w danych treningowych. Drugi oznacza liczbę bitów potrzebną do zakodowania wag.

Oszacowanie MAP jest zatem równoważne wybraniu najbardziej zwartej reprezentacji. Innymi słowy, szukasz zestawu wag, które uwzględniają dane treningu tak wiernie, jak to możliwe, które mogą być wyrażone przy użyciu najmniejszej liczby bitów.

Zauważ, że jest to kolejna forma problemu błędu / wariancji: im większe wagi, tym niższy pierwszy termin, ponieważ sieć może lepiej dopasować dane treningowe (przeregulowanie). Ale jednocześnie wyższa złożoność wag. Im mniejsze wagi, tym mniejsza złożoność sieci, ale im wyższy jest błąd (błąd). Im większa liczba bitów konieczna do zakodowania błędów w sieci.

Mam nadzieję, że daje to wystarczająco dobre wyobrażenie o tym, o czym on mówi.

PS dodając dłuższy argument do toczącej się dyskusji Być może źle cię zrozumiałem. Pozwól, że postaram się wyjaśnić po raz ostatni.

Uprzednio odważniki oznaczają założenia, które przyjmujemy na temat funkcji, którą chcesz dopasować. Im większy wcześniejszy (tj. Wagi), tym szerszy Gaussa, tzn. Im więcej możliwych konfiguracji, które uważa się za pasujące do sieci.

Rozważmy przypadek regresji (jak w artykule, o którym wspomniałem). Niski błąd generalizacji oznacza, że ​​sieć jest w stanie odwzorować niewidzialne próbki bardzo blisko rzeczywistych wartości. Jeśli dopasowujesz linię prostą, wystarczy wielomian pierwszego rzędu (mała złożoność). Teraz możesz również dopasować dane do wielomianu wyższego rzędu (niech współczynniki wyższego rzędu będą różne od zera). Złożoność sieci jest większa, ponieważ pozwalasz na oscylacje, dla bardziej złożonej krzywej. Niemniej jednak, jeśli współczynniki odpowiadające warunkom wyższego rzędu są wystarczająco niskie, sieć może bardzo dobrze przybliżyć linię prostą, co skutkuje dobrym uogólnieniem.

Tak więc sednem MDL jest zmniejszenie twoich wag tak długo, jak to możliwe, o ile błąd uogólnienia może zostać zminimalizowany.

Na koniec, cytuję: „Wciąż kłopotliwy jest argument, że w miarę jak model zaczyna się dopasowywać, jego możliwości modelowania innych funkcji wzrosną. Myślę, że jest zupełnie odwrotnie, ponieważ model, który się przewyższa, nie może zostać uogólniony, aby zastosować go do nowego Informacja.". Tak, może modelować INNE, bardziej złożone funkcje, ale nie będzie w stanie poprawnie modelować dostępnej funkcji. Na rycinie 5.12 w książce błąd najpierw maleje wraz ze wzrostem masy (redukcja odchylenia). Do pewnego momentu, gdy zacznie ponownie rosnąć (zmniejszenie uogólnienia, przeregulowanie).

jpmuc
źródło
1
Dzięki. Jest to podobne do pomysłu Marca, jednak nadal uważam za kłopotliwy argument, że w miarę jak model zaczyna się przeładowywać, jego możliwości modelowania innych funkcji wzrosną. Myślę, że jest zupełnie odwrotnie, ponieważ model, który się nie mieści, nie może się uogólniać, by zastosować go do nowych informacji.
Robert Smith
1
Robert, wierzę, że jest to pewne błędne zrozumienie, co oznacza błąd uogólnienia vs. złożoność sieci, tj. Zdolność do modelowania bardziej złożonych funkcji. Istnieje wiele artykułów opisujących różne terminy, takich jak cbcl.mit.edu/projects/cbcl/publications/ps/… .
jpmuc
Nie sądzę, by było zamieszanie, gdy używa się terminu „złożoność”, ponieważ jeśli masz kilka wag z szalonymi wartościami, to sprawia, że ​​model jest bardzo złożony i możesz natychmiast stwierdzić wynikowy wykres. Z drugiej strony, możliwość zarządzania szerokim zestawem funkcji wymaga modelu zdolnego do uogólnienia na podstawie danych, które można uzyskać, unikając nadmiernego dopasowania.
Robert Smith