Czym jest Dropout?
Dropout to technika regularyzacji stosowana w głębokich sieciach neuronowych, polegająca na losowym „wyłączaniu” wybranych jednostek (neuronu lub całych połączeń) podczas każdej iteracji treningu. Przypadkowe pomijanie fragmentów modelu wymusza na sieci uczenie się bardziej ogólnych reprezentacji danych, co bezpośrednio przekłada się na mniejsze ryzyko przeuczenia.
Krótki rys historyczny
Koncepcję Dropout zaproponowali w 2012 roku Geoffrey Hinton, Nitish Srivastava, Alex Krizhevsky, Ilya Sutskever i Ruslan Salakhutdinov, pracując w University of Toronto. Metoda została opisana w publikacji „Dropout: A Simple Way to Prevent Neural Networks from Overfitting”, udostępnionej w serwisie arXiv w lipcu 2012 r. oraz zaprezentowana na konferencji ICML 2014. Od tego czasu stała się standardowym elementem bibliotek takich jak TensorFlow czy PyTorch.
Jak dokładnie działa Dropout
Mechanika losowego wyłączania neuronów
Podczas przebiegu w przód sieć losuje maskę Bernoulliego z prawdopodobieństwem p, najczęściej mieszczącym się w zakresie 0,2–0,5. Neurony, którym przypada wartość 0, nie uczestniczą w obliczeniach: ich wyjście jest zerowane, a wsteczna propagacja nie aktualizuje odpowiadających im wag. W fazie inferencji wszystkie jednostki pozostają aktywne, a wagi są skalowane przez czynnik (1 − p), dzięki czemu oczekiwana wielkość sygnału jest zgodna z tą z etapu uczenia.
Różnica względem klasycznych metod regularyzacji
L2 czy wczesne zatrzymanie ograniczają złożoność modelu poprzez karę nakładaną na wagi lub przerwanie treningu. Dropout działa inaczej: w każdej epoce tworzy stochastyczny, okrojony wariant sieci, co można porównać do trenowania i uśredniania wielu mniejszych modeli bez dodatkowego kosztu obliczeniowego.
Zastosowania w praktyce
Dropout bywa stosowany w klasyfikacji obrazów, rozpoznawaniu mowy, przetwarzaniu języka naturalnego oraz w zadaniach rekomendacyjnych. Przykładowo w architekturze CNN dla ImageNet wartość p = 0,5 w pełni połączonych warstwach umożliwiła zmniejszenie błędu top-5 o kilka punktów procentowych w porównaniu z siecią uczoną bez regularyzacji.
Zalety i ograniczenia
Najistotniejszą korzyścią jest ograniczenie przeuczenia przy niewielkim narzucie czasowym, ponieważ maskowanie można zrealizować jedną instrukcją mnożenia. Dropout jest niezależny od rodzaju funkcji aktywacji i łatwo integruje się z innymi metodami regularyzacji. W praktyce nie wszystkie warstwy reagują jednakowo korzystnie: w warstwach konwolucyjnych z małą liczbą kanałów zbyt wysoki p może osłabić ekspresywność przedstawień, a w sieciach rekurencyjnych wymaga modyfikacji, takich jak Locked Dropout.
Na co uważać?
Zastosowanie tej techniki w sieciach z normalizacją warstw lub w bardzo głębokich modelach wymaga dostrojenia, aby nie doszło do zbyt drastycznego wygaszania sygnału. Użycie zbyt dużego prawdopodobieństwa może prowadzić do niedouczenia modelu, natomiast zbyt małe nie przyniesie oczekiwanej poprawy generalizacji. Zaleca się stopniowe strojenie p wraz z obserwacją metryk walidacyjnych.
Dodatkowe źródła
Dropout: A Simple Way to Prevent Neural Networks from Overfitting (arXiv)


