หยุดก่อนที่จะสูญเสียการตรวจสอบหรือความถูกต้อง?


10

ขณะนี้ฉันกำลังฝึกอบรมเครือข่ายประสาทและฉันไม่สามารถตัดสินใจได้ว่าจะใช้เพื่อใช้เกณฑ์การหยุดก่อนกำหนดของฉัน: การสูญเสียการตรวจสอบความถูกต้องหรือตัวชี้วัดเช่นความแม่นยำ / f1score / auc / สิ่งที่คำนวณในชุดการตรวจสอบ

ในการวิจัยของฉันฉันได้พบกับบทความที่ป้องกันจุดยืนทั้งสอง Keras ดูเหมือนว่าจะเป็นค่าเริ่มต้นสำหรับการสูญเสียการตรวจสอบความถูกต้อง แต่ฉันก็ได้พบคำตอบที่น่าเชื่อถือสำหรับแนวทางตรงกันข้าม (เช่นที่นี่ )

ใครบ้างมีคำแนะนำว่าควรใช้การสูญเสียการตรวจสอบความถูกต้องเมื่อใดและควรใช้การวัดแบบใด

คำตอบ:


6

TLDR; ตรวจสอบการสูญเสียมากกว่าความถูกต้อง

ฉันจะตอบคำถามของฉันเองเพราะฉันคิดว่าคำตอบที่ได้รับนั้นไม่ตรงประเด็นและบางคนอาจมีปัญหาเดียวกันในวันหนึ่ง

ก่อนอื่นให้ฉันอธิบายอย่างรวดเร็วว่าการใช้การหยุดก่อนกำหนดเป็นเรื่องปกติอย่างสมบูรณ์แบบเมื่อฝึกอบรมเครือข่ายประสาท (ดูหัวข้อที่เกี่ยวข้องในหนังสือการเรียนรู้ลึกของ Goodfellow et al, เอกสาร DL ส่วนใหญ่และเอกสารสำหรับการโทรกลับก่อนกำหนดของ keras)

ตอนนี้เกี่ยวกับปริมาณในการตรวจสอบ: ชอบการสูญเสียความถูกต้อง ทำไม? การสูญเสียเชิงปริมาณเป็นวิธีการที่แบบจำลองบางอย่างเกี่ยวกับการทำนาย (โดยทั่วไปมีค่าใกล้เคียงกับ 1 ในระดับที่เหมาะสมและใกล้กับ 0 ในชั้นเรียนอื่น ๆ ) ความถูกต้องแม่นยำเพียงบัญชีสำหรับจำนวนการคาดการณ์ที่ถูกต้อง ในทำนองเดียวกันตัวชี้วัดใด ๆ ที่ใช้การคาดการณ์อย่างหนักมากกว่าความน่าจะเป็นมีปัญหาเดียวกัน

เห็นได้ชัดว่าการวัดใดที่คุณเลือกจะต้องมีการคำนวณในชุดการตรวจสอบความถูกต้องและไม่ใช่ชุดการฝึกอบรม (มิฉะนั้นคุณจะพลาดจุดเริ่มต้นในการใช้ EarlyStopping อย่างสมบูรณ์)


หากค่าอยู่ระหว่าง 0 และ 1, cross_entropyการสูญเสียเป็นผู้สมัครที่นิยมมากขึ้นกว่าหรือMSE MAEชำระเงินส่วน Wrap-up ของบทความนี้และโพสต์นี้สถิติ
Esmailian

@ Emailian มันไม่ได้เป็นเรื่องของการตั้งค่า; สำหรับปัญหาการจัดประเภท MSE & MAE นั้นไม่เหมาะสม
Desertnaut

4

ในความคิดของฉันนี้เป็นอัตนัยและปัญหาเฉพาะ คุณควรใช้อะไรก็ตามที่เป็นปัจจัยที่สำคัญที่สุดในใจของคุณในฐานะตัวชี้วัดการขับขี่เพราะนี่อาจทำให้คุณตัดสินใจเกี่ยวกับวิธีการปรับเปลี่ยนโมเดลที่เพ่งความสนใจไป

ตัวชี้วัดส่วนใหญ่ที่สามารถคำนวณได้จะมีความสัมพันธ์ / คล้ายกันในหลาย ๆ วิธี: เช่นถ้าคุณใช้ MSE สำหรับการสูญเสียของคุณจากนั้นให้บันทึก MAPE (ค่าเฉลี่ยเปอร์เซ็นต์ความผิดพลาดเฉลี่ย) หรืออย่างง่ายL1

ตัวอย่างเช่นหากคุณจะรายงานคะแนน F1ในรายงานของคุณ / ถึงหัวหน้าของคุณเป็นต้น (และสมมติว่านั่นคือสิ่งที่พวกเขาสนใจจริงๆ) การใช้ตัวชี้วัดนั้นก็สมเหตุสมผลดีที่สุด ตัวอย่างเช่นคะแนน F1 คำนึงถึงความแม่นยำและการเรียกคืนสู่บัญชีเช่นอธิบายความสัมพันธ์ระหว่างตัวชี้วัดที่ละเอียดยิ่งขึ้นอีกสองรายการ

