훈련 중 val_loss와 손실 사이의 Keras 차이


18

Keras의 훈련 기간 val_lossloss훈련 기간 의 차이점은 무엇입니까 ?

예 :

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

일부 사이트에서 유효성 검사시 드롭 아웃이 작동하지 않는다는 것을 읽었습니다.


드롭 아웃에 대해 읽어야 할 것은 드롭 아웃이 사용될 때 (즉 , dropout아닌 None), 드롭 아웃은 훈련 중에 만 적용됩니다 (즉, 검증 중에는 드롭 아웃이 적용되지 않음). 따라서 유효성 검증 손실 ( val_loss)과 교육 손실 ( loss) 의 차이점 중 하나는 누락을 사용할 때 유효성 검증 손실이 교육 손실보다 낮을 수 있다는 것입니다 (일반적으로 드롭 아웃을 사용하지 않는 경우에는 예상되지 않음).
Psi

답변:


15

val_loss교차 검증 데이터에 대한 비용 함수의 가치이고 손실은 훈련 데이터에 대한 비용 함수의 가치입니다. 유효성 검사 데이터에서 드롭 아웃을 사용하는 뉴런은 임의의 뉴런을 삭제하지 않습니다. 그 이유는 훈련 중에 과도한 피팅을 피하기 위해 약간의 노이즈를 추가하기 위해 드롭 아웃을 사용하기 때문입니다. 교차 검증을 계산하는 동안 우리는 훈련 단계가 아닌 리콜 단계에 있습니다. 우리는 네트워크의 모든 기능을 사용합니다.

친애하는 친구 중 한 명 덕분에 여기 에서 유용한 내용을 인용하고 설명 합니다.

validation_split: 0과 1 사이의 부동 소수점. 유효성 검사 데이터로 사용될 훈련 데이터의 비율. 이 모델은 훈련 데이터의이 부분을 분리하여 학습하지 않으며, 각 에포크의 끝에서이 데이터의 손실 및 모델 메트릭을 평가합니다. 유효성 검사 데이터는 셔플 링하기 전에 제공된 xy 데이터 의 마지막 샘플에서 선택됩니다 .

validation_data: 손실 및 각 에포크의 끝에서 모든 모델 메트릭을 평가할 튜플 (x_val, y_val) 또는 튜플 (x_val, y_val, val_sample_weights). 이 데이터에 대해서는 모델이 학습되지 않습니다. 이는 validation_split을 대체합니다.

보시다시피

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)

fit에 사용 된 메소드 Keras에는 validation_split이라는 매개 변수가 있으며,이 매개 변수는 각 에포크 후에 작성된 모델을 평가하는 데 사용되는 데이터의 백분율을 지정합니다. 이 양의 데이터를 사용하여 모델을 평가 한 후 val_lossverbose를 1;로 설정하면 보고됩니다 . 또한 설명서에서 명확하게 지정한대로 validation_data또는을 사용할 수 있습니다 validation_split. 교차 검증 데이터는 모델이 데이터에 과적 합하는지 여부를 조사하는 데 사용됩니다. 모델에 일반화 기능이 있는지 여부를 이해할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.