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


24

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

คำถามของฉันคือ: การทำเช่นนั้นดีที่สุดเสมอหรือไม่? จะเป็นอย่างไรถ้าประสิทธิภาพลดลงจริง

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

ถามคำถามเริ่มต้นของฉันอีกครั้ง:

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

คำตอบ:


14

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

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

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

แต่ถ้าคุณรู้ค่าเป้าหมายของข้อมูลใหม่ทำไมคุณถึงฝึกฝนโมเดลในตอนแรก

โดยทั่วไปแล้วฉันจะบอกว่าถ้าคุณมีข้อมูลเพียงพอที่มีความหลากหลายเพียงพอแล้วการสับและแยกข้อมูล 80:20 การฝึกอบรม: การทดสอบควรเพียงพอที่จะฝึกแบบจำลองที่มีประสิทธิภาพและไม่ต้องกังวลเกี่ยวกับปัญหาทั่วไป รูปแบบ)


+1 ขอขอบคุณสำหรับคำตอบ! ดูเหมือนว่าสุ่มชุดข้อมูลก่อนที่จะแบ่งออกเป็น 80/20 อาจทำให้เรารู้สึก "สถิติ" มั่นใจ (:
pcko1 1

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

13

คำถามที่น่าสนใจ โดยส่วนตัวฉันไม่เคยเห็นมาก่อนว่าจะมีผลิตภัณฑ์ใดเข้าสู่การผลิต แต่เข้าใจตรรกะ

ในทางทฤษฎียิ่งคุณเห็นโมเดลที่ปรับใช้ของคุณมากเท่าไหร่ ดังนั้นถ้าคุณฝึกแบบจำลองกับชุดข้อมูลที่คุณมีอยู่มันควรจะสรุปได้ดีกว่าแบบจำลองที่เห็นเฉพาะชุดรถไฟ / val (เช่น ~ 90%) จากชุดข้อมูลแบบเต็ม

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

[แก้ไข]

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


เราวนซ้ำ:

  1. ฝึกอบรมนางแบบ
  2. เปลี่ยนรูปแบบ
  3. ไปที่ขั้นตอนที่ 1
  4. ประเมินประสิทธิภาพของชุดทดสอบ
  5. แสดงแบบจำลองที่มีความแม่นยำในการทดสอบในขั้นตอนที่ 5

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

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

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


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

1
ยินดีต้อนรับคุณ! ฉันเห็นด้วยอย่างยิ่งกับข้อความของคุณ (แม้ว่าฉันบอกว่าจะทดสอบรูปแบบการฝึกอบรมขั้นสุดท้ายเกี่ยวกับข้อมูลการทดสอบต้นทาง ไม่ว่าในกรณีใดฉันก็ยังอยากจะเห็นว่ารุ่นสุดท้ายไม่ได้ทำอะไรที่คาดไม่ถึงเลย ทฤษฎีและการฝึกฝนไม่ได้จัดแนวเสมอ :)
n1k31t4

6

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

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

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

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

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

โดยเฉพาะอย่างยิ่งการปฏิบัติมาตรฐานมีดังนี้:

  1. สำรองข้อมูลบางส่วนของคุณไว้ในชุดทดสอบที่มีการจัดออก ไม่มีกฎที่ยากและรวดเร็วเกี่ยวกับเศษส่วนที่จะใช้ แต่ตัวอย่างเช่นคุณอาจสำรอง 20% สำหรับชุดทดสอบและเก็บ 80% ที่เหลือสำหรับการฝึกอบรมและการตรวจสอบ โดยปกติการแยกทั้งหมดควรเป็นแบบสุ่ม

  2. จากนั้นใช้ข้อมูลการฝึกอบรมและการตรวจสอบความถูกต้องเพื่อลองสถาปัตยกรรมและพารามิเตอร์หลายตัวทดสอบเพื่อค้นหาแบบจำลองที่ดีที่สุดที่คุณสามารถทำได้ นำ 80% ที่สะสมไว้สำหรับการฝึกอบรมและการตรวจสอบและแยกเป็นชุดฝึกอบรมและชุดตรวจสอบและฝึกอบรมรูปแบบโดยใช้ชุดฝึกอบรมแล้ววัดความแม่นยำในชุดการตรวจสอบ หากคุณใช้การตรวจสอบข้ามคุณจะทำเช่นนี้แยกหลายครั้งและเฉลี่ยผลลัพธ์ในชุดการตรวจสอบ; หากคุณไม่ใช่คุณจะทำการแยกเดี่ยว (เช่นแบ่ง 70% / 30% ของ 80% หรืออะไรทำนองนั้น) และประเมินประสิทธิภาพของชุดการตรวจสอบความถูกต้อง หากคุณมีหลายพารามิเตอร์ให้ลองทำเช่นนี้เพียงครั้งเดียวสำหรับแต่ละการตั้งค่าผู้สมัครของพารามิเตอร์ หากคุณมีสถาปัตยกรรมมากมายให้ลองทำเช่นนี้สำหรับสถาปัตยกรรมที่มีผู้สมัครแต่ละคน คุณสามารถทำซ้ำสิ่งนี้โดยใช้สิ่งที่คุณต้องการ

  3. เมื่อคุณมีความสุขคุณจะหยุดการเลือกสถาปัตยกรรมพารามิเตอร์หลายมิติ ฯลฯ ตอนนี้การทดลองของคุณเสร็จสิ้นแล้ว เมื่อคุณถึงจุดนี้คุณจะไม่สามารถลองตัวเลือกอื่น ๆ ได้อีก (โดยไม่ได้รับชุดทดสอบใหม่) - ดังนั้นอย่ากดจุดนี้จนกว่าคุณจะแน่ใจว่าคุณพร้อมแล้ว

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

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


+1 สำหรับความพยายามแม้ว่าฉันจะไม่เห็นด้วยอย่างเต็มที่ :) เช่นเมื่อคุณพูดถึง "ในแง่ของประสิทธิภาพที่คาดหวังการใช้ข้อมูลทั้งหมดจะไม่แย่ไปกว่าการใช้ข้อมูลบางอย่างและอาจดีกว่า" ฉันไม่เห็นเหตุผลที่อยู่เบื้องหลัง ในทางกลับกันจุดที่ 2 ที่คุณพูดถึงดูเหมือนจะสำคัญมาก ดังนั้นคุณจะต้องฝึกอบรม / ตรวจสอบความถูกต้องกับตัวอย่างทั้งหมดดังนั้นคุณอาจจะปฏิเสธผู้ผิดพลาดในรุ่นสุดท้ายที่เลือก ขอบคุณสำหรับคำตอบ.
pcko1

@ pcko1 หลักการง่ายๆ หากคุณมีข้อมูลคุณควรใช้ทั้งหมดหรือบางส่วน ทำไม? บางทีเมื่อเราได้รับข้อมูลก่อนที่เราจะทำอะไรเราควรเอามัน 10% แล้วทิ้งไปและอย่ามองมันเลย ในความเป็นจริงหากการทิ้งบางอย่างดีการขว้างออกไปมากกว่านั้นดีกว่าดังนั้นบางทีเราควรทิ้งข้อมูลทั้งหมดของเรา มันไร้สาระใช่มั้ย ทำไม? ดูว่าคุณสามารถหาสาเหตุและลองใช้กับสถานการณ์นี้ หวังว่านี่จะทำให้คุณคิด!
DW

3

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

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