ความแตกต่างระหว่างval_lossและlossระหว่างการฝึกอบรมใน Keras คืออะไร?
เช่น
Epoch 1/20
1000/1000 [==============================] - 1s - loss: 0.1760, val_loss: 0.2032
ในบางเว็บไซต์ฉันอ่านว่าเรื่องการตรวจสอบความถูกต้องการออกกลางคันไม่ทำงาน
ความแตกต่างระหว่างval_lossและlossระหว่างการฝึกอบรมใน Keras คืออะไร?
เช่น
Epoch 1/20
1000/1000 [==============================] - 1s - loss: 0.1760, val_loss: 0.2032
ในบางเว็บไซต์ฉันอ่านว่าเรื่องการตรวจสอบความถูกต้องการออกกลางคันไม่ทำงาน
คำตอบ:
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ข้อมูลการตรวจสอบข้ามถูกใช้เพื่อตรวจสอบว่าแบบจำลองของคุณตรงกับข้อมูลมากเกินไปหรือไม่ นี่คือสิ่งที่เราสามารถเข้าใจได้ว่าแบบจำลองของเรามีความสามารถทั่วไปหรือไม่
dropoutไม่ใช่None) การออกกลางคันจะถูกนำไปใช้เฉพาะในระหว่างการฝึกอบรมเท่านั้น (เช่นไม่มีการออกกลางคันในการตรวจสอบ) หนึ่งในความแตกต่างระหว่างการสูญเสียการตรวจสอบความถูกต้อง (val_loss) และการสูญเสียการฝึกอบรม (loss) คือเมื่อใช้การออกกลางคันการสูญเสียการตรวจสอบความถูกต้องอาจต่ำกว่าการสูญเสียการฝึกอบรม