ความแตกต่างระหว่าง SVM และ perceptron


29

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

  1. Perceptron ไม่พยายามเพิ่มประสิทธิภาพการแยก "ระยะทาง" ตราบใดที่มันพบไฮเปอร์เพลนที่แยกทั้งสองเซตมันก็ดี SVM ในอีกทางหนึ่งพยายามที่จะเพิ่ม "เวกเตอร์สนับสนุน" ให้มากที่สุดนั่นคือระยะห่างระหว่างจุดตัวอย่างที่ตรงข้ามกันสองจุดที่ใกล้เคียงที่สุด

  2. SVM มักจะพยายามใช้ "ฟังก์ชั่นเคอร์เนล" เพื่อฉายจุดตัวอย่างไปยังพื้นที่มิติสูงเพื่อให้แยกได้เป็นเส้นตรงในขณะที่ Perceptron ถือว่าจุดตัวอย่างนั้นแยกออกจากกันเป็นเส้นตรง


สำเนาซ้ำที่เป็นไปได้ของการเปรียบเทียบ SVM และการถดถอยโลจิสติก
kjetil b halvorsen

คำตอบ:


18

มันฟังดูเหมาะสมสำหรับฉัน บางครั้งผู้คนก็ใช้คำว่า "Perceptron" เพื่ออ้างถึงอัลกอริทึมการฝึกอบรมพร้อมกับตัวจําแนก ตัวอย่างเช่นมีคนอธิบายเรื่องนี้ให้ฉันในคำตอบสำหรับคำถามนี้ นอกจากนี้ยังไม่มีอะไรจะหยุดคุณจากการใช้เคอร์เนลกับ perceptron และนี่มักจะเป็นลักษณนามที่ดีกว่า ดูที่นี่สำหรับบางสไลด์ (pdf) เกี่ยวกับวิธีการใช้เคอร์เนล perceptron

ความแตกต่างในทางปฏิบัติที่สำคัญระหว่าง (เคอร์เนล) perceptron และ SVM คือ perceptrons สามารถฝึกอบรมออนไลน์ได้ (เช่นน้ำหนักของพวกเขาสามารถอัปเดตได้เมื่อตัวอย่างใหม่มาถึงทีละครั้ง) ในขณะที่ SVM ไม่สามารถทำได้ ดูคำถามนี้สำหรับข้อมูลว่า SVM สามารถผ่านการฝึกอบรมออนไลน์ได้หรือไม่ ดังนั้นแม้ว่า SVM จะเป็นลักษณนามที่ดีกว่า แต่ perceptrons ยังมีประโยชน์เพราะราคาถูกและง่ายต่อการฝึกอบรมใหม่ในสถานการณ์ที่ข้อมูลการฝึกอบรมใหม่มาถึงอย่างต่อเนื่อง


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


4

SVM:

minw2+Ci=1n(1yi(wxi+w0))+
Perceptron
mini=1n(yi(wxi+w0))+

เราจะเห็นได้ว่า SVM เกือบจะเป็นเป้าหมายเดียวกับ perceptron ที่ทำให้เป็นมาตรฐาน L2

w2เราเห็นว่ามันเป็นเหตุผลสำคัญสำหรับการใช้การเขียนโปรแกรมสมการกำลังสองสำหรับการเพิ่มประสิทธิภาพ SVM

ทำไม perceptron อนุญาตให้อัพเดทออนไลน์ หากคุณเห็นกฎการอัพเดทแบบไล่ลงสำหรับการสูญเสียบานพับ (การสูญเสียบานพับจะถูกใช้โดยทั้ง SVM และ perceptron)

wt=wt1+η1Ni=1NyixiI(yiwtxi0)

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

Perceptron ไม่มากไปกว่าการสูญเสียบานพับ (ฟังก์ชั่นการสูญเสีย) + การไล่ระดับสีแบบสุ่ม Stochastic (การเพิ่มประสิทธิภาพ)

wt=wt1+yy+1xt+1I(yt+1wtxt+10)

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


-1

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

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