Widziałem podobny wniosek z wielu dyskusji, że wraz ze wzrostem rozmiaru mini-partii konwergencja SGD faktycznie staje się trudniejsza / gorsza, na przykład ten artykuł i ta odpowiedź . Słyszałem także o ludziach stosujących sztuczki, takie jak małe stawki uczenia się lub wielkości partii na wczesnym etapie, aby rozwiązać ten problem w przypadku dużych partii.
Wydaje się to jednak sprzeczne z intuicją, ponieważ średnią stratę minibatchu można traktować jako przybliżenie oczekiwanej straty w dystrybucji danych,
im większy rozmiar partii, tym dokładniejsza powinna być. Dlaczego w praktyce tak nie jest?
Oto niektóre z moich (prawdopodobnie błędnych) myśli, które próbują wyjaśnić.
Parametry modelu w dużym stopniu zależą od siebie, gdy partia staje się zbyt duża, wpłynie to na zbyt wiele parametrów naraz, tak że trudno jest osiągnąć stabilną zależność parametrów? (jak wewnętrzny problem przesunięcia współzmiennej wspomniany w dokumencie normalizacyjnym partii )
Czy kiedy prawie wszystkie parametry są odpowiedzialne w każdej iteracji, będą mieli tendencję do uczenia się zbędnych wzorców niejawnych, a tym samym zmniejszają pojemność modelu? (Mam na myśli powiedzmy, że w przypadku problemów z klasyfikacją cyfr niektóre wzory powinny być odpowiedzialne za kropki, niektóre za krawędzie, ale kiedy tak się dzieje, każdy wzór próbuje być odpowiedzialny za wszystkie kształty).
A może dlatego, że kiedy wielkość partii zbliża się do skali zestawu treningowego, minibatche nie mogą być już postrzegane jako takie same z rozkładu danych, ponieważ istnieje duże prawdopodobieństwo skorelowanych minibatek?
Aktualizacja
Jak wskazano w odpowiedzi Benoit Sanchez, jednym ważnym powodem jest to, że duże minibatche wymagają więcej obliczeń, aby ukończyć jedną aktualizację, a większość analiz używa do porównania stałej liczby epok treningowych.
Jednak ten artykuł (Wilson i Martinez, 2003) pokazuje, że większy rozmiar partii jest nadal nieco niekorzystny, nawet przy wystarczającej ilości epok treningowych. Czy tak jest ogólnie?