สนับสนุน Vector Machine (SVM) ในการเรียนรู้ของเครื่อง

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

Support Vector Machine (SVM) คืออะไร?

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

SVM ทำงานอย่างไร

พิจารณาปัญหาการจำแนกประเภทอย่างง่ายที่เรามีข้อมูลที่มีคุณลักษณะสองอย่าง คือ x และ y และหนึ่งผลลัพธ์ ซึ่งเป็นการจำแนกประเภทที่มีสีแดงหรือสีน้ำเงิน เราสามารถพล็อตชุดข้อมูลจินตภาพที่มีลักษณะดังนี้:

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

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

แต่เราหมายถึงอะไรโดยขอบเขตการตัดสินใจที่ดีที่สุด?

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

ดังนั้น การฝึกเครื่องเวกเตอร์สนับสนุนจึงเกี่ยวข้องกับการพยายามค้นหาเส้นที่เพิ่มระยะขอบระหว่างเวกเตอร์สนับสนุนให้สูงสุด

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

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

ข้อมูลที่แยกจากกันไม่เป็นเชิงเส้น

ตัวอย่างข้างต้นถือเป็นข้อมูลง่ายๆ ที่เมื่อลงจุดแล้ว สามารถแยกออกจากกันได้ด้วยขอบเขตการตัดสินใจเชิงเส้น พิจารณากรณีอื่นที่มีการลงจุดข้อมูลดังนี้:

ในกรณีนี้ การแยกข้อมูลโดยใช้เส้นเป็นไปไม่ได้ แต่เราอาจสร้างคุณสมบัติอื่น z. และคุณสมบัตินี้อาจถูกกำหนดโดยสมการ: z = x^2 + y^2 เราสามารถเพิ่ม z เป็นแกนที่สามในระนาบเพื่อให้เป็นสามมิติ

เมื่อเราดูพล็อต 3 มิติจากมุมที่แกน x เป็นแนวนอนในขณะที่แกน z เป็นแนวตั้ง นี่คือมุมมองที่เราได้บางอย่างที่มีลักษณะดังนี้:

ค่า z แสดงถึงระยะทางจากจุดกำเนิดเมื่อเทียบกับจุดอื่นๆ ในระนาบ XY แบบเก่า เป็นผลให้จุดสีน้ำเงินใกล้กับจุดกำเนิดมีค่า z ต่ำ

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

  8 ผู้ทดสอบหัวเรื่องอีเมลที่ดีที่สุดที่จะใช้ก่อนที่คุณจะส่งจดหมายข่าว

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

เพื่อให้การแมปคุณลักษณะเหล่านี้มีประสิทธิภาพมากขึ้น SVM ใช้เคล็ดลับเคอร์เนล

SVM ในการเรียนรู้ของเครื่อง

Support Vector Machine เป็นหนึ่งในอัลกอริทึมจำนวนมากที่ใช้ในการเรียนรู้ของเครื่องควบคู่ไปกับอัลกอริทึมยอดนิยมอย่าง Decision Trees และ Neural Networks เป็นที่ชื่นชอบเพราะทำงานได้ดีกับข้อมูลน้อยกว่าอัลกอริทึมอื่น ๆ นิยมใช้ทำดังนี้

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

ปัญหาการจำแนกข้อความ

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

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

SVM ทำงานอย่างไรกับการจำแนกประเภทภาษาธรรมชาติ

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

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

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

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

การสร้าง SVM ใน Python

ในการสร้าง support vector machine (SVM) ใน Python คุณสามารถใช้คลาส SVC จากไลบรารี sklearn.svm นี่คือตัวอย่างของวิธีใช้คลาส SVC เพื่อสร้างโมเดล SVM ใน Python:

from sklearn.svm import SVC 

# Load the dataset 
X = ... y = ... 

# Split the data into training and test sets 

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=19) 

# Create an SVM model 
model = SVC(kernel="linear") 

# Train the model on the training data 
model.fit(X_train, y_train) 

# Evaluate the model on the test data 
accuracy = model.score(X_test, y_test) 

print("Accuracy: ", accuracy) 

ในตัวอย่างนี้ เรานำเข้าคลาส SVC จากไลบรารี sklearn.svm ก่อน จากนั้น เราจะโหลดชุดข้อมูลและแบ่งออกเป็นชุดการฝึกและชุดทดสอบ

  เคล็ดลับที่มีประโยชน์ในการสร้างวิดีโอที่น่าสนใจและวัดความสำเร็จของพวกเขา

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

คุณยังสามารถระบุพารามิเตอร์อื่นๆ สำหรับอ็อบเจ็กต์ SVC เช่น พารามิเตอร์ C ซึ่งควบคุมความแรงของการทำให้เป็นมาตรฐาน และพารามิเตอร์แกมมา ซึ่งควบคุมค่าสัมประสิทธิ์เคอร์เนลสำหรับเคอร์เนลบางตัว

