Słownik AI

Dropout – ang. Dropout

Dropout w sieciach neuronowych – definicja i zastosowanie

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)

Dropout w Wikipedii

Oficjalna dokumentacja PyTorch – nn.Dropout

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *