โปรเจ็กต์วิศวกรรมซอฟต์แวร์ที่ดีทุกโปรเจ็กต์จะทุ่มเทพลังงานอย่างมากไปกับการทดสอบ แอป ในทํานองเดียวกัน เราขอแนะนําอย่างยิ่งให้ทดสอบรูปแบบ ML เพื่อดูความถูกต้องของการคาดการณ์
ชุดการฝึก การตรวจสอบ และการทดสอบ
คุณควรทดสอบโมเดลกับชุดตัวอย่างที่แตกต่าง กับชุดที่ใช้ฝึกโมเดล คุณจะทราบในอีกสักครู่ ว่าการทดสอบกับตัวอย่างที่แตกต่างกันเป็นหลักฐานที่แสดงให้เห็นถึงความเหมาะสมของโมเดลมากกว่าการทดสอบกับตัวอย่างชุดเดียวกัน
คุณเอาตัวอย่างต่างๆ เหล่านั้นมาจากไหน โดยทั่วไปแล้ว ในแมชชีนเลิร์นนิง คุณจะได้รับตัวอย่างที่แตกต่างกันเหล่านี้โดยการแยกชุดข้อมูลเดิม คุณจึงอาจคิดว่าควรแยกชุดข้อมูลเดิมออกเป็นชุดย่อย 2 ชุด ดังนี้
รูปที่ 8 การแบ่งงบประมาณไม่เหมาะสม
แบบฝึกหัด: ตรวจสอบความรู้สึกของคุณ
สมมติว่าคุณฝึกในชุดการฝึกและประเมินในชุดทดสอบหลายรอบ ในแต่ละรอบ คุณจะใช้ผลลัพธ์ชุดทดสอบเพื่อแนะนําวิธีอัปเดตไฮเปอร์พารามิเตอร์และชุดฟีเจอร์ คุณเห็นว่าแนวทางนี้มีข้อผิดพลาดใดไหม เลือกคำตอบเพียงข้อเดียว
การทำขั้นตอนนี้หลายรอบอาจทําให้โมเดลพอดีกับลักษณะเฉพาะของชุดทดสอบโดยปริยาย
ได้ ยิ่งคุณใช้ชุดทดสอบเดิมบ่อยเท่าใด โมเดลก็ยิ่งมีแนวโน้มที่จะเข้ากับชุดทดสอบมากขึ้นเท่านั้น
เช่นเดียวกับครูที่ "สอนตามแบบทดสอบ" โมเดลจะจับคู่กับชุดทดสอบโดยไม่ตั้งใจ ซึ่งอาจทําให้โมเดลจับคู่กับข้อมูลในชีวิตจริงได้ยากขึ้น
แนวทางนี้ใช้ได้ ท้ายที่สุดแล้ว คุณกําลังฝึกชุดข้อมูลการฝึกและประเมินในชุดทดสอบแยกต่างหาก
จริงๆ แล้วมีประเด็นเล็กๆ น้อยๆ อยู่ ลองนึกถึงสิ่งที่อาจค่อยๆ ผิดพลาด
แนวทางนี้มีประสิทธิภาพในการประมวลผลต่ำ อย่าเปลี่ยนไฮเปอร์พารามิเตอร์หรือชุดฟีเจอร์หลังการทดสอบแต่ละรอบ
การทดสอบบ่อยครั้งมีค่าใช้จ่ายสูงแต่ก็สำคัญ อย่างไรก็ตาม การทดสอบบ่อยๆ นั้นประหยัดกว่าการฝึกอบรมเพิ่มเติมมาก การเพิ่มประสิทธิภาพไฮเปอร์พารามิเตอร์และชุดฟีเจอร์จะช่วยปรับปรุงคุณภาพโมเดลได้อย่างมาก ดังนั้นให้จัดสรรเวลาและทรัพยากรการประมวลผลเพื่อดำเนินการเหล่านี้เสมอ
การแบ่งชุดข้อมูลออกเป็น 2 ชุดเป็นแนวคิดที่ดี แต่วิธีที่ดีกว่านั้นคือการแบ่งชุดข้อมูลออกเป็นชุดย่อย3 ชุด
นอกจากชุดการฝึกและชุดทดสอบแล้ว ชุดย่อยที่ 3 จะเป็นชุดย่อยต่อไปนี้
รูปที่ 9 แบ่งรายได้ได้ดีขึ้นมาก
ใช้ชุดที่ใช้ตรวจสอบ เพื่อประเมินผลลัพธ์จากชุดข้อมูลการฝึก
หลังจากใช้ชุดข้อมูลที่ใช้ตรวจสอบซ้ำๆ พบว่าโมเดลของคุณทำการคาดการณ์ได้ดี ให้ใช้ชุดทดสอบเพื่อตรวจสอบโมเดลอีกครั้ง
รูปภาพต่อไปนี้แสดงเวิร์กโฟลว์นี้
ในรูปภาพ "ปรับแต่งโมเดล" หมายถึงการปรับทุกอย่างเกี่ยวกับโมเดล ตั้งแต่การเปลี่ยนอัตราการเรียนรู้ การเพิ่มหรือนําฟีเจอร์ออก ไปจนถึงการออกแบบโมเดลใหม่ทั้งหมดตั้งแต่ต้น
เมื่อสิ้นสุดเวิร์กโฟลว์นี้ คุณสามารถเลือกโมเดลที่ทำงานได้ดีที่สุดในกลุ่มทดสอบ
รูปที่ 10 เวิร์กโฟลว์ที่ดีสําหรับการพัฒนาและการทดสอบ
หมายเหตุ: เมื่อเปลี่ยนรูปแบบฟีเจอร์ในชุดการฝึก คุณต้องทําการเปลี่ยนรูปแบบเดียวกัน ในชุดการตรวจสอบ ชุดทดสอบ และชุดข้อมูลในชีวิตจริง
เวิร์กโฟลว์ที่แสดงในรูปที่ 10 เป็นเวิร์กโฟลว์ที่ดีที่สุด แต่แม้จะใช้เวิร์กโฟลว์ดังกล่าวแล้ว ชุดทดสอบและชุดตรวจสอบก็ยังคง "เสื่อมสภาพ" เมื่อใช้ซ้ำ
กล่าวคือ ยิ่งคุณใช้ข้อมูลเดียวกันในการตัดสินใจเกี่ยวกับการตั้งค่าไฮเปอร์พารามิเตอร์หรือการปรับปรุงโมเดลอื่นๆ มากเท่าใด ความเชื่อมั่นที่ว่าโมเดลจะคาดการณ์ข้อมูลใหม่ได้ดีก็จะยิ่งลดลงเท่านั้น
ด้วยเหตุนี้ คุณจึงควรรวบรวมข้อมูลเพิ่มเติมเพื่อ "รีเฟรช" ชุดทดสอบและชุดการตรวจสอบ การเริ่มต้นใหม่เป็นวิธีรีเซ็ตที่ยอดเยี่ยม
แบบฝึกหัด: ตรวจสอบความรู้สึกของคุณ
คุณได้สับตัวอย่างทั้งหมดในชุดข้อมูลและแบ่งตัวอย่างที่สับแล้วออกเป็นชุดการฝึก ชุดการตรวจสอบ และชุดการทดสอบ อย่างไรก็ตาม ค่าการสูญเสียในชุดทดสอบต่ำมากจนคุณสงสัยว่ามีข้อผิดพลาด ปัญหาอาจเกิดจากอะไร
ตัวอย่างจำนวนมากในชุดทดสอบซ้ำกับตัวอย่างในชุดการฝึก
ได้ ปัญหานี้อาจเกิดขึ้นในชุดข้อมูลที่มีตัวอย่างซ้ำกันมาก เราขอแนะนําอย่างยิ่งให้ลบตัวอย่างที่ซ้ำกันออกจากชุดทดสอบก่อนการทดสอบ
การฝึกอบรมและทดสอบเป็นแบบไม่แน่นอน บางครั้ง โอกาสอาจทำให้การสูญเสียในการทดสอบต่ำมาก เรียกใช้การทดสอบอีกครั้งเพื่อยืนยันผลลัพธ์
แม้ว่าการสูญเสียจะแตกต่างกันเล็กน้อยในแต่ละรอบ แต่ไม่ควรแตกต่างกันมากจนคุณคิดว่าตัวเองถูกล็อตเตอรี่แมชชีนเลิร์นนิง
ชุดทดสอบบังเอิญมีตัวอย่างที่โมเดลทำงานได้ดี
ตัวอย่างได้รับการสับอย่างละเอียดแล้ว จึงไม่น่าจะเกิดขึ้น
ปัญหาเพิ่มเติมเกี่ยวกับชุดทดสอบ
ดังที่คำถามก่อนหน้าแสดงให้เห็น ตัวอย่างที่ซ้ำกันอาจส่งผลต่อการประเมินโมเดล
หลังจากแยกชุดข้อมูลออกเป็นชุดการฝึก ชุดตรวจสอบ และชุดทดสอบแล้ว ให้ลบตัวอย่างในชุดตรวจสอบหรือชุดทดสอบที่ซ้ำกับตัวอย่างในชุดการฝึก การทดสอบโมเดลที่ยุติธรรมเพียงอย่างเดียวคือการทดสอบกับตัวอย่างใหม่ ไม่ใช่ตัวอย่างที่ซ้ำกัน
ตัวอย่างเช่น ลองพิจารณาโมเดลที่คาดการณ์ว่าอีเมลเป็นจดหมายขยะหรือไม่ โดยใช้บรรทัดเรื่อง เนื้อความอีเมล และอีเมลของผู้ส่งเป็นฟีเจอร์
สมมติว่าคุณแบ่งข้อมูลออกเป็นชุดการฝึกและชุดทดสอบโดยแบ่งเป็น 80:20
หลังจากการฝึก โมเดลมีความแม่นยำ 99% ทั้งชุดการฝึกและชุดทดสอบ คุณอาจคาดหวังว่าชุดทดสอบจะมีความแม่นยำต่ำกว่า จึงตรวจสอบข้อมูลอีกครั้งและพบว่าตัวอย่างจำนวนมากในชุดทดสอบซ้ำกับตัวอย่างในชุดการฝึก ปัญหาคือคุณไม่ได้กรองรายการที่ซ้ำกันสำหรับอีเมลสแปมเดียวกันออกจากฐานข้อมูลอินพุตก่อนที่จะแยกข้อมูล คุณได้ฝึกด้วยข้อมูลทดสอบบางส่วนโดยไม่ตั้งใจ
โดยสรุปแล้ว ชุดทดสอบหรือชุดการตรวจสอบที่ดีจะต้องมีคุณสมบัติตรงตามเกณฑ์ต่อไปนี้ทั้งหมด
มากพอที่จะให้ผลลัพธ์การทดสอบที่มีนัยสำคัญทางสถิติ
ตัวแทนของชุดข้อมูลโดยรวม กล่าวคือ อย่าเลือกชุดทดสอบที่มีลักษณะแตกต่างจากชุดการฝึก
ตัวแทนของข้อมูลในชีวิตจริงที่โมเดลจะพบเป็นส่วนหนึ่งของวัตถุประสงค์ทางธุรกิจ
ไม่มีตัวอย่างที่ซ้ำกันในชุดการฝึก
แบบฝึกหัด: ทดสอบความเข้าใจ
เมื่อพิจารณาชุดข้อมูลเดียวที่มีจำนวนตัวอย่างคงที่ ข้อความใดต่อไปนี้เป็นจริง
ตัวอย่างทุกรายการที่ใช้ทดสอบโมเดลคือตัวอย่างที่ใช้ในการฝึกโมเดลน้อยลง 1 รายการ
การแบ่งตัวอย่างออกเป็นชุดการฝึก/ทดสอบ/ตรวจสอบเป็นเกมที่มีผลลัพธ์เป็นศูนย์
นี่คือข้อเสียหลัก
จำนวนตัวอย่างในชุดทดสอบต้องมากกว่าจำนวนตัวอย่างในชุดตรวจสอบ
ในทางทฤษฎี ชุดการตรวจสอบและชุดทดสอบควรมีตัวอย่างจำนวนเท่าๆ กันหรือใกล้เคียงกัน
จำนวนตัวอย่างในชุดทดสอบต้องมากกว่าจำนวนตัวอย่างในชุดตรวจสอบหรือชุดการฝึก
โดยปกติแล้ว จำนวนตัวอย่างในชุดการฝึกจะมากกว่าจำนวนตัวอย่างในชุดตรวจสอบหรือชุดทดสอบ แต่ไม่มีข้อกำหนดเปอร์เซ็นต์สำหรับชุดต่างๆ
สมมติว่าชุดทดสอบของคุณมีตัวอย่างมากพอที่จะทำการทดสอบที่มีนัยสำคัญทางสถิติ นอกจากนี้ การทดสอบกับชุดทดสอบยังให้ผลลัพธ์ที่สูญเสียน้อย อย่างไรก็ตาม โมเดลมีประสิทธิภาพต่ำเมื่อนำไปใช้ในชีวิตจริง คุณควรทำอย่างไร
พิจารณาว่าชุดข้อมูลเดิมแตกต่างจากข้อมูลในชีวิตจริงอย่างไร
ได้ แม้ชุดข้อมูลที่ดีที่สุดจะเป็นเพียงภาพรวมของข้อมูลในชีวิตจริง แต่
ข้อมูลพื้นฐาน มีแนวโน้มที่จะเปลี่ยนแปลงเมื่อเวลาผ่านไป แม้ว่าชุดทดสอบจะตรงกับชุดการฝึกมากพอที่จะบ่งบอกถึงคุณภาพโมเดลที่ดี แต่ชุดข้อมูลอาจไม่ตรงกับข้อมูลในชีวิตจริงมากพอ
คุณอาจต้องฝึกและทดสอบอีกครั้งกับชุดข้อมูลใหม่
ทดสอบอีกครั้งในชุดทดสอบเดียวกัน ผลการทดสอบอาจมีความผิดปกติ
แม้ว่าการทดสอบอีกครั้งอาจให้ผลลัพธ์ที่แตกต่างออกไปเล็กน้อย แต่กลยุทธ์นี้อาจไม่ค่อยมีประโยชน์
ชุดทดสอบควรมีตัวอย่างกี่รายการ
ตัวอย่างมากพอที่จะให้ผลการทดสอบที่มีนัยสำคัญทางสถิติ
ได้ มีตัวอย่างกี่รายการ คุณจะต้องทดสอบ
อย่างน้อย 15% ของชุดข้อมูลเดิม
15% อาจมากหรือน้อยเกินไป