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.


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.

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.