Jakie są różnice między „epoką”, „partią” i „minibatchem”?

38

O ile wiem, przyjmując Stochastic Gradient Descent jako algorytm uczenia się, ktoś używa „epoki” dla pełnego zestawu danych i „partii” dla danych wykorzystywanych w jednym kroku aktualizacji, podczas gdy inny używa odpowiednio „partii” i „minibatchu”, oraz inni używają „epoki” i „minibatchu”. To powoduje wiele zamieszania podczas dyskusji.

Jakie jest prawidłowe powiedzenie? Czy są to tylko dialekty, które są do zaakceptowania?

Tim
źródło

Odpowiedzi:

25
  • Epoka oznacza jedno przejście przez pełny zestaw treningowy
  • Batch oznacza, że ​​używasz wszystkich danych do obliczenia gradientu podczas jednej iteracji.
  • Mini-partia oznacza, że ​​bierzesz tylko podzbiór wszystkich danych podczas jednej iteracji.
To
źródło
15

Jedna epoka zazwyczaj oznacza, że ​​algorytm widzi każdą instancję szkolenia raz. Teraz zakładając, że masz wystąpień szkoleniowych:n

Jeśli uruchomisz aktualizację wsadową, każda aktualizacja parametrów wymaga, aby algorytm widział każdą z instancji treningowych dokładnie raz, tj. Każdą epokę, w której parametry są aktualizowane raz.n

Po uruchomieniu aktualizacji mini partii o wielkości partii = , każda zmiana parametru wymaga algorytmu patrz z wystąpień treningowych, czyli każda epoka twoje parametry są zaktualizowane informacje czasów.bbnn/b

Jeśli uruchomisz aktualizację SGD, każda aktualizacja parametrów wymaga, aby algorytm widział 1 z instancji szkoleniowych, tj. W każdej epoce twoje parametry są aktualizowane około razy.nn

użytkownik1036719
źródło
4

„Epoka” oznacza zwykle udostępnianie algorytmu uczenia się całemu zestawowi danych treningowych. Nie zawsze ma to sens, ponieważ czasami generujemy dane.

„Batch” i „Minibatch” mogą być mylące.

Przykłady treningów czasami muszą być „grupowane”, ponieważ nie wszystkie dane mogą koniecznie zostać narazone na algorytm naraz (zwykle z powodu ograniczeń pamięci).

W kontekście SGD „Minibatch” oznacza, że ​​gradient jest obliczany dla całej partii przed aktualizacją wag. Jeśli nie używasz „minibatch”, każdy przykład szkolenia w „batch” aktualizuje parametry algorytmu uczenia niezależnie.

koło żelazne
źródło
Czy jesteś pewien ostatniego akapitu? Myślałem, że „partie” SGD wykorzystują wszystkie dane z epoki, aby powoli obliczyć bardzo precyzyjny gradient. Twoje ostatnie zdanie brzmi jak mini-partia wielkości 1.
Matt Krause
Witamy również w Cross Validated!
Matt Krause
Tak, oryginalny SGD ma mini-partię wielkości 1. Myślę, że ostatecznie zależy to od interpretacji autora oprogramowania. Bardzo często partia == mini-partia, bez dokumentacji wspominającej o „mini-partii”.
żelazne koło
Err, myślę, że miałem na myśli, że partie GD wykorzystuje wszystkie dane. Zazwyczaj używam partii i minibatchu zamiennie, ale „mini-partia”, kiedy chcę zauważyć, że jest naprawdę mała ...
Matt Krause