Jak i dlaczego normalizacja wsadowa wykorzystuje średnie ruchome do śledzenia dokładności modelu podczas treningu?


21

Czytałem artykuł z normalizacji wsadowej (BN) (1) i nie rozumiałem potrzeby używania średnich ruchomych do śledzenia dokładności modelu, a nawet jeśli zaakceptowałem, że było to właściwe, nie rozumiem co dokładnie robią.

W moim rozumieniu (co się mylę) w dokumencie wspomniano, że wykorzystuje on statystyki populacji, a nie mini-partię, statystyki po zakończeniu szkolenia przez model. Po krótkiej dyskusji na temat obiektywnych szacunków (co wydaje mi się styczne i nie rozumiem, dlaczego o tym mówi), idą i mówią:

Używając zamiast tego średnich kroczących, śledzimy dokładność modelu podczas jego trenowania.

Ta część jest dla mnie myląca. Dlaczego robią średnie kroczące, aby oszacować dokładność modelu i zestaw danych?

Zwykle to, co ludzie robią, aby oszacować uogólnienie swojego modelu, po prostu śledzą błąd walidacji swojego modelu (i potencjalnie wcześnie zatrzymują opadanie gradientu w celu uregulowania). Wydaje się jednak, że normalizacja wsadowa robi coś zupełnie innego. Czy ktoś może wyjaśnić, co i dlaczego robi coś innego?


1 : Ioffe S. i Szegedy C. (2015),
„Normalizacja partii: przyspieszenie głębokiego szkolenia w sieci poprzez zmniejszenie wewnętrznej zmiany współzmiennej”,
materiały z 32. międzynarodowej konferencji na temat uczenia maszynowego , Lille, Francja, 2015.
Journal of Machine Learning Research: W&CP tom 37


Czy jesteś zadowolony z pozytywnej odpowiedzi? To wcale nie jest „odpowiedź”, jeśli mnie zapytacie; jeśli nadal jest odpowiedni, mogę udzielić lepszej odpowiedzi.
OverLordGoldDragon

@OverLordGoldDragon podają własną odpowiedź :)
Pinocchio,

Odpowiedzi:


8

Podczas korzystania z batch_normalization pierwszą rzeczą, którą musimy zrozumieć, jest to, że działa ona na dwa różne sposoby podczas treningu i testowania .

  1. W szkoleniu musimy obliczyć średnią mini-partia, aby znormalizować partię

  2. Wnioskujemy, że po prostu stosujemy wstępnie obliczone statystyki mini-partii

Więc w drugiej rzeczy, jak obliczyć tę mini statystykę partii

Nadchodzi średnia ruchoma

running_mean = momentum * running_mean + (1 - momentum) * sample_mean
running_var = momentum * running_var + (1 - momentum) * sample_var

To nie odpowiada na pytanie; zapytano „dlaczego” i „jak” oraz podano powierzchowne „co”. Nie należy go głosować.
OverLordGoldDragon

1

Mówią o normalizacji partii, którą opisali dla procedury szkolenia, ale nie dla wnioskowania.

Jest to proces normalizacji ukrytych jednostek przy użyciu przykładowych środków itp.

W tej sekcji wyjaśniają, co zrobić na etapie wnioskowania, gdy tylko przewidujesz (tj. Po zakończeniu treningu).

Jednak w zatrzymanej walidacji przeplatasz prognozę na zestawie walidacyjnym ze szkoleniem, aby oszacować swój błąd walidacji.

Tak więc podczas tego procesu nie masz średniej populacji (średnie wciąż się zmieniają podczas treningu), więc używasz średniej bieżącej do obliczania parametrów normy partii, aby obliczyć wydajność na zestawie sprawdzania poprawności.

W tym sensie to

Używając zamiast tego średnich kroczących, śledzimy dokładność modelu podczas jego trenowania.

nie ma nic wspólnego z dosłownym wykorzystaniem środków do uruchamiania jako miernika wydajności sieci neuronowej.

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.