Różnica Keras między utratą wartości a utratą podczas treningu

18

Jaka jest różnica pomiędzy treningiem w Keras val_lossi losspodczas niego?

Na przykład

Epoch 1/20
1000/1000 [==============================] - 1s - loss: 0.1760, val_loss: 0.2032  

Na niektórych stronach czytałem, że po sprawdzeniu poprawności nie działało.

Vladimircape
źródło
To, co czytasz o rezygnacji, to prawdopodobnie to, że kiedy jest ona wykorzystywana (tzn. dropoutNie jest None), rezygnacja jest stosowana tylko podczas treningu (tj. Brak rezygnacji podczas walidacji). W związku z tym jedną z różnic między utratą sprawdzania poprawności ( val_loss) a utratą treningu ( loss) jest to, że podczas korzystania z rezygnacji utrata walidacji może być mniejsza niż utrata szkolenia (zwykle nie jest to oczekiwane w przypadkach, gdy rezygnacja nie jest stosowana).
Psi

Odpowiedzi:

16

val_lossjest wartością funkcji kosztu dla danych weryfikacji krzyżowej, a utrata jest wartością funkcji kosztu danych szkolenia. Na podstawie danych walidacyjnych neurony wykorzystujące wypadanie nie upuszczają przypadkowych neuronów. Powodem jest to, że podczas treningu używamy drop-upu, aby dodać trochę hałasu, aby uniknąć nadmiernego dopasowania. Podczas obliczania weryfikacji krzyżowej znajdujemy się w fazie wycofania, a nie w fazie szkolenia. Korzystamy ze wszystkich możliwości sieci.

Dzięki jednemu z naszych drogich przyjaciół cytuję i wyjaśniam stąd przydatne treści.

validation_split: Zmienna między 0 a 1. Część danych treningowych, która zostanie wykorzystana jako dane walidacyjne. Model wyodrębni tę część danych treningowych, nie będzie na nich trenował i oceni stratę oraz wszelkie metryki modelu na tych danych na końcu każdej epoki. Dane sprawdzania poprawności są wybierane z ostatnich próbek w dostarczonych danych x i y , przed tasowaniem.

validation_data: krotka (x_val, y_val) lub krotka (x_val, y_val, val_sample_weights), na podstawie których ocenia się stratę i dowolne metryki modelu na końcu każdej epoki. Model nie będzie szkolony na tych danych. Zastąpi to validation_split.

Jak widzisz

fit(self, x=None, y=None, batch_size=None, epochs=1, verbose=1, callbacks=None, validation_split=0.0, validation_data=None, shuffle=True, class_weight=None, sample_weight=None, initial_epoch=0, steps_per_epoch=None, validation_steps=None)

fitzastosowana metoda Kerasma parametr o nazwie validation_split, który określa procent danych używanych do oceny modelu, który jest tworzony po każdej epoce. Po dokonaniu oceny modelu przy użyciu tej ilości danych, zostanie to zgłoszone przez, val_lossjeśli ustawiłeś opcję szczegółową na 1; ponadto, jak jasno dokumentuje, możesz użyć jednego validation_datalub validation_split. Dane do weryfikacji krzyżowej są używane do badania, czy model nie pasuje do danych, czy nie. Właśnie to możemy zrozumieć, czy nasz model ma możliwość generalizacji, czy nie.

Głoska bezdźwięczna
źródło