มีอย่างน้อยสองวิธีในการกระตุ้นให้ SVM มี แต่ฉันจะใช้เส้นทางที่เรียบง่ายที่นี่
ตอนนี้ลืมทุกสิ่งที่คุณรู้เกี่ยวกับ SVM ในขณะนี้และเพียงแค่มุ่งเน้นปัญหาที่อยู่ในมือ คุณจะได้รับชุดของจุดพร้อมกับป้ายกำกับบางคน ( Y ฉัน ) ซึ่งมาจาก{ 1 , - 1 } ตอนนี้เรากำลังพยายามหาบรรทัดใน 2D เพื่อให้ทุกจุดที่มีเลเบล1อยู่ด้านหนึ่งของบรรทัดและทุกจุดที่มีเลเบล- 1ตกลงบนอีกด้านหนึ่งD ={( xผม1, xผม2, yผม) }Yผม{ 1 , - 1 }1- 1
ก่อนอื่นให้ตระหนักว่าเป็นเส้นใน 2D และw 0 + w 1 x 1 + w 2 x 2 > 0หมายถึง "ด้านใดด้านหนึ่ง" ของเส้นและw 0 + w 1 x 1 + w 2 x 2 < 0แทน "ด้านอื่น ๆ " ของบรรทัดW0+ w1x1+ w2x2= 0w0+w1x1+w2x2>0w0+w1x1+w2x2<0
จากด้านบนเราสามารถสรุปได้ว่าเราต้องการเวกเตอร์เช่นนั้น,
w 0 + w 1 x i 1 + w 2 x i 2 ≥ 0สำหรับทุกจุดx iกับy i = 1และw 0 + w 1 x i 1 + w 2 x i 2 < 0[w0,w1,w2]w0+w1xi1+w2xi2≥0xiyi=1w0+w1xi1+w2xi2<0สำหรับคะแนนทั้งหมดกับy i = - 1 [1]xiyi=−1
ขอให้เราสมมติว่ามีเส้นดังกล่าวอยู่จริงแล้วฉันสามารถนิยามตัวจําแนกในวิธีต่อไปนี้
min|w0|+|w1|+|w2|subject to:w0+w1xi1+w2xi2≥0,∀xi with yi=1w0+w1xi1+w2xi2<0,∀xi with yi=−1
ฉันใช้ฟังก์ชันวัตถุประสงค์ตามอำเภอใจด้านบนเราไม่สนใจจริงๆในขณะที่ฟังก์ชันวัตถุประสงค์ใช้ เราเพียงแค่ต้องการตอบสนองความว่าข้อ จำกัด ของเรา เนื่องจากเราสันนิษฐานว่ามีบรรทัดหนึ่งที่เราสามารถแยกสองคลาสด้วยบรรทัดนั้นเราจะหาวิธีแก้ไขปัญหาการปรับให้เหมาะสมข้างต้นw
ww
w0+w1xi1+w2xi2≥0xiyi=1w0+w1xi1+w2xi2<0xiyi=−1w0+w1xi1+w2xi2≥1xiyi=1w0+w1xi1+w2xi2≤−1xiyi=−11∥w∥2
ดังนั้นเราได้รับปัญหาการเพิ่มประสิทธิภาพต่อไปนี้
รูปแบบย่อที่ย่อเล็กน้อยนี้คือ
นี่คือสูตรพื้นฐาน SVM พื้นฐาน ฉันข้ามการถกเถียงกันค่อนข้างมากสำหรับเรื่องย่อ หวังว่าฉันจะได้รับความคิดส่วนใหญ่ผ่าน
max1∥w∥2subject to:w0+w1xi1+w2xi2≥1,∀xi with yi=1w0+w1xi1+w2xi2≤−1,∀xi with yi=−1
min∥w∥2subject to:yi(w0+w1xi1+w2xi2)≥1,∀i
CVX script เพื่อแก้ปัญหาตัวอย่าง:
A = [1 2 1; 3 2 1; 2 3 1; 3 3 1; 1 1 1; 2 0 1; 2 1 1; 3 1 1];
b = ones(8, 1);
y = [-1; -1; -1; -1; 1; 1; 1; 1];
Y = repmat(y, 1, 3);
cvx_begin
variable w(3)
minimize norm(w)
subject to
(Y.*A)*w >= b
cvx_end
ภาคผนวก - ขอบเรขาคณิต
ข้างต้นเราได้ขออยู่แล้วว่าเรามองหาดังกล่าวว่าหรือทั่วไป1 LHS ที่นี่ที่คุณเห็นจะเรียกว่าอัตรากำไรขั้นต้นการทำงานดังนั้นสิ่งที่เราได้รับการร้องขอที่นี่เป็นที่อัตรากำไรขั้นต้นทำงานเป็น1 ตอนนี้เราจะพยายามคำนวณระยะขอบทางเรขาคณิตเนื่องจากความต้องการมาร์จิ้นการทำงานนี้wyi(w0+w1x1+w2x2)≥1yi(w0+wTx)≥1≥1
ระยะขอบทางเรขาคณิตคืออะไร? ขอบเรขาคณิตเป็นระยะทางที่สั้นที่สุดระหว่างจุดในตัวอย่างบวกและจุดในตัวอย่างลบ ตอนนี้จุดที่มีระยะทางสั้นที่สุดตามที่ต้องการข้างต้นสามารถมีระยะขอบการทำงานมากกว่า 1 ได้อย่างไรก็ตามขอให้เราพิจารณากรณีที่รุนแรงเมื่อพวกมันอยู่ใกล้กับไฮเปอร์เพลนนั่นคือขอบของการทำงานที่สั้นที่สุดนั้นเท่ากัน ถึง 1 ให้เป็นจุดในตัวอย่างบวกเป็นจุดที่และเป็นจุดบนตัวอย่างลบเป็นจุดที่ . ทีนี้ระยะห่างระหว่างและจะสั้นที่สุดเมื่อx+wTx++w0=1x−wTx−+w0=−1x+x−x+−x− ตั้งฉากกับไฮเปอร์เพลน
ตอนนี้ด้วยข้อมูลทั้งหมดข้างต้นเราจะพยายามหาซึ่งเป็นระยะขอบทางเรขาคณิต
w T x + + w 0 =∥x+−x−∥2
wTx++w0=1
wTx−+w0=−1
wT(x+−x−)=2
|wT(x+−x−)|=2
‖ x + - x - ‖ 2 = 2∥w∥2∥x+−x−∥2=2
∥x+−x−∥2=2∥w∥2
[1] มันไม่จริงเรื่องที่ด้านข้างที่คุณเลือกสำหรับและ-1คุณเพียงแค่ต้องอยู่กับสิ่งที่คุณเลือก- 11−1