การเรียนรู้ของเครื่องมากเกินไปคืออะไรและจะหลีกเลี่ยงได้อย่างไร



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

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

Overfitting ใน Machine Learning คืออะไร?

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





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



ตัวอย่างของ Overfitting

ตัวอย่าง 1

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



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

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

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

ตอนนี้ให้เราพิจารณาตัวอย่างที่อธิบายเพิ่มเติมด้วยความช่วยเหลือของคำชี้แจงปัญหา

ตัวอย่าง 2

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

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

นี่คือลักษณะของ overfitting เป็นปัญหาที่พบบ่อยมากใน Machine Learning และแม้แต่วิทยาศาสตร์ข้อมูล ตอนนี้ให้เราเข้าใจสัญญาณและเสียงรบกวน

สัญญาณเทียบกับเสียงรบกวน

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

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

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

Underfitting คืออะไร?

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

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

วิธีตรวจจับ Overfitting?

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

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

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

อีกวิธีในการตรวจจับการติดตั้งมากเกินไป คือการเริ่มต้นด้วยรูปแบบที่เรียบง่ายซึ่งจะใช้เป็นเกณฑ์มาตรฐาน

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

จะหลีกเลี่ยงการฟิตติ้งมากเกินไปในการเรียนรู้ของเครื่องได้อย่างไร

มีเทคนิคหลายอย่างในการหลีกเลี่ยงการใส่อุปกรณ์มากเกินไปใน Machine Learning ตามรายการด้านล่าง

  1. Cross-Validation

  2. การฝึกอบรมด้วยข้อมูลเพิ่มเติม

  3. การลบคุณสมบัติ

  4. การหยุดก่อนกำหนด

  5. การทำให้สม่ำเสมอ

    วิธีแคสสองครั้งเป็น int
  6. การประกอบ

1. การตรวจสอบความถูกต้องข้ามกัน

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

ในการตรวจสอบความถูกต้อง k-fold มาตรฐานข้อมูลจะถูกแบ่งออกเป็น k-subsets หรือที่เรียกว่า folds หลังจากนี้อัลกอริทึมจะได้รับการฝึกฝนซ้ำ ๆ กับการพับ k-1 ในขณะที่ใช้การพับที่เหลือเป็นชุดการทดสอบหรือที่เรียกว่าการพับเก็บ

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

2. การฝึกอบรมด้วยข้อมูลเพิ่มเติม

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

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

3. การลบคุณสมบัติ

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

วิธีหนึ่งที่จะทำได้คือการหาข้อสรุปว่าคุณลักษณะนั้นเข้ากับโมเดลอย่างไร ค่อนข้างคล้ายกับการดีบักโค้ดทีละบรรทัด

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

4. การหยุดก่อนกำหนด

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

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

5. การทำให้เป็นมาตรฐาน

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

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

6. การประกอบ

เทคนิคนี้โดยพื้นฐานแล้วจะรวมการคาดการณ์จากโมเดล Machine Learning ต่างๆ วิธีการทั่วไปสองวิธีในการประกอบชุดมีดังต่อไปนี้:

  • การบรรจุถุงจะพยายามลดโอกาสที่จะสวมใส่โมเดลมากเกินไป

  • เพิ่มความพยายามในการปรับปรุงความยืดหยุ่นในการคาดการณ์ของแบบจำลองที่ง่ายขึ้น

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

ความดีของความพอดีคืออะไร?

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

การแลกเปลี่ยนระหว่างอคติและความแปรปรวน

ทั้งความแปรปรวนและความลำเอียงเป็นรูปแบบของข้อผิดพลาดในการคาดคะเน . การแลกเปลี่ยนระหว่างความแปรปรวนสูงและอคติสูงเป็นแนวคิดที่สำคัญมากในสถิติและการเรียนรู้ของเครื่อง นี่เป็นแนวคิดหนึ่งที่มีผลต่ออัลกอริทึม Machine Learning ที่อยู่ภายใต้การดูแลทั้งหมด

การแลกเปลี่ยนอคติและความแปรปรวนมีผลกระทบอย่างมีนัยสำคัญต่อการกำหนดความซับซ้อนความไม่เหมาะสมและความเหมาะสมมากเกินไปสำหรับโมเดลการเรียนรู้ของเครื่องใด ๆ

วิธีใช้ goto c ++

อคติ

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

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

ความแปรปรวน

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

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

การแลกเปลี่ยนอคติ - ความแปรปรวน

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

อัลกอริธึมอคติสูงที่มีความแปรปรวนต่ำมีความซับซ้อนน้อยโดยมีโครงสร้างที่เรียบง่ายและเข้มงวด

  • พวกเขาจะฝึกโมเดลที่สอดคล้องกัน แต่ไม่ถูกต้องโดยเฉลี่ย

  • ซึ่งรวมถึงอัลกอริทึมเชิงเส้นหรือพาราเมตริกเช่นการถดถอย ฯลฯ

อัลกอริธึมอคติที่มีความแปรปรวนสูง - ต่ำมีแนวโน้มที่จะซับซ้อนมากขึ้นโดยมีโครงสร้างที่ยืดหยุ่น

  • พวกเขาจะฝึกโมเดลที่ไม่สอดคล้องกัน แต่แม่นยำโดยเฉลี่ย

  • ซึ่งรวมถึงอัลกอริทึมที่ไม่ใช่เชิงเส้นหรือไม่ใช่พารามิเตอร์เช่น , ฯลฯ

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

หากคุณพบบทความเรื่อง“ Overfitting In Machine Learning” เกี่ยวข้องโปรดดูที่ไฟล์ บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้พร้อมเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก

เราพร้อมช่วยเหลือคุณในทุกขั้นตอนในการเดินทางและจัดทำหลักสูตรที่ออกแบบมาสำหรับนักเรียนและผู้เชี่ยวชาญที่ต้องการเป็น . หลักสูตรนี้ออกแบบมาเพื่อให้คุณเริ่มต้นในการเขียนโปรแกรม Python และฝึกอบรมแนวคิด Python ทั้งหลักและขั้นสูงพร้อมกับ ชอบ , ฯลฯ

หากคุณพบคำถามใด ๆ โปรดอย่าลังเลที่จะถามคำถามทั้งหมดของคุณในส่วนความคิดเห็นของ“ Overfitting In Machine Learning” และทีมของเรายินดีที่จะตอบ