ความแตกต่างระหว่าง Keras val_loss และการสูญเสียระหว่างการฝึก


18

ความแตกต่างระหว่างval_lossและlossระหว่างการฝึกอบรมใน Keras คืออะไร?

เช่น

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 ส่วนของข้อมูลการฝึกอบรมที่จะใช้เป็นข้อมูลการตรวจสอบ แบบจำลองจะแยกส่วนของข้อมูลการฝึกอบรมนี้จะไม่ฝึกอบรมและจะประเมินการสูญเสียและตัวชี้วัดแบบจำลองใด ๆ กับข้อมูลนี้ในตอนท้ายของแต่ละยุค ข้อมูลการตรวจสอบความถูกต้องถูกเลือกจากตัวอย่างสุดท้ายในข้อมูลxและ yที่ให้ไว้ก่อนที่จะสับ

validation_data: tuple (x_val, y_val) หรือ tuple (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_lossหากคุณตั้งค่า verbose เป็น1; นอกจากนี้ยังเป็นเอกสารอย่างชัดเจนระบุคุณสามารถใช้อย่างใดอย่างหนึ่งหรือvalidation_data validation_splitข้อมูลการตรวจสอบข้ามถูกใช้เพื่อตรวจสอบว่าแบบจำลองของคุณตรงกับข้อมูลมากเกินไปหรือไม่ นี่คือสิ่งที่เราสามารถเข้าใจได้ว่าแบบจำลองของเรามีความสามารถทั่วไปหรือไม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.