Czym jest Dropout (w sieciach neuronowych)?
Dropout to technika regularizacji zaproponowana w 2012 roku przez zespół Geoffreya Hintona z Uniwersytetu Toronto. Polega na losowym wyłączaniu części neuronów w trakcie uczenia, co zapobiega nadmiernemu dopasowaniu modelu do danych treningowych. Dzięki temu sieć uczy się bardziej odpornych reprezentacji, które lepiej generalizują się na nieznane wcześniej przykłady.
Jak dokładnie działa Dropout (w sieciach neuronowych)
Podczas każdej iteracji treningu do ustalonego procenta (zwykle 20–50 %) neuronów w warstwie ukrytej przypisywana jest maska Bernoulliego. Neurony objęte maską nie uczestniczą w przekazywaniu sygnału ani w aktualizacji wag. W fazie testowej wszystkie neurony są aktywne, lecz ich wyjścia są skalowane współczynnikiem równym prawdopodobieństwu pozostawienia neuronu w czasie treningu. Zabieg ten zastępuje kosztowne trenowanie wielu odrębnych modeli, tworząc w praktyce dużą liczbę losowo przerzedzonych sieci, których predykcje uśrednia się w jednym kroku.
Kontekst historyczny
Ideę opublikowano w pracy „Improving neural networks by preventing co-adaptation of feature detectors” autorstwa Nitisha Srivastavy, Geoffrey’a Hintona i współpracowników. Artykuł dostępny na arXiv stał się punktem odniesienia dla badań nad regularizacją w głębokim uczeniu.
Zastosowania w praktyce
Dropout sprawdza się w klasyfikacji obrazów, przetwarzaniu języka naturalnego i systemach rekomendacyjnych. Przykładowo w konkursie ImageNet 2012 sieć konwolucyjna AlexNet z Dropoutem na dwóch gęstych warstwach uzyskała wyraźnie niższy błąd top-5, wyznaczając nowy standard uczenia modeli wizji komputerowej.
Zalety i ograniczenia
Główną zaletą jest ograniczenie nadmiernego dopasowania bez potrzeby skomplikowanych procedur. Technika jest prosta w implementacji i nie wymaga dodatkowych hiperparametrów poza współczynnikiem prawdopodobieństwa wyłączenia neuronu. Do wad należy wydłużenie czasu uczenia z uwagi na większą liczbę epok potrzebnych do konwergencji, a także ryzyko niedouczenia przy zbyt agresywnym przerzedzaniu.
Na co uważać?
Stosując Dropout w sieciach konwolucyjnych, warto umieszczać go przede wszystkim w warstwach gęstych, ponieważ zbyt duże przerzedzenie map cech może prowadzić do utraty informacji przestrzennej. Dropout może mieć ograniczoną skuteczność w przypadku małych sieci, gdzie redukcja liczby aktywnych neuronów pogarsza zdolność modelu do reprezentacji danych.
Dodatkowe źródła
Pełne omówienie techniki znajduje się w pracy Srivastava et al., 2014. Praktyczny opis oraz implementację w frameworku PyTorch można znaleźć w dokumentacji torch.nn.Dropout. Zwięzłe wprowadzenie oferuje również hasło Wikipedia.