การนำสิ่งต่าง ๆ มารวมกันการคำนวณคะแนนอื่น ๆ นอกเหนือจากการสูญเสียตามปกติอาจเป็นสิ่งที่ดีสำหรับภาพรวมและเพื่อดูว่าการวัดขั้นสุดท้ายของคุณนั้นได้รับการปรับให้เหมาะสมที่สุดตลอดการทำซ้ำการฝึกอบรมหรือไม่ ความสัมพันธ์นั้นอาจช่วยให้คุณเข้าใจปัญหาได้ลึกซึ้งยิ่งขึ้น

มันมักจะเป็นที่ดีที่สุดที่จะลองหลายตัวเลือก แต่เป็นการเพิ่มประสิทธิภาพสำหรับการสูญเสียการตรวจสอบอาจช่วยให้การฝึกอบรมเพื่อให้ทำงานได้อีกต่อไปซึ่งในที่สุดก็อาจผลิตที่เหนือกว่าF1 คะแนน ความแม่นยำและการระลึกถึงอาจแกว่งไปมารอบ ๆ minima ท้องถิ่นทำให้เกิดคะแนน F1 เกือบคงที่ดังนั้นคุณจะหยุดการฝึกซ้อม หากคุณได้รับการปรับให้เหมาะสมสำหรับการสูญเสียที่บริสุทธิ์คุณอาจได้บันทึกการสูญเสียที่ผันผวนอย่างเพียงพอเพื่อให้คุณสามารถฝึกอบรมได้นานขึ้น


เหตุใดการใช้การสูญเสียการตรวจสอบจึงทำให้การฝึกอบรมนานกว่าการใช้เมตริก นอกจากนี้คุณสามารถอธิบายรายละเอียดเกี่ยวกับความแตกต่างระหว่างสองตัวเลือกได้หรือไม่ คุณเห็นกรณีที่ควรใช้เมตริกแทนการสูญเสียหรือไม่
qmeeus

@ id-2205 - โปรดดูคำตอบที่แก้ไขของฉัน
n1k31t4

จุดที่น่าสนใจ! ขณะนี้ฉันใช้ความแม่นยำสำหรับการหยุดก่อน แต่ฉันจะพยายามใช้การสูญเสียการตรวจสอบความถูกต้อง ฉันไม่คิดว่าจะมีการเปลี่ยนแปลงใด ๆ ในกระบวนการฝึกอบรม! ขอบคุณสำหรับคำตอบของคุณ
qmeeus

1

ขณะนี้ฉันกำลังฝึกอบรมเครือข่ายประสาทและฉันไม่สามารถตัดสินใจได้ว่าจะใช้เพื่อใช้เกณฑ์การหยุดก่อนกำหนดของฉัน: การสูญเสียการตรวจสอบความถูกต้องหรือตัวชี้วัดเช่นความแม่นยำ / f1score / auc / สิ่งที่คำนวณในชุดการตรวจสอบ

หากคุณกำลังฝึกอบรมเครือข่ายที่ลึกฉันขอแนะนำให้คุณอย่าใช้ก่อนหยุด ในการเรียนรู้อย่างลึกซึ้งมันไม่ได้เป็นเรื่องธรรมดามากนัก แต่คุณสามารถใช้เทคนิคอื่น ๆ เช่นเลื่อนออกเพื่อสรุปได้ดี หากคุณยืนยันในเรื่องนั้นการเลือกเกณฑ์ขึ้นอยู่กับงานของคุณ หากคุณมีข้อมูลที่ไม่สมดุลคุณต้องใช้F1คะแนนและประเมินบนข้อมูลการตรวจสอบข้าม หากคุณมีข้อมูลที่สมดุลลองใช้ความถูกต้องกับข้อมูลการตรวจสอบข้าม เทคนิคอื่น ๆ ขึ้นอยู่กับงานของคุณ

ฉันขอแนะนำให้คุณค้นหาแบบจำลองที่เหมาะกับข้อมูลของคุณเป็นอย่างดีและใช้แบบเลื่อนออกหลังจากนั้น นี่เป็นสิ่งที่คนทั่วไปใช้กันมากที่สุด


2
ฉันกำลังใช้การออกกลางคันเช่นกัน แต่ผมไม่สามารถหาเหตุผลว่าทำไมหยุดต้นไม่ควรใช้แม้ว่า ...
qmeeus

การหยุดก่อนพยายามแก้ปัญหาทั้งการเรียนรู้และการวางนัยทั่วไป ในทางกลับกันออกเพียงพยายามที่จะเอาชนะปัญหาทั่วไป
สื่อ

1
คุณไม่ตอบคำถามของฉัน ... ฉันไม่ปฏิเสธความจริงที่ว่าการออกกลางคันมีประโยชน์และควรใช้เพื่อป้องกันการ overfitting ฉันไม่สามารถตกลงเพิ่มเติมในเรื่องนั้นได้ คำถามของฉันคือ: ทำไมคุณถึงบอกว่าไม่ควรใช้ ANN หยุดก่อนเวลา? (cf ประโยคแรกของคุณ: หากคุณกำลังฝึกอบรมเครือข่ายลึกฉันขอแนะนำให้คุณอย่าหยุดก่อนกำหนด)
qmeeus

คุณอ่านความคิดเห็นล่าสุดของฉัน? มันตอบคำถามของคุณอย่างแน่นอน มันเป็นคำพูดที่มีชื่อเสียงจากราคา อึ้งในชั้นเรียนลึกของเขาหลักสูตรที่สอง กรณีหลังเป็นงานที่ง่ายกว่าเนื่องจากไม่ดิ้นรนเพื่อแก้ไขงานหลายอย่างพร้อมกัน
สื่อ

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