- คำศัพท์ (A ถึง D)
- การควบคุมความสามารถของ AI
- AIOps
- อัลบั้ม
- ประสิทธิภาพของสินทรัพย์
- ตัวเข้ารหัสอัตโนมัติ
- การขยายพันธุ์หลัง
- ทฤษฎีบทเบย์
- ข้อมูลขนาดใหญ่
- Chatbot: คู่มือสำหรับผู้เริ่มต้น
- การคิดเชิงคำนวณ
- วิสัยทัศน์คอมพิวเตอร์
- เมทริกซ์ความสับสน
- เครือข่ายประสาทเทียม
- cybersecurity
- ผ้าข้อมูล
- การเล่าเรื่องข้อมูล
- ข้อมูลวิทยาศาสตร์
- คลังข้อมูล
- ต้นไม้ตัดสินใจ
- Deepfakes
- การเรียนรู้ลึก ๆ
- การเรียนรู้การเสริมแรงเชิงลึก
- devops
- DevSecOps
- แบบจำลองการแพร่กระจาย
- ดิจิตอลแฝด
- การลดขนาด
- คำศัพท์ (E ถึง K)
- เอดจ์ไอ
- อารมณ์ AI
- การเรียนรู้ทั้งมวล
- การแฮ็กอย่างมีจริยธรรม
- ETL
- AI ที่อธิบายได้
- สหพันธ์การเรียนรู้
- ฟินอ๊อฟ
- กำเนิด AI
- เครือข่ายผู้ให้กำเนิด
- กำเนิดเทียบกับการเลือกปฏิบัติ
- ไล่โทนสี
- โคตรไล่ระดับ
- การเรียนรู้ไม่กี่ช็อต
- การจำแนกรูปภาพ
- การดำเนินงานด้านไอที (ITOps)
- ระบบอัตโนมัติของเหตุการณ์
- วิศวกรรมอิทธิพล
- K-หมายถึงการจัดกลุ่ม
- K-เพื่อนบ้านที่ใกล้ที่สุด
- คำศัพท์ (L ถึง Q)
- คำศัพท์ (R ถึง Z)
- การเรียนรู้เสริมแรง
- AI ที่มีความรับผิดชอบ
- อาร์แอลเอชเอฟ
- ระบบอัตโนมัติของกระบวนการหุ่นยนต์
- มีโครงสร้าง vs ไม่มีโครงสร้าง
- การวิเคราะห์ความเชื่อมั่น
- อยู่ภายใต้การดูแล vs ไม่ได้รับการดูแล
- สนับสนุนเครื่องเวกเตอร์
- ข้อมูลสังเคราะห์
- สื่อสังเคราะห์
- การจัดประเภทข้อความ
- TinyML
- ถ่ายทอดการเรียนรู้
- เครือข่ายประสาทหม้อแปลง
- การทดสอบของทัวริง
- การค้นหาความคล้ายคลึงกันของเวกเตอร์
AI 101
Support Vector Machines คืออะไร?
สารบัญ
Support Vector Machines คืออะไร?
เครื่องเวกเตอร์ที่รองรับคือเครื่องแยกประเภทการเรียนรู้ของเครื่อง ซึ่งถือเป็นประเภทเครื่องแยกประเภทที่ได้รับความนิยมมากที่สุดประเภทหนึ่ง เครื่องเวกเตอร์ที่รองรับมีประโยชน์อย่างยิ่งสำหรับการทำนายเชิงตัวเลข การจัดหมวดหมู่ และการจดจำรูปแบบ
เครื่องเวกเตอร์สนับสนุนทำงานโดยการวาดขอบเขตการตัดสินใจระหว่างจุดข้อมูล โดยมุ่งเป้าไปที่ขอบเขตการตัดสินใจที่ดีที่สุดเพื่อแยกจุดข้อมูลออกเป็นคลาส เป้าหมายเมื่อใช้เครื่องเวกเตอร์สนับสนุนคือให้ขอบเขตการตัดสินใจระหว่างจุดต่างๆ มีขนาดใหญ่ที่สุดเท่าที่จะเป็นไปได้ เพื่อให้ระยะห่างระหว่างจุดข้อมูลใดๆ กับเส้นขอบเขตขยายใหญ่สุด นั่นเป็นคำอธิบายอย่างรวดเร็วว่า รองรับเครื่องเวกเตอร์ (SVM) แต่ขอใช้เวลาสักพักเพื่อเจาะลึกลงไปว่า SVM ทำงานอย่างไรและเข้าใจตรรกะเบื้องหลังการดำเนินการของพวกเขา
เป้าหมายของการสนับสนุนเครื่องเวกเตอร์
ลองนึกภาพกราฟที่มีจุดข้อมูลจำนวนหนึ่งตามคุณลักษณะที่ระบุโดยแกน X และ Y จุดข้อมูลบนกราฟสามารถแบ่งได้อย่างหลวมๆ ออกเป็นสองกลุ่มที่แตกต่างกัน และกลุ่มที่เป็นจุดข้อมูลนั้นบ่งชี้ถึงคลาสของจุดข้อมูลนั้น ตอนนี้สมมติว่าเราต้องการวาดเส้นกราฟที่แยกสองคลาสออกจากกัน โดยจุดข้อมูลทั้งหมดในคลาสหนึ่งจะอยู่ด้านหนึ่งของเส้น และจุดข้อมูลทั้งหมดที่เป็นของอีกคลาสหนึ่งจะอยู่อีกฝั่งหนึ่ง ของเส้น เส้นแบ่งนี้เรียกว่าไฮเปอร์เพลน
คุณสามารถนึกถึงเครื่องสนับสนุนเวกเตอร์เหมือนกับการสร้าง "ถนน" ทั่วทั้งเมือง โดยแยกเมืองออกเป็นเขตที่ด้านใดด้านหนึ่งของถนน อาคารทั้งหมด (จุดข้อมูล) ที่พบในด้านหนึ่งของถนนเป็นของเขตหนึ่ง
เป้าหมายของเครื่องเวกเตอร์สนับสนุนไม่ใช่แค่การวาดไฮเปอร์เพลนและแบ่งจุดข้อมูลเท่านั้น แต่ยังเพื่อวาดไฮเปอร์เพลนจุดข้อมูลที่แยกจากกันโดยมีระยะขอบที่ใหญ่ที่สุด หรือมีช่องว่างมากที่สุดระหว่างเส้นแบ่งและจุดข้อมูลใดก็ตาม กลับมาที่คำเปรียบเปรย “ถนน” หากนักวางผังเมืองวาดแผนสำหรับทางด่วน พวกเขาไม่ต้องการให้ทางด่วนอยู่ใกล้บ้านหรืออาคารอื่นมากเกินไป ยิ่งมีระยะห่างระหว่างทางด่วนกับอาคารทั้งสองด้านมากเท่าไรก็ยิ่งดีเท่านั้น ยิ่งระยะขอบนี้มากเท่าใด ตัวจำแนกประเภทก็จะยิ่ง "มั่นใจ" มากขึ้นเท่านั้นเกี่ยวกับการคาดการณ์ ในกรณีของการจำแนกประเภทไบนารี การวาดไฮเปอร์เพลนที่ถูกต้องหมายถึงการเลือกไฮเปอร์เพลนที่อยู่ตรงกลางของคลาสที่แตกต่างกันสองคลาส หากขอบเขตการตัดสินใจ/ไฮเปอร์เพลนอยู่ไกลจากคลาสหนึ่ง ก็จะยิ่งเข้าใกล้อีกคลาสหนึ่งมากขึ้น ดังนั้นไฮเปอร์เพลนจึงต้องสร้างความสมดุลระหว่างระยะขอบระหว่างสองคลาสที่แตกต่างกัน
การคำนวณไฮเปอร์เพลนแยก
แล้วเครื่องเวกเตอร์สนับสนุนจะกำหนดไฮเปอร์เพลน/ขอบเขตการตัดสินใจที่ดีที่สุดได้อย่างไร สิ่งนี้ทำได้โดยการคำนวณไฮเปอร์เพลนที่เป็นไปได้โดยใช้สูตรทางคณิตศาสตร์ เราจะไม่กล่าวถึงสูตรสำหรับการคำนวณไฮเปอร์เพลน ในรายละเอียดมากแต่เส้นคำนวณด้วยสูตรความชัน/เส้นที่โด่งดัง:
Y = ขวาน + b
ในขณะเดียวกัน เส้นถูกสร้างขึ้นจากจุด ซึ่งหมายความว่าไฮเปอร์เพลนใดๆ สามารถอธิบายได้ดังนี้: ชุดของจุดที่วิ่งขนานกับไฮเปอร์เพลนที่เสนอ ตามที่กำหนดโดยน้ำหนักของแบบจำลองคูณกับชุดของคุณสมบัติที่แก้ไขโดยออฟเซ็ต/อคติที่ระบุ (“ง”).
SVM วาดไฮเปอร์เพลนจำนวนมาก ตัวอย่างเช่น เส้นแบ่งเขตแดนคือไฮเปอร์เพลนหนึ่ง แต่ดาต้าพอยต์ที่ตัวแยกประเภทพิจารณาก็อยู่บนไฮเปอร์เพลนเช่นกัน ค่าสำหรับ x จะพิจารณาจากคุณสมบัติในชุดข้อมูล ตัวอย่างเช่น หากคุณมีชุดข้อมูลที่มีส่วนสูงและน้ำหนักของคนจำนวนมาก คุณลักษณะ "ส่วนสูง" และ "น้ำหนัก" จะเป็นคุณลักษณะที่ใช้ในการคำนวณ "X" ระยะขอบระหว่างไฮเปอร์เพลนที่เสนอและ "เวกเตอร์สนับสนุน" (จุดข้อมูล) ต่างๆ ที่พบบนด้านใดด้านหนึ่งของไฮเปอร์เพลนหารจะคำนวณโดยใช้สูตรต่อไปนี้:
ว * X – ข
ในขณะที่คุณสามารถอ่านเพิ่มเติมเกี่ยวกับคณิตศาสตร์เบื้องหลัง SVM ได้ หากคุณกำลังมองหาความเข้าใจที่เข้าใจได้ง่ายยิ่งขึ้นเกี่ยวกับพวกเขา เพียงแค่รู้ว่าเป้าหมายคือการเพิ่มระยะห่างระหว่างไฮเปอร์เพลน/เส้นแบ่งเขตที่เสนอและไฮเปอร์เพลนอื่นๆ ที่ขนานไปกับมัน ( และจุดข้อมูลที่พบ)
การจำแนกประเภทหลายชั้น
กระบวนการที่อธิบายจนถึงตอนนี้ใช้กับงานการจำแนกประเภทไบนารี อย่างไรก็ตาม สามารถใช้ตัวแยกประเภท SVM สำหรับงานการจัดประเภทที่ไม่ใช่ไบนารีได้เช่นกัน เมื่อทำการจำแนกประเภท SVM ในชุดข้อมูลที่มีสามคลาสขึ้นไป จะใช้เส้นแบ่งขอบเขตมากขึ้น ตัวอย่างเช่น หากงานการจัดหมวดหมู่มีสามคลาสแทนที่จะเป็นสองคลาส เส้นแบ่งสองเส้นจะถูกใช้เพื่อแบ่งจุดข้อมูลออกเป็นคลาส และขอบเขตที่ประกอบด้วยคลาสเดียวจะอยู่ระหว่างเส้นแบ่งสองเส้นแทนที่จะเป็นหนึ่งเส้น แทนที่จะคำนวณระยะห่างระหว่างสองคลาสและขอบเขตการตัดสินใจ ตัวแยกประเภทต้องพิจารณาระยะขอบระหว่างขอบเขตการตัดสินใจและหลายคลาสภายในชุดข้อมูล
การแยกแบบไม่เชิงเส้น
กระบวนการที่อธิบายไว้ข้างต้นใช้กับกรณีที่ข้อมูลแยกจากกันได้แบบเชิงเส้น โปรดทราบว่าในความเป็นจริง ชุดข้อมูลแทบไม่เคยแยกเป็นเชิงเส้นได้อย่างสมบูรณ์ ซึ่งหมายความว่าเมื่อใช้ตัวแยกประเภท SVM คุณจะต้องใช้ สองเทคนิคที่แตกต่างกัน: เคล็ดลับซอฟต์มาร์จิ้นและเคอร์เนล พิจารณาสถานการณ์ที่จุดข้อมูลของคลาสต่างๆ รวมกัน โดยบางอินสแตนซ์เป็นของคลาสหนึ่งใน "คลัสเตอร์" ของอีกคลาสหนึ่ง คุณจะให้ตัวแยกประเภทจัดการกับอินสแตนซ์เหล่านี้ได้อย่างไร
กลวิธีหนึ่งที่สามารถใช้ในการจัดการชุดข้อมูลที่แยกจากกันแบบไม่เชิงเส้นได้คือการใช้ตัวแยกประเภท SVM แบบ “ระยะขอบอ่อน” ตัวแยกประเภทระยะขอบอ่อนทำงานโดยยอมรับจุดข้อมูลที่จัดประเภทผิดไม่กี่จุด จะพยายามลากเส้นที่ดีที่สุดเพื่อแยกกลุ่มของจุดข้อมูลออกจากกัน เนื่องจากมีอินสแตนซ์ส่วนใหญ่ที่เป็นของคลาสที่เกี่ยวข้อง ตัวแยกประเภท SVM แบบซอฟต์มาร์จิ้นพยายามสร้างเส้นแบ่งที่สมดุลระหว่างความต้องการสองอย่างของตัวแยกประเภท: ความแม่นยำและระยะขอบ จะพยายามลดการจัดประเภทผิดให้น้อยที่สุดในขณะที่เพิ่มระยะขอบให้สูงสุด
ค่าเผื่อข้อผิดพลาดของ SVM สามารถปรับได้ผ่านการจัดการไฮเปอร์พารามิเตอร์ที่เรียกว่า “C” ควบคุมค่า C จำนวนเวกเตอร์สนับสนุนที่ลักษณนามพิจารณาเมื่อวาดขอบเขตการตัดสินใจ ค่า C เป็นค่าปรับที่ใช้กับการจำแนกประเภทผิด หมายความว่ายิ่งค่า C มากเท่าใด เวกเตอร์สนับสนุนที่ตัวแยกประเภทจะพิจารณาก็จะยิ่งน้อยลงเท่านั้น และระยะขอบก็จะยิ่งแคบลง
Kernel Trick ดำเนินการโดยใช้การแปลงแบบไม่เชิงเส้นกับคุณสมบัติในชุดข้อมูล Kernel Trick ใช้คุณสมบัติที่มีอยู่ในชุดข้อมูลและสร้างคุณสมบัติใหม่ผ่านแอปพลิเคชันของฟังก์ชันทางคณิตศาสตร์ที่ไม่เชิงเส้น สิ่งที่เป็นผลมาจากการประยุกต์ใช้การแปลงแบบไม่เชิงเส้นเหล่านี้คือขอบเขตการตัดสินใจแบบไม่เชิงเส้น เนื่องจากตัวแยกประเภท SVM ไม่ได้ถูกจำกัดให้วาดขอบเขตการตัดสินใจเชิงเส้นอีกต่อไป จึงสามารถเริ่มวาดขอบเขตการตัดสินใจแบบโค้ง ซึ่งสรุปการกระจายที่แท้จริงของเวกเตอร์สนับสนุนได้ดีขึ้น และทำให้การจัดประเภทผิดให้เหลือน้อยที่สุด เคอร์เนลแบบไม่เชิงเส้น SVM ที่ได้รับความนิยมมากที่สุดสองรายการ ได้แก่ Radial Basis Function และ Polynomial ฟังก์ชันพหุนามสร้างการผสมพหุนามของคุณสมบัติที่มีอยู่ทั้งหมด ในขณะที่ฟังก์ชัน Radial Basis สร้างคุณสมบัติใหม่โดยการวัดระยะห่างระหว่างจุดศูนย์กลาง/จุดไปยังจุดอื่นๆ ทั้งหมด
บล็อกเกอร์และโปรแกรมเมอร์ที่มีความเชี่ยวชาญด้าน เครื่องเรียนรู้ และ การเรียนรู้ลึก ๆ หัวข้อ Daniel หวังว่าจะช่วยให้ผู้อื่นใช้พลังของ AI เพื่อประโยชน์ทางสังคม