Wybór odpowiedniego rozmiaru mini-partii dla stochastycznego spadku gradientu (SGD)


13

Czy jest jakaś literatura, która bada wybór wielkości mini-partii podczas stochastycznego spadku gradientu? Z mojego doświadczenia wynika, że ​​jest to wybór empiryczny, zwykle znajdowany w drodze weryfikacji krzyżowej lub przy użyciu różnych reguł.

Czy dobrym pomysłem jest powolne zwiększanie rozmiaru minibatchu, gdy zmniejsza się błąd sprawdzania poprawności? Jaki miałby to wpływ na błąd generalizacji? Czy lepiej korzystać z bardzo małej minibatchu i aktualizować mój model setki tysięcy razy? Czy lepiej by mi było, gdyby liczba była zbalansowana pomiędzy ekstremalnie małą i partią?
Czy powinienem przeskalować rozmiar mojego minibatchu według rozmiaru zestawu danych, czy też oczekiwanej liczby funkcji w zestawie danych?

Oczywiście mam wiele pytań na temat wdrażania schematów uczenia się w małych partiach. Niestety większość artykułów, które czytam, tak naprawdę nie precyzuje, jak wybrali ten hiperparametr. Odniosłem pewien sukces od autorów takich jak Yann LeCun, zwłaszcza z kolekcji papierów Tricks of the Trade. Jednak wciąż nie widziałem, aby te pytania zostały w pełni rozwiązane. Czy ktoś ma jakieś zalecenia dotyczące artykułów lub porady, jakich kryteriów mogę użyć, aby określić dobre rozmiary minibatchów, próbując poznać funkcje?


Wydaje mi się, że nie otrzymuję wielu hitów na ten temat. Czy istnieje lepsza witryna wymiany stosów, w której można zadawać pytania dotyczące uczenia maszynowego lub głębokiego uczenia się?
Jason_L_Bens

Odpowiedzi:


6

Teorię dotyczącą skuteczności SGD opracowano na podstawie aktualizacji pojedynczych przykładów (tj. Rozmiar minibatchu 1), więc używanie większych minibatek nie jest teoretycznie konieczne. Ma dwie praktyczne zalety:

Po pierwsze , jeśli obliczenia można wektoryzować, być może uda się obliczyć gradienty dla małego minibatchu> 1 niemal równie szybko, co prowadzi do znacznego wzrostu prędkości w treningu.

W tym przypadku optymalny rozmiar minibatcha jest funkcją konkretnego sprzętu i implementacji, z którą pracujesz, więc prawdopodobnie najlepiej jest poeksperymentować, aby znaleźć najodpowiedniejsze miejsce.

Po drugie, obliczenie gradientu dla rozmiaru minibatch> 1 doprowadzi do dokładniejszych gradientów i bardziej optymalnych kroków. Ale ta korzyść pojawi się i wyrówna szybko, gdy rozmiar mini-partii wzrośnie powyżej 1, więc możesz skupić się przede wszystkim na pierwszym celu.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.