ต้นขั้ว Support Vector Machines คืออะไร? - Unite.AI
เชื่อมต่อกับเรา
มาสเตอร์คลาส AI:

AI 101

Support Vector Machines คืออะไร?

mm
วันที่อัพเดท on

Support Vector Machines คืออะไร?

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

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

เป้าหมายของการสนับสนุนเครื่องเวกเตอร์

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

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

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

การคำนวณไฮเปอร์เพลนแยก

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

Y = ขวาน + b

ในขณะเดียวกัน เส้นถูกสร้างขึ้นจากจุด ซึ่งหมายความว่าไฮเปอร์เพลนใดๆ สามารถอธิบายได้ดังนี้: ชุดของจุดที่วิ่งขนานกับไฮเปอร์เพลนที่เสนอ ตามที่กำหนดโดยน้ำหนักของแบบจำลองคูณกับชุดของคุณสมบัติที่แก้ไขโดยออฟเซ็ต/อคติที่ระบุ (“ง”).

SVM วาดไฮเปอร์เพลนจำนวนมาก ตัวอย่างเช่น เส้นแบ่งเขตแดนคือไฮเปอร์เพลนหนึ่ง แต่ดาต้าพอยต์ที่ตัวแยกประเภทพิจารณาก็อยู่บนไฮเปอร์เพลนเช่นกัน ค่าสำหรับ x จะพิจารณาจากคุณสมบัติในชุดข้อมูล ตัวอย่างเช่น หากคุณมีชุดข้อมูลที่มีส่วนสูงและน้ำหนักของคนจำนวนมาก คุณลักษณะ "ส่วนสูง" และ "น้ำหนัก" จะเป็นคุณลักษณะที่ใช้ในการคำนวณ "X" ระยะขอบระหว่างไฮเปอร์เพลนที่เสนอและ "เวกเตอร์สนับสนุน" (จุดข้อมูล) ต่างๆ ที่พบบนด้านใดด้านหนึ่งของไฮเปอร์เพลนหารจะคำนวณโดยใช้สูตรต่อไปนี้:

ว * X – ข

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

รูปถ่าย: ZackWeinberg ผ่าน Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:Svm_separating_hyperplanes_(SVG).svg)

การจำแนกประเภทหลายชั้น

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

การแยกแบบไม่เชิงเส้น

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

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

ค่าเผื่อข้อผิดพลาดของ SVM สามารถปรับได้ผ่านการจัดการไฮเปอร์พารามิเตอร์ที่เรียกว่า “C” ควบคุมค่า C จำนวนเวกเตอร์สนับสนุนที่ลักษณนามพิจารณาเมื่อวาดขอบเขตการตัดสินใจ ค่า C เป็นค่าปรับที่ใช้กับการจำแนกประเภทผิด หมายความว่ายิ่งค่า C มากเท่าใด เวกเตอร์สนับสนุนที่ตัวแยกประเภทจะพิจารณาก็จะยิ่งน้อยลงเท่านั้น และระยะขอบก็จะยิ่งแคบลง

เคอร์เนลหลอกล่อข้อมูลและแปลงข้อมูลแบบไม่เชิงเส้น รูปภาพ: Shiyu Ju ผ่าน Wikmedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)

Kernel Trick ดำเนินการโดยใช้การแปลงแบบไม่เชิงเส้นกับคุณสมบัติในชุดข้อมูล Kernel Trick ใช้คุณสมบัติที่มีอยู่ในชุดข้อมูลและสร้างคุณสมบัติใหม่ผ่านแอปพลิเคชันของฟังก์ชันทางคณิตศาสตร์ที่ไม่เชิงเส้น สิ่งที่เป็นผลมาจากการประยุกต์ใช้การแปลงแบบไม่เชิงเส้นเหล่านี้คือขอบเขตการตัดสินใจแบบไม่เชิงเส้น เนื่องจากตัวแยกประเภท SVM ไม่ได้ถูกจำกัดให้วาดขอบเขตการตัดสินใจเชิงเส้นอีกต่อไป จึงสามารถเริ่มวาดขอบเขตการตัดสินใจแบบโค้ง ซึ่งสรุปการกระจายที่แท้จริงของเวกเตอร์สนับสนุนได้ดีขึ้น และทำให้การจัดประเภทผิดให้เหลือน้อยที่สุด เคอร์เนลแบบไม่เชิงเส้น SVM ที่ได้รับความนิยมมากที่สุดสองรายการ ได้แก่ Radial Basis Function และ Polynomial ฟังก์ชันพหุนามสร้างการผสมพหุนามของคุณสมบัติที่มีอยู่ทั้งหมด ในขณะที่ฟังก์ชัน Radial Basis สร้างคุณสมบัติใหม่โดยการวัดระยะห่างระหว่างจุดศูนย์กลาง/จุดไปยังจุดอื่นๆ ทั้งหมด

บล็อกเกอร์และโปรแกรมเมอร์ที่มีความเชี่ยวชาญด้าน เครื่องเรียนรู้ และ การเรียนรู้ลึก ๆ หัวข้อ Daniel หวังว่าจะช่วยให้ผู้อื่นใช้พลังของ AI เพื่อประโยชน์ทางสังคม