เหตุใดจึงต้องใช้ทั้งชุดการตรวจสอบและชุดการทดสอบ


17

พิจารณาโครงข่ายประสาทเทียม:

สำหรับชุดข้อมูลที่กำหนดเราแบ่งเป็นชุดฝึกอบรมตรวจสอบและทดสอบ สมมติว่าเราทำในอัตราส่วน 60:20:20 คลาสสิคจากนั้นเราป้องกันการ overfitting โดยตรวจสอบความถูกต้องของเครือข่ายโดยตรวจสอบในชุดการตรวจสอบความถูกต้อง ถ้าอย่างนั้นจำเป็นต้องทำการทดสอบอะไรในชุดทดสอบเพื่อตรวจสอบประสิทธิภาพ?

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

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


4
คุณต้องการให้เหมือนกัน แต่คุณไม่สามารถแน่ใจได้เพราะคุณได้แตะเพื่อเพิ่มประสิทธิภาพพารามิเตอร์และการหยุดต้นดังนั้นคุณต้องมีชุดทดสอบบริสุทธิ์
เอ็ม

@Emre แต่น้ำหนักจะถูกปรับตามชุดการฝึกอบรมและไม่ได้อยู่ในชุดการตรวจสอบความถูกต้องดังนั้นผลลัพธ์ของชุดการทดสอบและการตรวจสอบความถูกต้องจึงไม่ควรแตกต่างกัน
1825567

ไม่พวกเขาไม่ (รับการปรับเปลี่ยนตามชุดการฝึกอบรม) นั่นคือสำหรับพารามิเตอร์ปกติ
เอ็ม

คำตอบ:


23

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

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

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

ทดสอบชุดช่วยให้คุณสามารถเปรียบเทียบรูปแบบที่แตกต่างกันในวิธีการที่เป็นกลางโดยยึดรถของคุณในข้อมูลที่ไม่ได้ใช้ในการเป็นส่วนหนึ่งของขั้นตอนการคัดเลือกการฝึกอบรม / hyperparameter ใด ๆ ของคุณ


11

ชุดทดสอบและชุดการตรวจสอบความถูกต้องไขว้มีวัตถุประสงค์ที่แตกต่างกัน หากคุณทิ้งอันใดอันหนึ่งคุณจะเสียประโยชน์:

  • ชุดการตรวจสอบความถูกต้องไขว้ถูกใช้เพื่อช่วยตรวจจับการกระชับและช่วยในการค้นหาพารามิเตอร์มากเกินไป

  • ชุดทดสอบใช้สำหรับวัดประสิทธิภาพของโมเดล

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

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

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

จากการเป็นพยานการแข่งขัน Kaggle หลายครั้งประสบการณ์ของฉันก็คือการปรับไปสู่การทดสอบที่กำหนดโดยการใช้งานเกินจริงเป็นเรื่องจริงและส่งผลกระทบต่อการแข่งขันเหล่านั้นอย่างมาก มักจะมีกลุ่มของคู่แข่งที่ปีนบอร์ดผู้นำของสาธารณะและเลือกแบบจำลองที่ดีที่สุดในการทดสอบ (กระดานผู้นำสาธารณะนั้นเป็นชุดทดสอบที่มีประสิทธิภาพ) ในขณะที่ยังไม่ได้ผ่านการตรวจสอบที่สมบูรณ์ . . คู่แข่งเหล่านี้หล่นลงกระดานผู้นำเมื่อมีการแนะนำชุดทดสอบใหม่ในตอนท้าย

วิธีการหนึ่งที่สมเหตุสมผลคือการใช้ข้อมูลซ้ำอีกครั้ง (รถไฟ + cv) เพื่อฝึกอบรมใหม่โดยใช้ไฮเปอร์ params ที่คุณพบก่อนการทดสอบ ด้วยวิธีนี้คุณจะได้รับการฝึกอบรมกับข้อมูลมากขึ้นและคุณยังคงได้รับการวัดประสิทธิภาพที่เป็นอิสระในตอนท้าย

หากคุณต้องการที่จะได้รับเพิ่มเติมจากการตรวจสอบข้ามวิธีปกติคือK-พับการตรวจสอบข้าม กลอุบายทั่วไปในการแข่งขัน Kaggle คือการใช้การตรวจสอบความถูกต้องของ k-fold และแทนที่จะรวมข้อมูลเข้าไปในชุดฝึกอบรมที่มีขนาดใหญ่กว่า (รถไฟ + cv) เพื่อรวบรวมหรือรวบรวมผลลัพธ์ cv ให้เป็นเมตาดาต้าโมเดล

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


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