สามารถรองรับเครื่องเวกเตอร์ในข้อมูลขนาดใหญ่ได้หรือไม่?


13

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

ผมเข้าใจเหตุผลหนึ่งคือ Kernel Matrix เป็นn × nเมทริกซ์ที่nคือจำนวนของอินสแตนซ์ในข้อมูล ถ้าเรามีการพูด, 100K ข้อมูลเคอร์เนลเมทริกซ์Kจะมี10 10องค์ประกอบและอาจต้องใช้เวลาความทรงจำที่ ~ 80GKn×nnK1010

มีการดัดแปลง SVM ที่สามารถใช้กับข้อมูลขนาดใหญ่ได้หรือไม่? (พูดในระดับคะแนนข้อมูล 100K ถึง 1M ใช่ไหม)


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

คุณใช้ SVM เพื่อทำอะไร คุณสามารถใช้วิธีอื่นได้หรือไม่?
ทอม

คำตอบ:


12

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

KผมJxผมxJKผมJ=Φ(xผม)Φ(xJ)Φมีการกำหนดโดยนัยโดยฟังก์ชันเคอร์เนลและ kernelized SVMs ไม่คำนวณการแสดงพื้นที่ของคุณสมบัติอย่างชัดเจน สิ่งนี้มีประสิทธิภาพในการคำนวณสำหรับชุดข้อมูลขนาดเล็กถึงขนาดกลางเนื่องจากพื้นที่ของฟีเจอร์สามารถเป็นมิติที่สูงมากหรือแม้แต่มิติที่ไม่มีที่สิ้นสุด แต่ดังที่กล่าวมาสิ่งนี้เป็นไปไม่ได้สำหรับชุดข้อมูลขนาดใหญ่ แต่เราสามารถแมปข้อมูลที่ไม่ใช่เชิงเส้นอย่างชัดเจนในพื้นที่ของคุณลักษณะจากนั้นจึงฝึกอบรม SVM เชิงเส้นอย่างมีประสิทธิภาพบนการแสดงพื้นที่ของคุณลักษณะ การแมปพื้นที่ของคุณลักษณะสามารถสร้างขึ้นเพื่อประมาณฟังก์ชั่นเคอร์เนลที่กำหนด แต่ใช้มิติน้อยกว่าการแมปพื้นที่ของคุณสมบัติ 'เต็ม' สำหรับชุดข้อมูลขนาดใหญ่สิ่งนี้สามารถให้การแทนพื้นที่คุณลักษณะที่หลากหลายกับเราได้ แต่มีมิติข้อมูลน้อยกว่าจุดข้อมูล

วิธีการหนึ่งในการประมาณเคอร์เนลใช้การประมาณNyström (Williams and Seeger 2001) นี่เป็นวิธีประมาณค่าลักษณะเฉพาะ / eigenvector ของเมทริกซ์ขนาดใหญ่โดยใช้ submatrix ที่มีขนาดเล็กลง อีกวิธีใช้คุณสมบัติแบบสุ่มและบางครั้งเรียกว่า 'sink ครัวแบบสุ่ม' (Rahimi and Recht 2007)

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

อ้างอิง

วิลเลียมส์และซีเกอร์ (2001) การใช้เมธอด Nystroem เพื่อเร่งเครื่องเคอร์เนล

Rahimi และ Recht (2007) คุณสมบัติแบบสุ่มสำหรับเครื่องเคอร์เนลขนาดใหญ่

น้อน (2009) เครื่องเวกเตอร์รองรับขนาดใหญ่: อัลกอริทึมและทฤษฎี

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