Dlaczego dodanie warstwy przerywającej poprawia wydajność uczenia głębokiego / uczenia maszynowego, skoro ta rezygnacja tłumi niektóre neurony z modelu?

13

Jeśli usunięcie niektórych neuronów skutkuje lepszym działaniem modelu, dlaczego nie zastosować prostszej sieci neuronowej z mniejszą liczbą warstw i mniejszą liczbą neuronów? Po co budować większy, bardziej skomplikowany model na początku, a później go pomijać?

użytkownik781486
źródło

Odpowiedzi:

31

Funkcja rezygnacji polega na zwiększeniu odporności modelu, a także na usunięciu wszelkich prostych zależności między neuronami.

Neurony są usuwane tylko dla jednego przejścia do przodu i do tyłu przez sieć - co oznacza, że ​​ich wagi są syntetycznie ustawione na zero dla tego przejścia, a więc ich błędy również, co oznacza, że ​​wagi nie są aktualizowane. Dropout działa również jako forma regularyzacji , ponieważ w pewnym sensie karuje model za jego złożoność.

Polecam przeczytanie sekcji Dropout w książce Deep Learning Michaela Nielsena (darmowej i online), która daje miłą intuicję, a także zawiera bardzo pomocne diagramy / objaśnienia. Wyjaśnia, że:

Rezygnacja jest zupełnie inną techniką regularyzacji. W przeciwieństwie do regularyzacji L1 i L2, rezygnacja nie polega na modyfikacji funkcji kosztu. Zamiast tego porzucamy modyfikację samej sieci.

Oto fajny artykuł podsumowujący . Z tego artykułu:

Niektóre spostrzeżenia:

  • Dropout zmusza sieć neuronową do uczenia się bardziej niezawodnych funkcji, które są przydatne w połączeniu z wieloma różnymi losowymi podzbiorami innych neuronów.
  • Porzucenie z grubsza podwaja liczbę iteracji wymaganych do zbieżności. Czas szkolenia dla każdej epoki jest jednak krótszy.
  • Z H ukrytymi jednostkami, z których każdą można upuścić, mamy 2 ^ H możliwych modeli. W fazie testowej brana jest pod uwagę cała sieć, a każda aktywacja jest zmniejszana o współczynnik p.

Przykład

Wyobraź sobie, że poproszę cię o filiżankę herbaty - zawsze możesz użyć prawej ręki do nalania wody, lewego oka do zmierzenia poziomu wody, a następnie prawej ręki ponownie wymieszać herbatę łyżeczką. Oznaczałoby to, że twoja lewa ręka i prawe oko nie mają większego sensu. Użycie opuszczenia wiązałoby się np. Z zawiązaniem prawej ręki za plecami - zmuszeniem do użycia lewej ręki. Teraz, po zrobieniu mi 20 filiżanek herbaty, bez użycia jednego oka lub jednej ręki, jesteś lepiej wyszkolony w używaniu wszystkiego, co dostępne. Być może później będziesz zmuszony zaparzyć herbatę w niewielkiej kuchni, w której można używać czajnika tylko z lewym ramieniem ... a po opuszczeniu masz doświadczenie! Stałeś się bardziej odporny na niewidzialne dane.

n1k31t4
źródło
jak określić najlepszą wartość odrzucenia dla klasyfikacji wielosektorowej? i jak ustalić najlepszą liczbę usuwanych warstw?
N.IT.
2
@ N.IT - o ile mi wiadomo, nie ma dobrze zdefiniowanej metody, która znalazłaby najlepszy poziom rezygnacji lub ile warstw - oprócz jsut wypróbowania wielu kombinacji. Podobnie jak w przypadku innych metod regularyzacji i eksploracji architektury, prawdopodobnie uzyskasz najlepsze wyniki, trenując model i porównując krzywe utraty treningu / walidacji. Sprawdź to wyjaśnienie na ten temat .
n1k31t4,
Świetna odpowiedź. Aby być bardziej konkretnym w odniesieniu do Twojej analogii kuchennej, Dropout jest używany tylko podczas treningu, a nie podczas wnioskowania. Dlatego złożony model nie jest częściowo wykorzystywany.
Vaibhav Garg
wpisuję tę odpowiedź z zamkniętymi oczami. więcej potrzebuję szkolenia. nwws moew seopour.
VHanded
3

Upadek tak naprawdę nie usuwa neuronów, po prostu te konkretne neurony nie odgrywają żadnej roli (nie aktywują się) dla danej partii danych.

Przykład - załóżmy, że jest droga o 8 pasach - kiedy nadjeżdżają samochody ciężarowe, przejeżdżają przez pasy 1,2,4,6,7, gdy nadjeżdżają samochody, mijają pasy 2,3,4,7,8, a gdy nadjeżdżają rowery , przechodzą przez pasy 1,2,5,8. Niezależnie od pojazdu, wszystkie pasy są dostępne, ale tylko niektóre z nich są używane.

Podobnie, wszystkie neurony są używane w całym modelu, ale tylko pewien podzbiór neuronów jest aktywowany dla określonej partii danych. Model nie jest później wycinany, złożoność modelu pozostaje niezmienna.

Dlaczego warto skorzystać z dropouta?

Jak podano w książce Deep learning autorstwa Iana Goodfellowa,

rezygnacja jest bardziej skuteczna niż inne standardowe niedrogie obliczeniowo normalizatory, takie jak zanik masy, ograniczenia norm filtracyjnych i rzadka regularyzacja aktywności.

