Bagging vs Dropout w Deep Neural Networks

17

Bagging to generowanie wielu predyktorów, które działają tak samo, jak jeden predyktor. Dropout jest techniką, która uczy sieci neuronowe uśredniania wszystkich możliwych podsieci. Patrząc na najważniejsze zawody Kaggle, wydaje się, że te dwie techniki są bardzo często używane razem. Nie widzę żadnej teoretycznej różnicy poza faktyczną implementacją. Kto może mi wyjaśnić, dlaczego powinniśmy używać obu z nich w jakiejkolwiek prawdziwej aplikacji? i dlaczego poprawia się wydajność, gdy korzystamy z nich obu?

emanuele
źródło

Odpowiedzi:

21

Pakowanie i przerywanie nie osiągają dokładnie tego samego, chociaż oba są typami uśredniania modeli.

Tworzenie worków to operacja obejmująca cały zestaw danych, która trenuje modele na podzbiorze danych szkoleniowych. Dlatego niektóre przykłady szkolenia nie są pokazane dla danego modelu.

Natomiast rezygnacja jest stosowana do funkcji w każdym przykładzie szkolenia. Prawdą jest, że wynik jest funkcjonalnie równoważny treningowi wykładniczo wielu sieci (ze wspólnymi wagami!), A następnie równym ważeniu ich wyników. Ale rezygnacja działa w przestrzeni funkcji, powodując, że niektóre funkcje są niedostępne w sieci, a nie pełne przykłady. Ponieważ każdy neuron nie może całkowicie polegać na jednym wejściu, reprezentacje w tych sieciach są zwykle bardziej rozproszone, a sieć ma mniejsze szanse na przeregulowanie.

jamesmf
źródło
+1 za dobre wyjaśnienie. Czy znasz jakieś łącza do implementacji języka Python? Każdy blog, a może Github?
Dawny33
Jest tutaj przyzwoity: deeplearning.net/tutorial/lenet.html , chociaż wolę styl tego: neuralnetworksanddeeplearning.com/chap6.html . Do implementacji i świetnych demonstracji podoba mi się keras (dość łatwa do instalacji) keras.io
jamesmf
2

Znalazłem porównanie dwóch rodzajów sieci w Max Out Networks, które mówi:

Szkolenie porzucania jest podobne do szkolenia w workowaniu (Breiman, 1994), w którym wiele różnych modeli jest trenowanych w różnych podzbiorach danych. Szkolenie porzucania różni się od workowania tym, że każdy model jest trenowany tylko dla jednego kroku, a wszystkie modele mają wspólne parametry. Aby ta procedura treningowa (rezygnacja) zachowywała się tak, jakby trenowała zespół, a nie pojedynczy model, każda aktualizacja musi mieć duży efekt, aby sprawił, że sub-model indukowany przez ten µ dobrze pasuje do prądu wejściowego v.

Mam nadzieję, że się przyda.

emanuele
źródło
0

Rezygnacja jest techniką regularyzacji stosowaną w celu uniknięcia nadmiernego dopasowania w dużych sieciach neuronowych, szczególnie poprzez pominięcie niektórych neuronów w ukrytych warstwach (stąd nazwa rezygnacji dla neuronów pominiętych) po treningu. Zasadniczo, jeśli sieć naprawdę nauczyła się czegokolwiek podczas treningu, to porzucenie niektórych neuronów nie powinno negatywnie wpłynąć na dokładność prognoz.

Tworzenie worków jest również skuteczną techniką regularyzacji, stosowaną w celu zmniejszenia wariancji danych treningowych i poprawy dokładności modelu poprzez użycie wielu jego kopii wyszkolonych na różnych podzbiorach danych z początkowego / większego zestawu danych treningowych.

zobacz to pytanie

LiNKeR
źródło