ทำไม Overfitting แย่ในการเรียนรู้ของเครื่อง?


49

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


ที่เกี่ยวข้อง:ติดตามคำถามข้างต้น " โมเดลจะได้รับการสนับสนุนเมื่อใด "


1
คำถามของคุณจริงหรือไม่ว่ามีกรณีที่เป็นไปไม่ได้
Sean Owen

@SeanOwen: ไม่มันจะเป็นไปไม่ได้ที่จะ overfit อย่างไร?
ความผิดพลาด

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

1
การกำหนดให้มากเกินไปไม่ดีตามคำจำกัดความ ถ้ามันไม่ได้มันจะไม่เป็นมากกว่ากระชับ
Gala

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

คำตอบ:


44

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

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

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

PS ในส่วน "ความสามารถในการพูดคุยทั่วไป" ของคำถามเป็นไปได้มากที่จะมีแบบจำลองที่มีความสามารถที่ จำกัด โดยทั่วไปที่จะพูดคุยเนื่องจากโครงสร้างของแบบจำลอง (เช่น linear SVM, ... ) แต่ยังมีแนวโน้มที่จะ อิง ในแง่ที่ว่า overfitting เป็นเพียงวิธีหนึ่งที่การวางนัยทั่วไปอาจล้มเหลว


17

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

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

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

แก้ไข : นี่อาจจะเป็นการใช้งานบางอย่างอาจเพิ่มความมีชีวิตชีวาให้กับคำอธิบายข้างต้น: D


14

การพูดอย่างคร่าว ๆ มักจะเกิดข้อผิดพลาดมากเกินไปเมื่ออัตราส่วน

ป้อนคำอธิบายรูปภาพที่นี่

สูงเกินไป

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

ตัวอย่าง:

  • หากข้อมูลของคุณอยู่ในสองมิติคุณมี 10,000 คะแนนในชุดการฝึกอบรมและโมเดลเป็นเส้นคุณมีแนวโน้มที่จะอยู่ภายใต้ - พอดี
  • หากข้อมูลของคุณอยู่ในสองมิติคุณมี 10 คะแนนในชุดการฝึกอบรมและแบบจำลองนั้นมีพหุนาม 100 องศาคุณน่าจะมีค่ามากกว่า - พอดี

ป้อนคำอธิบายรูปภาพที่นี่

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

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

ป้อนคำอธิบายรูปภาพที่นี่

ฉันแนะนำให้ดูหลักสูตรการเรียนรู้ของเครื่อง Coursera ในหัวข้อ "10: คำแนะนำในการใช้การเรียนรู้ของเครื่อง"

(PS: โปรดไปที่นี่เพื่อขอการสนับสนุน TeX ใน SE นี้)



5

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


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

4

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

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

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

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

The Noem กลางวันทฤษฎีบทบอกว่าไม่มีรูปแบบใดสามารถเอาชนะโมเดลอื่น ๆ ในชุดของอินสแตนซ์ที่เป็นไปได้ทั้งหมด หากคุณต้องการทำนายว่าอะไรจะเกิดขึ้นตามลำดับของตัวเลข "2, 4, 16, 32" คุณไม่สามารถสร้างแบบจำลองที่แม่นยำกว่าแบบอื่นได้หากคุณไม่ได้ทำการสันนิษฐานว่ามีรูปแบบพื้นฐาน แบบจำลองที่ overfit ไม่ได้ประเมินรูปแบบจริง ๆ - เป็นเพียงแบบจำลองสิ่งที่รู้ว่าเป็นไปได้และให้การสังเกต คุณได้รับพลังการทำนายโดยสมมติว่ามีฟังก์ชั่นพื้นฐานบางอย่างและถ้าคุณสามารถกำหนดได้ว่าฟังก์ชันนั้นคืออะไรคุณสามารถทำนายผลลัพธ์ของเหตุการณ์ได้ แต่ถ้าไม่มีรูปแบบจริงๆแล้วคุณก็โชคไม่ดีและสิ่งที่คุณหวังได้คือตารางค้นหาเพื่อบอกสิ่งที่คุณรู้ว่าเป็นไปได้


1

คุณกำลังสับสนเอนทิตี้สองแบบที่แตกต่างกัน: (1) ความแปรปรวนแบบอคติและความซับซ้อนของแบบจำลอง (2)

(1) over-fitting เป็นสิ่งที่ไม่ดีในการเรียนรู้ของเครื่องเพราะมันเป็นไปไม่ได้ที่จะเก็บตัวอย่างประชากรที่ไม่มีอคติอย่างแท้จริงของข้อมูลใด ๆ แบบจำลองที่มีขนาดพอดีทำให้ผลลัพธ์ของพารามิเตอร์ที่มีอคติกับตัวอย่างแทนที่จะประเมินค่าพารามิเตอร์อย่างเหมาะสมสำหรับประชากรทั้งหมด ซึ่งหมายความว่ามีจะยังคงเป็นความแตกต่างระหว่างประมาณค่าพารามิเตอร์และพารามิเตอร์ที่เหมาะสมไม่คำนึงถึงจำนวนของ epochs ฝึกอบรมnไว*nϕ^ϕn

e ϕ|ϕϕ^|eϕ as nโดยที่เป็นค่าขอบเขตeϕ

(2) ความซับซ้อนของโมเดลคือในแง่ง่ายจำนวนของพารามิเตอร์ใน\หากความซับซ้อนของโมเดลอยู่ในระดับต่ำแล้วมีข้อผิดพลาดจะยังคงถดถอยคำนึงถึงจำนวนของการฝึกอบรม epochs แม้ในขณะที่เท่ากับประมาณ{*} ตัวอย่างที่ง่ายที่สุดคือการเรียนรู้เพื่อให้พอดีกับเส้น (y = mx + c) โดยที่กับข้อมูลบนเส้นโค้ง (พหุนามกำลังสอง)φ φ φ * φ = { , }ϕϕ^ϕϕ={m,c}

e ME[|yM(ϕ^)|]eM as nโดยที่เป็นข้อผิดพลาดแบบพอดีขอบเขตการถดถอยeM

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


0

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

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

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

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

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