ด้วยชุดของจุดในพื้นที่สองมิติหนึ่งฟังก์ชันการตัดสินใจออกแบบสำหรับ SVM ได้อย่างไร


10

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

แก้ไข

สำหรับตัวอย่างด้านล่างฉันจะเห็นว่าสมการX2=1.5แยกชั้นเรียนด้วยระยะขอบสูงสุด แต่ฉันจะปรับน้ำหนักและเขียนสมการสำหรับไฮเปอร์เพลนในรูปแบบต่อไปนี้ได้อย่างไร

H1:w0+w1x1+w2x21forYi=+1H2:w0+w1x1+w2x21forYi=1.

ป้อนคำอธิบายรูปภาพที่นี่

ฉันพยายามทำให้ทฤษฎีพื้นฐานถูกต้องในพื้นที่ 2 มิติ (เพราะมองเห็นได้ง่ายกว่า) ก่อนที่ฉันจะคิดถึงมิติที่สูงขึ้น

ฉันได้แก้ปัญหาสำหรับสิ่งนี้แล้วใครบางคนได้โปรดยืนยันว่าสิ่งนี้ถูกต้องหรือไม่?

น้ำหนักเวกเตอร์คือ (0, -2) และ W_0 คือ 3

H1:3+0x12x21forYi=+1H2:3+0x12x21forYi=1.

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

@chl ฉันได้อัปเดตคำถามพร้อมรายละเอียดแล้ว
naresh

คำตอบ:


12

มีอย่างน้อยสองวิธีในการกระตุ้นให้ SVM มี แต่ฉันจะใช้เส้นทางที่เรียบง่ายที่นี่

ตอนนี้ลืมทุกสิ่งที่คุณรู้เกี่ยวกับ SVM ในขณะนี้และเพียงแค่มุ่งเน้นปัญหาที่อยู่ในมือ คุณจะได้รับชุดของจุดพร้อมกับป้ายกำกับบางคน ( Y ฉัน ) ซึ่งมาจาก{ 1 , - 1 } ตอนนี้เรากำลังพยายามหาบรรทัดใน 2D เพื่อให้ทุกจุดที่มีเลเบล1อยู่ด้านหนึ่งของบรรทัดและทุกจุดที่มีเลเบล- 1ตกลงบนอีกด้านหนึ่งD={(x1i,x2i,yi)}yi{1,1}11

ก่อนอื่นให้ตระหนักว่าเป็นเส้นใน 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 20สำหรับทุกจุดx iกับy i = 1และw 0 + w 1 x i 1 + w 2 x i 2 < 0[w0,w1,w2]w0+w1x1i+w2x2i0xiyi=1w0+w1x1i+w2x2i<0สำหรับคะแนนทั้งหมดกับy i = - 1 [1]xiyi=1

ขอให้เราสมมติว่ามีเส้นดังกล่าวอยู่จริงแล้วฉันสามารถนิยามตัวจําแนกในวิธีต่อไปนี้

min|w0|+|w1|+|w2|subject to:w0+w1x1i+w2x2i0,xi with yi=1w0+w1x1i+w2x2i<0,xi with yi=1

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

ww

w0+w1x1i+w2x2i0xiyi=1w0+w1x1i+w2x2i<0xiyi=1w0+w1x1i+w2x2i1xiyi=1w0+w1x1i+w2x2i1xiyi=11w2

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

max1w2subject to:w0+w1x1i+w2x2i1,xi with yi=1w0+w1x1i+w2x2i1,xi with yi=1
minw2subject to:yi(w0+w1x1i+w2x2i)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)11

ระยะขอบทางเรขาคณิตคืออะไร? ขอบเรขาคณิตเป็นระยะทางที่สั้นที่สุดระหว่างจุดในตัวอย่างบวกและจุดในตัวอย่างลบ ตอนนี้จุดที่มีระยะทางสั้นที่สุดตามที่ต้องการข้างต้นสามารถมีระยะขอบการทำงานมากกว่า 1 ได้อย่างไรก็ตามขอให้เราพิจารณากรณีที่รุนแรงเมื่อพวกมันอยู่ใกล้กับไฮเปอร์เพลนนั่นคือขอบของการทำงานที่สั้นที่สุดนั้นเท่ากัน ถึง 1 ให้เป็นจุดในตัวอย่างบวกเป็นจุดที่และเป็นจุดบนตัวอย่างลบเป็นจุดที่ . ทีนี้ระยะห่างระหว่างและจะสั้นที่สุดเมื่อx+wTx++w0=1xwTx+w0=1x+xx+x ตั้งฉากกับไฮเปอร์เพลน

ตอนนี้ด้วยข้อมูลทั้งหมดข้างต้นเราจะพยายามหาซึ่งเป็นระยะขอบทางเรขาคณิต w T x + + w 0 =x+x2

wTx++w0=1
wTx+w0=1
wT(x+x)=2
|wT(x+x)|=2
x + - x - 2 = 2
w2x+x2=2
x+x2=2w2

[1] มันไม่จริงเรื่องที่ด้านข้างที่คุณเลือกสำหรับและ-1คุณเพียงแค่ต้องอยู่กับสิ่งที่คุณเลือก- 111


1
w=[0,2,3]

1
@ ขอบคุณขอบคุณฉันได้แก้ไขพิมพ์ผิด ฉันจะเพิ่มคำอธิบายขอบเรขาคณิต
TenaliRaman

1
@entropy ฉันได้อัปเดตคำตอบพร้อมกับคำอธิบายทางเรขาคณิต
TenaliRaman

1
@entropyเป็นไฮเปอร์เพลนที่ส่งผ่านจุดกำเนิด เพื่อให้ครอบคลุมช่องว่างของสมการเชิงเส้นทั้งหมดคุณจำเป็นต้องมีคำว่าอคติ นึกถึงจุดที่อยู่ในแบบ 2 มิติและให้เราบอกว่าคุณกำลังพยายามหาเส้นที่คั่นจุดเหล่านี้ อย่างไรก็ตามจุดเหล่านี้อยู่ในจตุภาคแรก ตอนนี้เราสามารถจัดเรียงจุดเหล่านี้เพื่อที่พวกเขาจะแยกกันไม่ได้ แต่โดยสายใด ๆ ที่ผ่านการกำเนิด อย่างไรก็ตามเส้นที่มีอคติที่เหมาะสมสามารถทำได้ wTx
TenaliRaman

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