Kluczowa zaleta korzystania z minibatcha w przeciwieństwie do pełnego zestawu danych sięga fundamentalnej idei stochastycznego spadku 1 .
W gradiencie wsadowym obliczasz gradient w całym zbiorze danych, uśredniając potencjalnie ogromną ilość informacji. Aby to zrobić, potrzeba dużo pamięci. Ale prawdziwym utrudnieniem jest trajektoria gradientu partii, która ląduje w złym miejscu (punkt siodłowy).
Z drugiej strony w czystym SGD aktualizujesz parametry, dodając (znak minus) gradient obliczony na pojedynczej instancji zestawu danych. Ponieważ jest oparty na jednym losowym punkcie danych, jest bardzo głośny i może odejść w kierunku dalekim od gradientu partii. Jednak hałas jest dokładnie tym, czego chcesz w optymalizacji niewypukłej, ponieważ pomaga ci uciec od punktów siodłowych lub lokalnych minimów (Twierdzenie 6 w [2]). Wadą jest to, że jest wyjątkowo nieefektywne i trzeba znaleźć wiele zestawów danych w pętli, aby znaleźć dobre rozwiązanie.
Metodologia minibatch jest kompromisem, który wprowadza wystarczającą ilość hałasu do każdej aktualizacji gradientu, jednocześnie osiągając względnie szybką zbieżność.
1 Bottou, L. (2010). Uczenie maszynowe na dużą skalę ze stochastycznym spadkiem gradientu. W Proceedings of COMPSTAT'2010 (s. 177-186). Physica-Verlag HD.
[2] Ge, R., Huang, F., Jin, C. i Yuan, Y. (2015, June). Ucieczka od punktów siodłowych - stochastyczny gradient online dla rozkładu tensora. W COLT (str. 797-842).
EDYTOWAĆ :
Właśnie widziałem ten komentarz na Facebooku Yanna LeCuna, który daje świeże spojrzenie na to pytanie (przepraszam, nie wiem jak połączyć z fb.)
Trening z dużymi minibatchem jest szkodliwy dla zdrowia. Co ważniejsze, źle wpływa na błąd testu. Znajomi nie pozwalają przyjaciołom na używanie minibatchów większych niż 32. Spójrzmy prawdzie w oczy: jedynymi osobami, które przeszły na rozmiary minibatchów większe niż jeden od 2012 roku, są to, że procesory graficzne są nieefektywne w przypadku partii mniejszych niż 32. To okropny powód. To po prostu oznacza, że nasz sprzęt jest do bani.
Zacytował ten artykuł, który właśnie został opublikowany na arXiv kilka dni temu (kwiecień 2018 r.), Który warto przeczytać,
Dominic Masters, Carlo Luschi, Ponowne szkolenie dla małych partii dla głębokich sieci neuronowych , arXiv: 1804.07612v1
Z abstrakcji
Podczas gdy stosowanie dużych mini-partii zwiększa dostępną równoległość obliczeniową, wykazano, że szkolenie małych partii zapewnia lepszą wydajność uogólnienia ...
Najwyższą wydajność uzyskano konsekwentnie dla rozmiarów mini-partii od m = 2 do m = 32, co kontrastuje z ostatnimi pracami zalecającymi stosowanie mini-partii w tysiącach.