SVM, การโต้ตอบที่ผันแปรและข้อมูลการฝึกอบรมเหมาะสม


12

ฉันมีคำถามทั่วไป 2 ข้อขึ้นไป

1) ฉันอยากรู้ว่า SVM จัดการการโต้ตอบของตัวแปรอย่างไรเมื่อสร้างแบบจำลองการทำนาย เช่นถ้าฉันมีคุณสมบัติสองอย่างคือ f1 และ f2 และเป้าหมายนั้นขึ้นอยู่กับ f1, f2 และพูดว่า f1 * f2 (หรือฟังก์ชั่น h (f1, f2)), SVM จะพอดี (ไม่ใช่แค่ OOS แต่ยังอยู่ในข้อมูลการฝึกอบรม) ปรับปรุงเมื่อรวม f1, f2 และ h (f1, f2) ในคุณสมบัติมากกว่าเพียงแค่รวมถึง f1 และ f2? อัลกอริทึม SVM จัดการกับการโต้ตอบกับคุณลักษณะหรือไม่ ดูเหมือนว่าจะเป็นไปตามที่ SVM พยายามสร้างไฮเปอร์เพลนในพื้นที่มิติที่สูงขึ้น แต่ไม่แน่ใจว่าต้องการถามเช่นไร

2) เมื่อทำการติดตั้ง SVM บนข้อมูลการฝึกอบรมให้มีคุณสมบัติเพียงพอและค้นหาพารามิเตอร์ที่เหมาะสม (ผ่านการค้นหาแบบ brute force หรืออะไรก็ตาม) SVM จะพอดีกับข้อมูลการฝึกอบรมเล็กน้อยหรือไม่? ไม่แน่ใจว่าฉันพูดถูกหรือไม่ แต่โดยทั่วไปถ้ามีความแปรปรวน / เสียงรบกวนในฟีเจอร์ SVM จะพอดีกับข้อมูลการฝึกอบรม 100% หรือไม่? ในทางกลับกันหาก SVM ไม่ตรงกับข้อมูลการฝึกอบรม 100% นั่นหมายความว่ามีข้อมูลบางอย่าง (หรือคุณสมบัติอื่น ๆ ) ซึ่งส่งผลต่อตัวแปรเป้าหมายที่ไม่ได้บันทึกไว้ในข้อมูลหรือไม่?

ขอบคุณ

ความกระจ่างเล็กน้อย ฉันหมายถึงเคอร์เนล SVM โดยเฉพาะ

คำตอบ:


8

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

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

หากคุณคิดว่าคำที่ใช้ในการโต้ตอบนั้นมีความสำคัญคุณก็สามารถนำคำเหล่านั้นไปใช้ในพื้นที่คุณลักษณะของ SVM ได้โดยใช้เคอร์เนลซึ่ง จะให้พื้นที่คุณลักษณะซึ่งแต่ละแกนแสดงถึงชื่อโมโนของคำสั่งหรือน้อยกว่าพารามิเตอร์มีผลต่อการให้น้ำหนักแบบสัมพัทธ์ของชื่อคำสั่งต่างกัน ดังนั้น SVM ที่มีเคอร์เนลโพลิโนเมียลจึงเทียบเท่ากับแบบจำลองพหุนามในพื้นที่ของแอตทริบิวต์ซึ่งรวมเอาการโต้ตอบเหล่านั้นโดยปริยาย d cK(x,x)=(xx+c)ddc

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

โปรดทราบว่าเมล็ดบางส่วนทำให้เกิดมิติของพื้นที่ที่ไม่มีที่สิ้นสุดซึ่งการจำแนกประเภท "เล็กน้อย" นั้นรับประกันว่าจะเป็นไปได้สำหรับตัวอย่างการฝึกอบรมที่ จำกัด ใด ๆ ในตำแหน่งทั่วไป ตัวอย่างเช่นฟังก์ชันพื้นฐานของเรเดียนเคอร์เนลซึ่งพื้นที่คุณลักษณะเป็น orthant เชิงบวกของ hypersphere มิติที่ไม่มีที่สิ้นสุด เมล็ดดังกล่าวทำให้ SVM เป็นผู้ประเมินที่เป็นสากลซึ่งสามารถเป็นตัวแทนของขอบเขตการตัดสินใจใด ๆK(x,x)=expγxx2

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

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


ขอบคุณ Dikran นั่นเป็นรายละเอียดและเป็นประโยชน์อย่างมาก ฉันคิดว่าฉันเข้าใจคำตอบของคำถาม ติดตามอย่างรวดเร็วหนึ่งครั้ง เราจะเลือกเคอร์เนลที่เหมาะสมสำหรับ SVM อย่างไร มันจะคล้ายกับพารามิเตอร์ regularization / kernel (เช่นผ่านการตรวจสอบข้าม)? หรือมีพื้นฐานทางทฤษฎีสำหรับการเลือกหรือไม่ หากเคอร์เนล rbf ทำให้ SVM เป็นตัวประมาณแบบสากลฉันจะเดาว่าการเลือกเคอร์เนลเป็นพารามิเตอร์อื่นในการปรับแต่ง แต่ไม่แน่ใจ อย่างที่คุณสามารถบอกได้ฉันค่อนข้างใหม่กับสิ่งนี้
มัส

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

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

1

คำตอบขึ้นอยู่กับว่าคุณกำลังใช้ SVM เชิงเส้นหรือเคอร์เนล SVM ด้วย SVM เชิงเส้นคุณจะใช้คุณสมบัติที่คุณให้ไว้เท่านั้นและไม่ได้คำนึงถึงการโต้ตอบทางบัญชี ด้วย Kernel SVM โดยทั่วไปคุณใช้คุณสมบัติที่แตกต่างกันมากขึ้นอยู่กับเคอร์เนลที่คุณเลือก หากมีการแยกไฮเปอร์เพลนเช่นถ้ากำหนดระดับที่เป็นคุณสมบัติจากนั้นคุณสามารถมีข้อมูลการฝึกอบรมที่สมบูรณ์ โดยปกติแล้วคุณไม่ได้ระบุคุณสมบัติ แต่ให้เคอร์เนลที่เกี่ยวข้องกับคุณสมบัติที่เป็น(x_2) ค้นหาการทำซ้ำพื้นที่ Kernel Hilbertsign(i=1Kβi(x)β0)βi,i{1,2,...K}KK(x1,x2)=i=1Kβi(x1)βi(x2)

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