Czy sieci rezydualne są powiązane z przyspieszaniem gradientu?

11

Ostatnio widzieliśmy pojawienie się Residual Neural Net, w której każda warstwa składa się z modułu obliczeniowego i połączenia skrótowego, które zachowuje dane wejściowe do warstwy, takie jak dane wyjściowe z i-tej warstwy: Sieć pozwala wydobyć pozostałe cechy i pozwala na głębszą głębię, będąc jednocześnie bardziej odporna na znikający problem gradientu, osiągając najnowocześniejsze osiągi.ci

yi+1=ci+yi

Po zagłębieniu się w zwiększanie gradientu , bardzo potężną technikę łączenia w świecie uczenia maszynowego, która wydaje się również wykonywać pewną formę optymalizacji gradientu na resztkach strat, Trudno nie zauważyć żadnej formy podobieństwa.

Wiem, że są one podobne, ale nie takie same - jedną z głównych różnic, które zauważyłem, jest to, że zwiększenie gradientu dokonuje optymalizacji addytywnego składnika, podczas gdy sieć resztkowa optymalizuje całą sieć.

Nie widziałem, aby zauważył to jako część motywacji w ich oryginalnej pracy . Zastanawiałem się więc, jakie są twoje spostrzeżenia na ten temat i proszę o podzielenie się interesującymi zasobami.

Dziękuję Ci.

Rhadar
źródło

Odpowiedzi:

7

Potencjalnie nowszy artykuł, który próbuje rozwiązać ten problem od zespołu Langforda i Shapire'a: Uczenie się głębokich bloków ResNet sekwencyjnie przy użyciu teorii zwiększania

Częściami zainteresowania są (patrz sekcja 3):

Kluczową różnicą jest to, że wzmocnienie jest zbiorem szacunkowej hipotezy, podczas gdy ResNet jest zbiorem oszacowanych reprezentacji cech . Aby rozwiązać ten problem, wprowadzamy pomocniczy klasyfikator liniowy na szczycie każdego bloku resztkowego, aby zbudować moduł hipotezy . Formalnie moduł hipotezy jest zdefiniowany jakot=0Tft(gt(x))wt

ot(x):=wtTgt(x)R

...

(gdzie)ot(x)=t=0t1wtTft(gt(x))

W artykule znacznie bardziej szczegółowo budowę słabego klasyfikatora modułów oraz sposób, w jaki integruje się to z ich algorytmem BoostResNet .ht(x)


Dodając nieco więcej szczegółów do tej odpowiedzi, wszystkie algorytmy podwyższające można zapisać w jakiejś formie [1] (str. 5, 180, 185 ...):

FT(x):=t=0Tαtht(x)

Gdzie jest słabą hipotezą , dla pewnego wyboru . Zauważ, że różne algorytmy zwiększające dają i na różne sposoby.httthαtαtht

Na przykład AdaBoost [1] (p. 5) używa aby zminimalizować ważony błąd pomocąhtϵtαt=12log1ϵtϵt

Z drugiej strony, w ustawieniu zwiększania gradientu [1] (p 190.) który maksymalizuje i jest wybrany (jako współczynnik uczenia się itp.)htL(Ft1(x))htαt>0

Gdzie jak w [2] w Lemma 3.2, pokazano, że wyjście głębokości ResNet wynosi co jest równoważne zTF(x)

F(x)t=0Tht(x)

to uzupełnia związek między wzmocnieniem a resnetem. Artykuł [2] proponuje dodanie dodatkowej warstwy liniowej, aby uzyskać ją w postaci , co prowadzi do ich algorytmu BoostResNet i dyskusji na ten tematFT(x):=t=0Tαtht(x)

[1] Robert E. Schapire i Yoav Freund. 2012. Wzmocnienie: podstawy i algorytmy. Naciśnij MIT. s 5, 180, 189
[2] Furong Huang, Jordan Ash, John Langford, Robert Schapire: Uczenie się głębokich bloków ResNet sekwencyjnie przy użyciu teorii wzmocnienia, ICML 2018

chappers
źródło
4

Odpowiadając na moje pytanie: Znalazłem znaczący artykuł, który bada i dowodzi, że Głębokie Sieci Pozostałości są rzeczywiście zespołem płytkich sieci.

KOLEJNA EDYCJA, po zrozumieniu tego problemu, abit więcej: Patrzę na Resnets jako sposób na naukę „Zwiększania funkcjonalności”. Resztkowe połączenie wykonuje wzmocnienie, ale nie na celu, ale na cechach wyjściowych następnej warstwy. Tak więc są w rzeczywistości powiązane, ale nie jest to klasyczne zwiększanie gradientu, ale w rzeczywistości „Gradient Boosting”.

Rhadar
źródło