ประโยชน์ของ SVM

นี่คือรายการประโยชน์ของการใช้เครื่องเวกเตอร์สนับสนุน (SVMs):

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

ตอนนี้ เรามาสำรวจแหล่งข้อมูลที่ดีที่สุดในการเรียนรู้ Support Vector Machine (SVM)

แหล่งเรียนรู้

ความรู้เบื้องต้นเกี่ยวกับการสนับสนุน Vector Machines

หนังสือเกี่ยวกับ Introduction to Support Vector Machines เล่มนี้จะแนะนำวิธีการเรียนรู้แบบใช้เคอร์เนลอย่างค่อยเป็นค่อยไป

ช่วยให้คุณมีรากฐานที่มั่นคงเกี่ยวกับทฤษฎี Support Vector Machines

รองรับแอพพลิเคชั่น Vector Machines

แม้ว่าหนังสือเล่มแรกจะมุ่งเน้นไปที่ทฤษฎีของ Support Vector Machines แต่หนังสือเล่มนี้เกี่ยวกับ Support Vector Machines Applications จะมุ่งเน้นไปที่การใช้งานจริง

โดยจะดูว่า SVM ใช้ในการประมวลผลภาพ การตรวจจับรูปแบบ และการมองเห็นของคอมพิวเตอร์อย่างไร

สนับสนุน Vector Machines (วิทยาการข้อมูลและสถิติ)

วัตถุประสงค์ของหนังสือเล่มนี้เกี่ยวกับ Support Vector Machines (สารสนเทศศาสตร์และสถิติ) คือการให้ภาพรวมของหลักการที่อยู่เบื้องหลังประสิทธิภาพของ Support Vector Machines (SVM) ในการใช้งานต่างๆ

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

เรียนรู้กับเมล็ดพืช

“การเรียนรู้ด้วยเคอร์เนล” เป็นหนังสือที่แนะนำผู้อ่านเกี่ยวกับการสนับสนุนเครื่องเวคเตอร์ (SVM) และเทคนิคเคอร์เนลที่เกี่ยวข้อง

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

สนับสนุน Vector Machines ด้วย Sci-kit Learn

หลักสูตร Support Vector Machines พร้อม Sci-kit Learn ออนไลน์นี้โดยเครือข่ายโครงการ Coursera สอนวิธีใช้โมเดล SVM โดยใช้ไลบรารีการเรียนรู้ของเครื่องยอดนิยม Sci-Kit Learn

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

  แก้ไขข้อผิดพลาดการดาวน์โหลดต้องห้ามของ Google ไดรฟ์

รองรับ Vector Machines ใน Python: แนวคิดและรหัส

หลักสูตรออนไลน์แบบชำระเงินเกี่ยวกับ Support Vector Machines ใน Python โดย Udemy มีการสอนผ่านวิดีโอนานถึง 6 ชั่วโมงและมาพร้อมกับใบรับรอง

ครอบคลุม SVM และวิธีการนำไปใช้อย่างมั่นคงใน Python นอกจากนี้ยังครอบคลุมการใช้งานทางธุรกิจของ Support Vector Machines

การเรียนรู้ของเครื่องและ AI: รองรับ Vector Machines ใน Python

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

คุณจะใช้ภาษาการเขียนโปรแกรม Python เพื่อใช้งานโมเดล ML สำหรับแอปพลิเคชันเหล่านี้

คำสุดท้าย

ในบทความนี้ เราได้เรียนรู้สั้น ๆ เกี่ยวกับทฤษฎีเบื้องหลัง Support Vector Machines เราได้เรียนรู้เกี่ยวกับการประยุกต์ใช้ใน Machine Learning และ Natural Langauge Processing

เรายังเห็นว่าการใช้งานโดยใช้ scikit-learn มีลักษณะอย่างไร นอกจากนี้ เรายังพูดถึงการใช้งานจริงและประโยชน์ของ Support Vector Machines

แม้ว่าบทความนี้จะเป็นเพียงบทนำ แต่แหล่งข้อมูลเพิ่มเติมแนะนำให้ลงรายละเอียดเพิ่มเติม โดยอธิบายเพิ่มเติมเกี่ยวกับ Support Vector Machines ด้วยความอเนกประสงค์และมีประสิทธิภาพ SVM จึงคุ้มค่าที่จะทำความเข้าใจเพื่อเติบโตในฐานะนักวิทยาศาสตร์ข้อมูลและวิศวกร ML

จากนั้น คุณสามารถดูโมเดลแมชชีนเลิร์นนิงยอดนิยม

เรื่องล่าสุด

x