ความแตกต่างระหว่าง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
) คือเมื่อใช้การออกกลางคันการสูญเสียการตรวจสอบความถูกต้องอาจต่ำกว่าการสูญเสียการฝึกอบรม