Mówi także -

Jedną z zalet rezygnacji jest to, że jest bardzo tanio obliczeniowa.

Inną znaczącą zaletą rezygnacji jest to, że nie ogranicza ona znacząco rodzaju modelu lub procedury szkoleniowej, którą można zastosować. Działa dobrze z prawie każdym modelem, który korzysta z reprezentacji rozproszonej i może być trenowany ze stochastycznym spadkiem gradientu. Obejmuje to sprzężone sieci neuronowe, modele probabilistyczne, takie jak ograniczone maszyny Boltzmanna (Srivastava i in., 2014), oraz nawracające sieci neuronowe (Bayer i Osendorfer, 2014; Pascanu i in., 2014a).

Ta książka mówi:

Podstawową ideą jest to, że wprowadzenie szumu do wartości wyjściowych warstwy może przełamać nieistotne wzorce zdarzeń, które sieć zacznie zapamiętywać, jeśli nie będzie żadnego hałasu.

Ankit Seth
źródło
Zredagowałem pytanie, aby użyć słowa pomijaj, a nie usuwaj. Pytanie pozostaje. Po co budować tak wiele pasów, skoro tylko niektóre z nich są używane na końcu?
user781486,
@ user781486 Niektóre z nich oznaczają niektóre z nich dla każdej partii danych, ale wszystkie zostaną wykorzystane, jeśli weźmiesz pod uwagę całe dane. Podobnie jak w moim przykładzie, wszystkie pasy 1-8 są używane, jeśli weźmiesz połączony zestaw numerów pasów dla każdego pojazdu.
Ankit Seth
3

Innym sposobem spojrzenia na to, co robi wypadanie, jest to, że jest to jak płyta i skok przed współczynnikiem dla zmiennej towarzyszącej (to jest pewien złożony składnik interakcji pierwotnych zmiennych towarzyszących z pewnymi skomplikowanymi przekształceniami funkcjonalnymi) w modelu Bayesa. Jest to interpretacja zaproponowana przez Yarina Gal w jego pracy magisterskiej (patrz jego lista publikacji ).

Oto krótki, wymachujący ręką argument, dlaczego tak jest:

  • W tych partiach, w których neuron jest eliminowany, współczynnik cecha / zmienna towarzysząca (skonstruowany przez połączenie w sieci neuronowej wchodzącej do neuronu) wynosi zero (skok na zero).
  • W tych partiach, w których obecny jest neuron, współczynnik jest nieograniczony (niewłaściwe płaskie wcześniejsze = płyta).
  • Uśrednione dla wszystkich partii, przedtem dostajesz kolec i płytę.

Dlaczego mielibyśmy chcieć wcześniej płyty z kolcami? Indukuje model bayesowski uśredniający pomiędzy siecią neutralną bez tego neuronu i jednym z nim. Innymi słowy, pozwala nam wyrazić niepewność, czy sieć neutralna naprawdę musi mieć pełną możliwą złożoność i odpowiednio uwzględnia tę niepewność w prognozy. Rozwiązuje to poważny problem polegający na tym, że sieci neutralne mogą się dopasowywać do danych (choć oczywiście nie jest to jedyny możliwy sposób osiągnięcia tego celu).

Björn
źródło
Słuszna uwaga. Zaktualizuje odpowiedź.
Björn,
2

Warstwa usuwająca masowo zabija określoną część neuronów, zmniejszając zdolność reprezentacyjną danego modelu. Zapobiega to dopasowaniu przez sieć złożonych nieliniowych granic decyzyjnych (tj. „Szumowi” w zbiorze danych), tym samym zapobiegając (lub poprawiając) nadmierne dopasowanie.

Pranav Vempati
źródło
0

Porzucenie pomaga poprawić wydajność modelu uczenia maszynowego z następujących powodów:

  • Uproszczenie sieci: sprawia, że ​​sieć jest prostsza, co zapobiega nadmiernemu dopasowaniu.
  • Lepsze niż korzystanie z pojedynczej prostej sieci: Lepiej niż ręcznie przeprojektować prostszą sieć, ponieważ po zaprojektowaniu określonej architektury nie można jej zmienić, dopóki nie zakończy się cały proces szkolenia, tj. Dla wszystkich epok architektura sieci jest ustalona. Jednak w każdej epoce sieć jest na różne sposoby prostsza. Powiedz, że przez tysiąc epok próbujesz 1000 rodzajów prostszych odmian sieci.
  • Naucz się na wiele sposobów: wejście i wyjście sieci nie ulegają zmianie, jedyne, co się zmienia, to mapowanie między nimi. Więc wyobraź sobie, że sieć uczy się tego samego na różne sposoby. Tak więc, podobnie jak ta sieć, dla nas, ludzi - ilekroć myślimy o tym samym problemie na różne sposoby, automatycznie uczymy się go uogólniać, a nasza ogólna wiedza i zrozumienie również się poprawia, a podobne rzeczy pojawiają się w sieci. Ponieważ podczas procesu rezygnacji w każdej epoce losowo niektóre obciążenia (połączenie neuronu z innym neuronem następnej warstwy) ulegają przecięciu, dlatego zmuszamy sieć do uczenia się przy użyciu istniejących połączeń, które są nadal dostępne, a zatem sieć się uczy jak przeanalizować ten sam problem z różnych perspektyw.
hafiz031
źródło