Vector Machine สนับสนุนยังถือว่าเป็น“ ทันสมัย” ในช่องของพวกเขาหรือไม่


58

คำถามนี้เป็นการตอบกลับความคิดเห็นที่ฉันเห็นในคำถามอื่น

ความคิดเห็นเกี่ยวกับหลักสูตรการเรียนรู้ของเครื่องเรียนรู้บน Coursera และตามแนวของ "SVMs ไม่ได้ใช้งานมากในปัจจุบัน"

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

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

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

และวิกิพีเดียมีนี้: http://en.wikipedia.org/wiki/Support_vector_machine#Issues . . จุดยึดหลักดูเหมือนจะยากต่อการตีความตัวแบบ ซึ่งทำให้ SVM ดีสำหรับเครื่องยนต์ทำนายกล่องดำ แต่ไม่ดีสำหรับการสร้างข้อมูลเชิงลึก ฉันไม่เห็นว่าเป็นปัญหาที่สำคัญเพียงอีกสิ่งเล็กน้อยที่ต้องคำนึงถึงเมื่อเลือกเครื่องมือที่เหมาะสมสำหรับงาน (รวมถึงลักษณะของข้อมูลการฝึกอบรมและงานการเรียนรู้ ฯลฯ )


1
ดูเพิ่มเติมstats.stackexchange.com/questions/tagged/svm
StasK

6
ฉันไม่เข้าใจ - ไม่ใช่คำถามที่ควรโพสต์ใน CrossValidated หรือไม่ ฉันยังคงสับสนเกี่ยวกับสิ่งที่เกิดขึ้นระหว่าง DataScience และ CrossValidated
fnl

@fnl: svms มีการแข่งขันในฐานะตัวแยกประเภทจากโซลูชันทางวิศวกรรม "บริสุทธิ์" ที่น้อยลงดังนั้นฉันคิดว่า DataScience อยู่ในตำแหน่งที่ดีกว่าเพื่อทำการเปรียบเทียบที่นี่ แม้ว่าฉันจะแบ่งปันความสับสนของคุณ!
Neil Slater

คำตอบ:


46

SVM เป็นลักษณนามที่ทรงพลัง มันมีข้อดีที่ดี (ซึ่งฉันคิดว่ามันต้องรับผิดชอบต่อความนิยม) ... เหล่านี้คือ:

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

มีข้อเสียที่สำคัญเช่นกัน

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

SVM โดยทั่วไปเป็นสมาชิกของคลาส "Sparse Kernel Machines" เวกเตอร์หร็อมแหร็มในกรณีของ SVM คือเวกเตอร์สนับสนุนที่เลือกจากเกณฑ์ระยะขอบสูงสุด เครื่องเวคเตอร์แบบกระจัดกระจายอื่น ๆ เช่นRelated Vector Machine (RVM) ทำงานได้ดีกว่า SVM รูปต่อไปนี้แสดงให้เห็นถึงประสิทธิภาพการเปรียบเทียบของทั้งสอง ในรูปแกน x แสดงข้อมูลมิติเดียวจากสองคลาส y = {0,1} รูปแบบการผสมถูกกำหนดเป็น P (x | y = 0) = Unif (0,1) และ P (x | y = 1) = Unif (.5,1.5) (Unif หมายถึงการกระจายแบบสม่ำเสมอ) มีการสุ่มตัวอย่าง 1,000 คะแนนจากส่วนผสมนี้และ SVM และ RVM ถูกใช้เพื่อประเมินหลัง ปัญหาของ SVM คือค่าที่ทำนายนั้นอยู่ไกลจากอัตราต่อรองที่แท้จริง

RVM กับ SVM

ลักษณนามที่มีประสิทธิภาพมากซึ่งเป็นที่นิยมอย่างมากในปัจจุบันเป็นป่าสุ่ม ข้อดีหลักคือ:

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

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

2
ใช่วิธีการคอนเวอร์เจนซ์มาตรฐานใช้เวลา O (n ^ 3) ... แต่ฉันคิดว่าฉันเคยเห็นที่ไหนสักแห่ง (อาจมาจากหน้าแรกของ T. Joachims) ว่ามันถูกลดเป็น O (n ^ 2)
Debasis

4
@indico สำหรับปัญหาที่เกิดขึ้นจริงในทางปฏิบัติส่วนใหญ่ความซับซ้อนของการฝึกอบรม SVM ใกล้เคียงกับกำลังสอง ลูกบาศก์ SMO ของ Platt ใช้งานมาระยะหนึ่งแล้ว ยังคงสูงเกินไปสำหรับชุดข้อมูลขนาดใหญ่อย่างแท้จริง แต่ก็ไม่เลวร้ายอย่างที่คุณวาดไว้ Linear SVM มีประสิทธิภาพสูงพร้อมความซับซ้อนเชิงเส้นย่อย
Marc Claesen

ข้อดีอื่น ๆ ของ SVM: 1) ผลงานภายในของพวกเขาสามารถจินตนาการได้โดยผู้คนที่คุ้นเคยกับการวิเคราะห์ข้อมูลน้อยกว่า [และในระดับที่น้อยกว่า: 2) หากต้องการการตอบกลับแบบเรียลไทม์โดยผู้เชี่ยวชาญ (ไม่ใช่วิทยาศาสตร์ข้อมูล) SVM เชิงเส้นจะเป็นตัวเลือกที่เร็วขึ้น - ส่งผลให้มีการฝึกอบรมที่ดีขึ้นโดยผู้เชี่ยวชาญ]
tsttst

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

8

ในการตอบคำถามนี้สิ่งสำคัญข้อหนึ่งที่เราต้องทำคือว่าเรากำลังพูดถึงเครื่องเวกเตอร์สนับสนุนเชิงเส้นหรือไม่ใช่เชิงเส้นนั่นคือเคอร์เนลเครื่องเวกเตอร์สนับสนุน

SVM เชิงเส้น

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

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

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

SVM ที่ไม่ใช่เชิงเส้น

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

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

น่าเสียดายที่ SVM ไม่ใช่เชิงเส้นช้า อัลกอริทึม state-of-the-art คือSequential Minimal Optimizationซึ่งจะแสดงประสิทธิภาพการทำงานเป็นกำลังสองและถูกนำมาใช้อย่างกว้างขวางผ่านห้องสมุดLIBSVMในจำนวนของห้องสมุดการเรียนรู้ของเครื่องรวม scikit เรียนรู้

ความนิยมของวิธีการเหล่านี้

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

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

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