SVM การ overfitting คำสาปของมิติ


37

ชุดข้อมูลของฉันมีขนาดเล็ก (120 ตัวอย่าง) แต่จำนวนของคุณสมบัติมีขนาดใหญ่แตกต่างกันไปจาก (1,000-200,000) แม้ว่าฉันจะเลือกคุณสมบัติเพื่อเลือกชุดย่อยของคุณสมบัติ

คำถามแรกของฉันคืออะไร SVM จัดการกับการล้นได้อย่างไรถ้าทั้งหมด

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

นอกจากนี้หากผลการทดลองไม่แสดงว่าผลลัพธ์มีค่าต่ำ / ไม่มีการสะสมเกินก็จะไม่มีความหมาย มีวิธีวัดหรือไม่

คำตอบ:


41

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

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

GC Cawley และ NLC Talbot ป้องกันการปรับตัวเกินแบบในการเลือกรูปแบบผ่านการกำหนดค่าพารามิเตอร์ไฮเปอร์อย่างสม่ำเสมอ, วารสารการวิจัยการเรียนรู้ของเครื่องจักร, เล่ม 8, หน้า 841-861, เมษายน 2550 ( www )

และ

GC Cawley และ NLC Talbot, การเลือกรุ่นที่มากเกินไปและความลำเอียงในการเลือกการประเมินผลการปฏิบัติงาน, วารสารการวิจัยการเรียนรู้ของเครื่องจักร, การวิจัย 2010, บทที่ 11, pp. 2079-2107, กรกฎาคม 2010 ( www )

เอกสารทั้งสองนี้ใช้การถดถอยของเคอร์เนลมากกว่า SVM แต่ปัญหาเดียวกันนั้นเกิดขึ้นอย่างง่ายดายด้วย SVM (ขอบเขตที่คล้ายกันนี้นำไปใช้กับ KRR ดังนั้นจึงไม่มีทางเลือกมากนักในการฝึกปฏิบัติ) ดังนั้นในทางที่ SVM ไม่ได้แก้ปัญหาของการกระชับเกินจริงพวกเขาเพียงแค่เปลี่ยนปัญหาจากการปรับให้เข้ากับการเลือกแบบจำลอง

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

ในระยะสั้นไม่มีปัญหาที่เกิดจากการใช้ SVM (หรือรุ่น regularized อื่น ๆ เช่นการถดถอยสัน LARS, เชือก, ยืดหยุ่นสุทธิ ฯลฯ ) ในการแก้ปัญหาที่มี 120 ข้อสังเกตและหลายพันของคุณลักษณะที่มีให้พารามิเตอร์กูจะถูกปรับอย่างถูกต้อง


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

1
ไม่ใช่ที่ฉันรู้ประเด็นก็คือ SVM มีผลลัพธ์ทางทฤษฎีบางอย่างที่ชี้ให้เห็นว่าพวกเขามีความทนทานต่อการปรับตัวมากเกินไปเนื่องจากจำนวนของคุณลักษณะ แต่วิธีการเลือกคุณลักษณะไม่ได้มี FWIW, เอกสารโดยมิลเลอร์เกี่ยวกับ "การเลือกชุดย่อยในการถดถอย" แนะนำให้ใช้วิธีการทำให้เป็นมาตรฐานหากประสิทธิภาพการทำนายเป็นสิ่งที่จำเป็น มีความท้าทายแบบเปิดในการเลือกคุณสมบัติซึ่งแนะนำว่าการทำให้เป็นปกติมีแนวโน้มที่จะเลือกคุณสมบัติได้ดีกว่า (ดูnipsfsc.ecs.soton.ac.ukและcausality.inf.ethz.ch/challenge.php )
Dikran Marsupial

ตามที่ระบุไว้ในย่อหน้าแรกSVM มักจะทนต่อการปรับตัวมากเกินไปหรือไม่นั้นใช้การทำให้เป็นมาตรฐาน (พารามิเตอร์ C)ดังนั้นโดยปกติแล้วsvmพารามิเตอร์การทำให้เป็นมาตรฐานนี้Cหรือไม่? และฉันไม่แน่ใจว่าตัวแปรใดที่ควบคุมโดยCนี้คุณหมายถึงตัวแปรหย่อนเหล่านั้นหรือไม่
อะโวคาโด

10

ฉันจะเริ่มต้นด้วยคำถามที่สองและคำถามสุดท้าย

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

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

kδk+ϵk+ϵ

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


7

มีแหล่งที่มาอย่างมากอย่างน้อยสองแหล่งที่มาของการ overfitting ที่คุณอาจต้องการพิจารณา

  1. overfitting จากอัลกอริทึมซึ่งอนุมานมากเกินไปจากตัวอย่างการฝึกอบรมที่มีอยู่ นี่คือการป้องกันที่ดีที่สุดจากสังเกตุโดยใช้การวัดความสามารถในการวางนัยทั่วไปของโมเดล การตรวจสอบไขว้เป็นวิธีหนึ่งที่เป็นที่นิยม

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

ด้วย 120 ตัวอย่างและคุณสมบัติจำนวนมากคุณมีแนวโน้มที่จะผิดพลาด 2 และอาจเป็น 1

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


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

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

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

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